当 child 来自 display:table 时,制作 div 全角?
Make a div full width when is a child from display:table?
正如您在代码片段中看到的那样,div.detail
不会占据全宽,即使它设置为 block 和宽度:100%。
如何在 display:table 内部制作 div 全宽?
有什么解决方法吗?
.table {
display: table;
width: 400px;
}
.row {
display: table-row;
}
.td {
display: table-cell;
border: 1px solid #ccc;
}
.detail {
display: block;
width: 100%;
}
<div class="table">
<div class="row">
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
</div>
<div class="detail">
Lorem ipsum ad his scripta blandit partiendo, eum fastidii accumsan euripidis in, eum liber hendrerit an.
</div>
<div class="row">
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
</div>
</div>
请注意,.td 宽度必须保持灵活,并且 table-row 和 table-cell 是必需的,并且列的宽度必须是行间一致..
我尝试了这个并且:
.detail { display: table-caption; }
几乎做到了,但是它改变了元素的顺序..
请通过Fiddle
我对 CSS 进行了一些更改,因为 td 为
.td {
border: 1px solid #ccc;
width: 19%;
float:left;
display:table-cell;
}
希望对你有帮助。
.td {
display: inline-block;
border: 1px solid #ccc;
width: 19%;
float:left;
}
.row {
display: inline-block;
width: 100%
}
// max-width is if you want responsive table cells
.table {
display: table;
max-width: 400px;
}
添加了 .row css 以获得更好的 html 渲染
<div class="table">
<div class="row">
<div class="table">
<div class="row">
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
</div>
</div>
</div>
<div class="detail">
Lorem ipsum ad his scripta blandit partiendo, eum fastidii accumsan euripidis in, eum liber hendrerit an.
</div>
<div class="row">
<div class="table">
<div class="row">
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
</div>
</div>
</div>
</div>
是的,使用显示:table;在行上。
.row {
display: table;
table-layout: fixed;
width: 100%;
}
.td {
display: table-cell;
text-align: center;
border: 1px solid #ccc;
padding: 1em 0;
}
.detail {
width: 100%;
background: gold;
}
<div class="row">
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Hey, I'm a sentence!</div>
</div>
<div class="row">
<div class="detail">Lorem ipsum ad his scripta blandit partiendo, eum fastidii accumsan euripidis in, eum liber hendrerit an.</div>
</div>
<div class="row">
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Look man, I'm a sentence too!</div>
<div class="td">Td</div>
</div>
正如您在代码片段中看到的那样,div.detail
不会占据全宽,即使它设置为 block 和宽度:100%。
如何在 display:table 内部制作 div 全宽?
有什么解决方法吗?
.table {
display: table;
width: 400px;
}
.row {
display: table-row;
}
.td {
display: table-cell;
border: 1px solid #ccc;
}
.detail {
display: block;
width: 100%;
}
<div class="table">
<div class="row">
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
</div>
<div class="detail">
Lorem ipsum ad his scripta blandit partiendo, eum fastidii accumsan euripidis in, eum liber hendrerit an.
</div>
<div class="row">
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
</div>
</div>
请注意,.td 宽度必须保持灵活,并且 table-row 和 table-cell 是必需的,并且列的宽度必须是行间一致..
我尝试了这个并且:
.detail { display: table-caption; }
几乎做到了,但是它改变了元素的顺序..
请通过Fiddle
我对 CSS 进行了一些更改,因为 td 为
.td {
border: 1px solid #ccc;
width: 19%;
float:left;
display:table-cell;
}
希望对你有帮助。
.td {
display: inline-block;
border: 1px solid #ccc;
width: 19%;
float:left;
}
.row {
display: inline-block;
width: 100%
}
// max-width is if you want responsive table cells
.table {
display: table;
max-width: 400px;
}
添加了 .row css 以获得更好的 html 渲染
<div class="table">
<div class="row">
<div class="table">
<div class="row">
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
</div>
</div>
</div>
<div class="detail">
Lorem ipsum ad his scripta blandit partiendo, eum fastidii accumsan euripidis in, eum liber hendrerit an.
</div>
<div class="row">
<div class="table">
<div class="row">
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
</div>
</div>
</div>
</div>
是的,使用显示:table;在行上。
.row {
display: table;
table-layout: fixed;
width: 100%;
}
.td {
display: table-cell;
text-align: center;
border: 1px solid #ccc;
padding: 1em 0;
}
.detail {
width: 100%;
background: gold;
}
<div class="row">
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Hey, I'm a sentence!</div>
</div>
<div class="row">
<div class="detail">Lorem ipsum ad his scripta blandit partiendo, eum fastidii accumsan euripidis in, eum liber hendrerit an.</div>
</div>
<div class="row">
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Td</div>
<div class="td">Look man, I'm a sentence too!</div>
<div class="td">Td</div>
</div>