【问题标题】:CSS Margin-Top with Percentage -- Cross Browser IssueCSS Margin-Top with Percentage -- 跨浏览器问题
【发布时间】:2023-04-03 21:03:01
【问题描述】:

我正在处理 CSS 中的叠加层,但遇到了跨浏览器问题。覆盖高度应为视口的 80% 并垂直居中。 (元素的 80% 高度,-40% 上边距,50% 从顶部绝对定位)。

下面的小提琴在 Chrome 中有效,但在 Firefox 中无效。问题似乎是margin-top 的百分比。请务必调整浏览器大小以查看完整效果。

小提琴: http://jsfiddle.net/DEn6r/1/

感谢您的帮助!

【问题讨论】:

    标签: css


    【解决方案1】:

    由于您对topmargin-top 都使用了百分比,因此您可以将它们组合起来,然后简单地使用top: 10%

    查看此演示:http://jsfiddle.net/jackwanders/DEn6r/3/

    另外,如果你想去掉负左边距,你可以使用这个技巧将 div 水平居中:

    #inside {
      position: absolute;
      width: 300px;
      height: 80%;
      top: 10%;
      left: 0;
      right: 0;  // set left and right to 0
      margin: 0 auto; // set left and right margins to auto
      background: white;
    }
    

    【讨论】:

    • 该死!很简单。谢谢流浪者!
    • 我确实发现 @Adam Storr 的原始 CSS 的 Firefox 实现很有趣;很想知道它测量的是什么 40%
    • 40% 是高度 (80%) 的一半,它与 top: 50% 一起在视图中居中。这适用于具有特定像素尺寸的定位元素......但显然不适用于百分比。
    • 对,我知道它应该是这样工作的。但很明显,Firefox 的表现并不好。 “40%”的值与 Chrome 的不同
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    • 2011-09-11
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多