Html Div不取父Div的高度(带引导)
我首先要说的是,我知道这个问题被问了很多,但我看到的答案似乎都不适合我 基本上,我在一个较大的div中有一些div。它们会有动态文本,所以我不知道每个div有多少行。问题是,我似乎无法使div的大小与家长的高度相匹配。我希望列div占据行div的整个高度(基本上,我希望蓝色部分填充条之间的所有空间) HTML:Html Div不取父Div的高度(带引导),html,css,twitter-bootstrap,Html,Css,Twitter Bootstrap,我首先要说的是,我知道这个问题被问了很多,但我看到的答案似乎都不适合我 基本上,我在一个较大的div中有一些div。它们会有动态文本,所以我不知道每个div有多少行。问题是,我似乎无法使div的大小与家长的高度相匹配。我希望列div占据行div的整个高度(基本上,我希望蓝色部分填充条之间的所有空间) HTML: 现在,我从这个问题的其他版本中学到的是 浮子:左边可能把事情搞砸了 高度:如果定义了父级的高度,则100%不起作用 位置:相对可能对父级有帮助 浮点数的问题是我使用的是引导,这就是
现在,我从这个问题的其他版本中学到的是
- 浮子:左边可能把事情搞砸了
- 高度:如果定义了父级的高度,则100%不起作用
- 位置:相对可能对父级有帮助
我不知道我有这些问题是因为我在使用bootstrap,还是因为我现在只是个白痴
还有一件事似乎给事情带来了麻烦:这些栏目在小屏幕和大屏幕上的布局会有所不同。实际上,我想要一些类似于col-xs-12 col-md-3的东西来解决这些问题。简单的回答是,在引导框架的约束下,您无法真正实现这一点。有很多文章解释了为什么
div
元素不能伸展到容器的高度,以及如何解决这个问题。我最喜欢的解决办法之一是
但是,让我们更具创造性
我提出了一些可能适用于您的场景的方法,但需要对您的标记进行一些更改。下面是一个用display:table
包装引导网格的解决方案
HTML:
请注意,要使此解决方案起作用,您必须包含足够的col
元素来拉伸所有12列(请参阅我添加了一个空的.col-xs-6
div)。您可以添加
display:flex;
她会像你想的那样表演。
在bootstrap 4中,“row”类将此应用于div,但在早期版本中,如果您希望出现此类行为,则需要手动添加。给出
.divOne
adisplay:flex
并从中删除高度:100%
:
.divOne
{
边框顶部:10px纯黑;
显示器:flex;
}
第二名
{
背景色:#32649b;
/*身高:100%*/
颜色:白色;
}
一些文本
一些可以换行的文本
不同文本
再加上一些文字
事实上,我不明白你想要实现什么?如果你想让每一行都达到容器高度的100%,为什么要使用两行引导?对不起,我想我还不够清楚。基本上,我将行中的列设置为行的大小,所以我希望蓝色背景部分为行的大小。我认为你想要的答案是被接受的哦,好吧,现在我明白了,很抱歉回答不好。@Hemadeus没问题,我应该澄清更多。tmg,到目前为止,这似乎是我想要的,我会尝试一下。谢谢我认为这是另一个解决方案,因为我希望将列堆叠在一个更小的屏幕上(实际上,我会将它们分别命名为col-xs-12 col-md-3或类似的名称)。我将尝试调整一些东西,但我有点担心bootstrap会在很大程度上阻碍我获得所需内容。您可以添加媒体查询,类似于bootstrap对其列元素进行媒体查询的方式。。。将display:table cell
替换为display:table row
,它实际上是相同的。
.divOne
{
border-top:10px solid black;
}
.divTwo
{
background-color: #32649b;
height:100%;
color:white;
}
<div class="table-container">
<div class="table-row divOne">
<div class="col-xs-3 divTwo">Some Text</div>
<div class="col-xs-3">
Some text that could wrap to multiple lines
</div>
<div class="col-xs-6"></div>
</div>
</div>
.table-container {
margin: 0 -15px;
}
.table-row {
display: table;
width: 100%;
}
.table-row [class^="col"] {
display: table-cell;
padding: 0 15px;
float: none;
}
display:flex;