IE 和 Chrome 中的定位和居中表现不一致问题

发布于 2022-09-02 14:55:58 字数 993 浏览 22 评论 0

浏览器版本是IE 11和Chrome 50
html 代码

    <div class="outer">
        <div class="inner"></div>
    </div>

CSS代码

    .outer {
        position: relative;
        width: 400px;
        height: 200px;
        background: #f44336;
        
        /* 在子元素有绝对定位的情况下,在IE中居中无效, Chrome中偏向中间,但是并不完全居中。 IE 11则完全向左*/
        text-align: center;
    }
    .inner {
        /* 去掉绝对定位,在IE 11 和Chrome中,inner居中正常*/
        position: absolute;
        display: inline-block;
        width: 100px;
        height: 100px;
        background-color: #eee;
    }

代码链接

复制链接,分别在IE 和Chrome 中粘贴打开,你会发现表现不一样,

  • .inner元素, 有绝对定位而且display设定为inline-block时,在IE中.outertext-align: center无效,Chrome中也不会正常居中而是会偏一点,不知道为什么 ???

  • 去掉绝对定位就一切正常了

先行谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冷月断魂刀 2022-09-09 14:55:58

设置text-align:right;
图片描述

设置text-align:left;
图片描述

内联元素在有position情况下,text-align:right;会使元素与父元素右边对齐;
text-align:left;使元素与其左边对齐,text-align:center;与中间线对齐,所以并不会完全水平居中,至于ie不一样,那是ie犯浑的表现

盛夏尉蓝 2022-09-09 14:55:58
position:absolute;// 这个属性已经使元素脱离了文档流
display:inline-block;// display是基于文档流的属性,自然是不会起到任何作用

综上:display:inline-block;是无效语句,基于他的语句也将都不起作用

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文