我有点问题.我使用的是FireFox 3.6,具有以下DOM struct :

<div class="view-row">
    <div class="view-type">Type</div>
    <div class="view-name">Name</div>                
</div>

以及以下CSS:

.view-row {
width:100%;
display:table-row;
}

.view-name {
display: table-cell;
float:right;
}

.view-type {
display: table-cell;
}

如果我go 掉display:table-row,它将正确显示,view-row显示的宽度为display:table-row%.如果我把它放回go ,它就会缩小.我把这个贴在JS-Bin上了:

http://jsbin.com/ifiyo

到底怎么回事?

推荐答案

如果使用display:table-row等,则需要适当的标记,其中包括一个包含表.如果没有它,您的原始问题基本上提供了以下等价的错误标记:

<tr style="width:100%">
    <td>Type</td>
    <td style="float:right">Name</td>
</tr>

上面的桌子在哪里?您不能无缘无故地有一个行(tr必须包含在tabletheadtbody等中)

相反,添加一个display:table的外部元素,将display:table%的宽度放在包含元素上.两个内部单元格将自动对半,并将文本与第二个单元格对齐.忘了floats和表元素吧.这会引起很多头痛.

标记:

<div class="view-table">
    <div class="view-row">
        <div class="view-type">Type</div>
        <div class="view-name">Name</div>                
    </div>
</div>

CSS:

.view-table
{
    display:table;
    width:100%;
}
.view-row,
{
    display:table-row;
}
.view-row > div
{
    display: table-cell;
}
.view-name 
{
    text-align:right;
}

Css相关问答推荐

与Chrome和Edge相比,背景位置动画在Firefox中运行并不流畅

如何在Angular material 选项卡中设置自定义圆角下划线的样式

我找不出Firefox上奇怪的css行为的原因

如何将CSS动画从第一列移动到第二列?

为什么这个绝对定位的 ::after 伪元素会崩溃,除非父级有过滤器?

如何在 Tailwind 中使用 `margin: y x;` 速记?

如果父项的不透明度小于 1,则背景过滤器不适用

如何在每一行周围放置不同大小的阴影?

使用border-radius CSS时平滑边框

是否可以对 CSS 网格中重复和可包装的列使用固定的最小和最大宽度?

为什么无论我做什么都不能改变复选框的 colored颜色 ?

悬停时如何在图像上显示文字?

div内的CSS中心内容

如何使用 Bootstrap2 使 div 居中?

如何让 flexbox 在计算中包含填充?

background-position-x (background-position-y) 是标准的 W3C CSS 属性吗?

如何应用 CSS 分页符来打印包含大量行的表格?

HTML5 和边框

100% 高度减go 标题?

CSS(webkit):在绝对定位元素上用底部覆盖顶部