[英]Strange behaviour of position absolute inside table-cell on IE11
我必须修复此布局,它是flexbox,表布局和绝对定位的混乱组合。
当它在Chrome,FF和Safari上正常工作时,IE11的输出屏幕很奇怪。
在我的代码中,我希望span
在每个正方形的右下角,但是在IE11上,它却显示在右上角。
谁能帮我解决这个问题? 这里的约束是必须维护flexbox .container
和表系统。 我只想修复span
元素。 提前致谢!
.container { display: flex; width: 400px; } .inner { width: 50%; } .table { display: table; width: 100%; border: 1px solid; } .table:before { content: ''; display: table-cell; width: 0; padding-bottom: 100%; } .cell { display: table-cell; vertical-align: bottom; position: relative; padding: 20px; } .cell span { position: absolute; bottom: 20px; right: 20px; }
<div class="container"> <div class="inner"> <div class="table"> <div class="cell"> Yeah? <span>Yo!</span> </div> </div> </div> <div class="inner"> <div class="table"> <div class="cell"> Yeah? <span>Yo!</span> </div> </div> </div> </div>
删除您的.cell span块,并使用下面的代码代替。 我已经检查了它在每个浏览器中的工作情况。
.cell span {
float: right;
}
您可以在IE11中进行修复的一件事是将cell
内容包装到一个块容器中 ,然后添加position: relative
对于它的position: relative
。 现在,您可以right: 0px
调整位置 right: 0px
参见下面的演示:
.container { display: flex; width: 400px; } .inner { width: 50%; } .table { display: table; width: 100%; border: 1px solid; } .table:before { content: ''; display: table-cell; width: 0; padding-bottom: 100%; } .cell { display: table-cell; vertical-align: bottom; position: relative; padding: 20px; } .cell span { position: absolute; /*bottom: 20px; right: 20px;*/ right: 0px; /* ADDED */ } .cell div { /* ADDED */ position: relative; }
<div class="container"> <div class="inner"> <div class="table"> <div class="cell"> <div>Yeah? <span>Yo!</span></div> </div> </div> </div> <div class="inner"> <div class="table"> <div class="cell"> <div>Yeah? <span>Yo!</span></div> </div> </div> </div> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.