mrN*_*mrN 4 html css cross-browser
我绝对在一个相对容器内放置一个div,但在firefox中它完全忽略它.
这是一个fidde:http://jsfiddle.net/TThUZ/
我的HTML:
<div class="main">
<ul>
<li>
<a>
Text
</a>
<div class="sub">
Sub
</div>
</li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
ul { display: table; }
li { display: table-cell; width: 300px; background: #ddd; padding-left: 50px; position: relative; }
.sub { position: absolute; left: 0; }
Run Code Online (Sandbox Code Playgroud)
将.sub不遵循位置:相对li.为什么?以及如何解决它?
.sub正在做它应该做的事情.我相信它必须与你的display: table-cell;.请查看此链接以进行验证:http://css-tricks.com/absolutely-position-element-within-a-table-cell/
[...]表格单元格元素不会采用这些位置值.因此,您也不能绝对地将元素置于这些元素的上下文中.[...]
上面的文章提出了以下修复,在表格单元格中添加和元素以使用定位.不是很语义,但它的工作原理.
注意还有div正在使用的,而不是你的相对位置li有display: table-cell;.
HTML
<div class="main">
<ul>
<li>
<div class="table-cell-fix">
<a>
Text
</a>
<div class="sub">
Sub
</div>
</div>
</li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
现在只需要一点额外的CSS.position: relative;从新的移动li到新的div.我也把你对你的填充物移动li到新的div.
CSS
ul {
display: table;
}
li {
display: table-cell;
width: 300px;
background: #ddd;
}
.sub {
position: absolute;
left: 0;
top: 0;
}
.table-cell-fix {
position: relative;
padding-left: 50px;
}
Run Code Online (Sandbox Code Playgroud)