我有一个由div
元素构建的表。默认情况下,元素显示为表格单元格。
在@media screen and (max-width: 769px)
元素上需要成为table-row
。
除Safari外,每个浏览器都能正常运行。
在野生动物园中它显示正常,直到我重新调整窗口非常窄,然后回到全宽。那时桌子休息了。如果我刷新页面或禁用并重新启用table-cell
样式表修复本身。
实施例: http://jsfiddle.net/sergejpopov/TvEWf/
这是一个Safari bug吗?怎么解决?
答案 0 :(得分:2)
听起来你并没有坚持正确的结构 - 你不应该为table-cell
换出table-row
,它们有两个明显不同的目的,在解释的布局方面不相同,表结构应始终遵循:
table (display-table)
row (display-row) <- important to denote a row of elements
cell (display-cell) <- important to denote (column based) content within a row
/cell
/row
/table
你错过了你的方法的行或单元格级别,所以尽管每个标志似乎都被正确解释,但你的css实际上是错误的。
我建议您考虑使用浮动或内联div,请参阅
<强> FIDDLE 强>
HTML
<div class="t">
<div>1</div><div>2</div><div>3</div><div>4</div>
</div>
CSS
*{
box-sizing:border-box;
}
.t
{
width:100%;
}
.t>div
{
border:1px solid red;
display:inline-block;
width:25%;
margin:0;
padding:0;
zoom:1;
}
@media screen and (max-width: 769px) {
.t
{
width:100%;
display:table;
}
.t>div
{
border:1px solid red;
display: block;
width:100%;
zoom:1;
}
}