使用 div 显示 table-cell inside real tables td
Using div with display table-cell inside real tables td
我用真正的 tables 创建了一个复杂的布局,它工作正常但现在我使用 DIVS 创建了一个新布局并且它工作正常,直到我在手机上测试高度并且它看起来很糟糕,它只是不想让我的身高保持 100% 测试也将页脚设置为 margin bottom 0 什么都没有所以我将测试以下内容:
<table style="width:100%;height:100%;border:0;border-spacing:0px;border-collapse:collapse;">
<tr>
<td style="height:21px;">
<DIV style="display: table-cell;"> divvvvv </div></td>
</tr>
<tr>
<td style="height:79px;"">
</td>
</tr>
<tr>
<td style="height:100%;"> </td>
</tr>
<tr>
<td style="height:21px;"> </td>
</tr>
</table>
问题是,我可以在 table TD 元素中添加那些 div 而不添加 div-display-table 和 div-显示行前?对我来说最好的方法似乎是混合 tables 和 divs。那么混合它们的正确方法是什么?因为表格中的 TD 不会考虑高度和宽度,所以我必须同时使用 tables 和 divs 看起来像 ...
像这样:
<div class="container">
<div class="row">
<div class="column">Column 1</div>
<div class="column">Column 2</div>
<div class="column">Column 3</div>
</div>
<div class="row">
<div class="column">Column 1</div>
<div class="column">Column 2</div>
<div class="column">Column 3</div>
</div>
</div>
我试图了解您想要什么,但不是很清楚...所以这就是我假设您的意思。
CSS:
.container {
display:table;
height:200px;
border:1px solid red;
}
.column {
display:inline-block;
}
table {
border: 1px solid black;
}
td {
width:150px;
border: 2px solid blue;
}
HTML:
<table style="width:100%;height:100%;border:0;border-spacing:0px;border-collapse:collapse;">
<tr>
<td style="height:21px;">
<div class="container">
<div class="row">
<div class="column">Column 1</div>
<div class="column">Column 2</div>
<div class="column">Column 3</div>
</div>
<div class="row">
<div class="column">Column 1</div>
<div class="column">Column 2</div>
<div class="column">Column 3</div>
</div>
</div>
</td>
</tr>
<tr>
<td style="height:79px;"">
</td>
</tr>
<tr>
<td style="height:100%;"> </td>
</tr>
<tr>
<td style="height:21px;"> </td>
</tr>
</table>
将 table 元素与 div 混合最终会让您头疼,尤其是在响应式设计方面。对于同样的问题,我使用 Bootstrap CSS。他们有一个网格系统,在替换 table 风格的布局和适应移动设备方面非常有效。您的目标 HTML 实际上非常接近 Bootstrap 使用的标记,因此您的头脑显然在正确的位置!
下载 Bootstrap js 和 css 后,我会做这样的事情:
<!-- the container-fluid class creates a full-width container -->
<div class="container-fluid">
<!-- the row class creates a row broken into 12 columns. -->
<div class="row">
<!-- specify how many columns an element should take up out of 12 for each given device. below is the markup for 3 evenly-spaced columns for a medium (desktop) device -->
<div class="col-md-4">Column 1</div>
<div class="col-md-4">Column 2</div>
<div class="col-md-4">Column 3</div>
</div>
<div class="row">
<div class="col-md-4">Column 1</div>
<div class="col-md-4">Column 2</div>
<div class="col-md-4">Column 3</div>
</div>
</div>
我用真正的 tables 创建了一个复杂的布局,它工作正常但现在我使用 DIVS 创建了一个新布局并且它工作正常,直到我在手机上测试高度并且它看起来很糟糕,它只是不想让我的身高保持 100% 测试也将页脚设置为 margin bottom 0 什么都没有所以我将测试以下内容:
<table style="width:100%;height:100%;border:0;border-spacing:0px;border-collapse:collapse;">
<tr>
<td style="height:21px;">
<DIV style="display: table-cell;"> divvvvv </div></td>
</tr>
<tr>
<td style="height:79px;"">
</td>
</tr>
<tr>
<td style="height:100%;"> </td>
</tr>
<tr>
<td style="height:21px;"> </td>
</tr>
</table>
问题是,我可以在 table TD 元素中添加那些 div 而不添加 div-display-table 和 div-显示行前?对我来说最好的方法似乎是混合 tables 和 divs。那么混合它们的正确方法是什么?因为表格中的 TD 不会考虑高度和宽度,所以我必须同时使用 tables 和 divs 看起来像 ...
像这样:
<div class="container">
<div class="row">
<div class="column">Column 1</div>
<div class="column">Column 2</div>
<div class="column">Column 3</div>
</div>
<div class="row">
<div class="column">Column 1</div>
<div class="column">Column 2</div>
<div class="column">Column 3</div>
</div>
</div>
我试图了解您想要什么,但不是很清楚...所以这就是我假设您的意思。
CSS:
.container {
display:table;
height:200px;
border:1px solid red;
}
.column {
display:inline-block;
}
table {
border: 1px solid black;
}
td {
width:150px;
border: 2px solid blue;
}
HTML:
<table style="width:100%;height:100%;border:0;border-spacing:0px;border-collapse:collapse;">
<tr>
<td style="height:21px;">
<div class="container">
<div class="row">
<div class="column">Column 1</div>
<div class="column">Column 2</div>
<div class="column">Column 3</div>
</div>
<div class="row">
<div class="column">Column 1</div>
<div class="column">Column 2</div>
<div class="column">Column 3</div>
</div>
</div>
</td>
</tr>
<tr>
<td style="height:79px;"">
</td>
</tr>
<tr>
<td style="height:100%;"> </td>
</tr>
<tr>
<td style="height:21px;"> </td>
</tr>
</table>
将 table 元素与 div 混合最终会让您头疼,尤其是在响应式设计方面。对于同样的问题,我使用 Bootstrap CSS。他们有一个网格系统,在替换 table 风格的布局和适应移动设备方面非常有效。您的目标 HTML 实际上非常接近 Bootstrap 使用的标记,因此您的头脑显然在正确的位置!
下载 Bootstrap js 和 css 后,我会做这样的事情:
<!-- the container-fluid class creates a full-width container -->
<div class="container-fluid">
<!-- the row class creates a row broken into 12 columns. -->
<div class="row">
<!-- specify how many columns an element should take up out of 12 for each given device. below is the markup for 3 evenly-spaced columns for a medium (desktop) device -->
<div class="col-md-4">Column 1</div>
<div class="col-md-4">Column 2</div>
<div class="col-md-4">Column 3</div>
</div>
<div class="row">
<div class="col-md-4">Column 1</div>
<div class="col-md-4">Column 2</div>
<div class="col-md-4">Column 3</div>
</div>
</div>