Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 左浮动divs问题_Html_Css Float_Width - Fatal编程技术网

Html 左浮动divs问题

Html 左浮动divs问题,html,css-float,width,Html,Css Float,Width,我有两个关于父分区中左侧浮动分区的问题。我花了5个多小时在这上面尝试了不同的东西,在互联网上搜索,但找不到解决方案!我想这里可能有人能帮忙 这是一个场景: <div id="parent_div"> <div class="left_floating" style="height:20px; width: 100%; clear:left;"><label style="text-align:center"> This is the title div <

我有两个关于父分区中左侧浮动分区的问题。我花了5个多小时在这上面尝试了不同的东西,在互联网上搜索,但找不到解决方案!我想这里可能有人能帮忙

这是一个场景:

<div id="parent_div">
<div class="left_floating" style="height:20px; width: 100%; clear:left;"><label style="text-align:center"> This is the title div </label></div> 
<div class="left_floating" style="height:50px; width:50px;"> 1 </div>
<div class="left_floating" style="height:20px; width:50px;"> 2 </div>
<div class="left_floating" style="height:20px; width:50px;"> 3 </div>
</div>

这是标题组
1.
2.
3.
问题1: 我想要的是:无论屏幕大小,标题始终位于其他三个div的中心。 发生了什么: 如果缩小屏幕尺寸,当没有足够的空间容纳div 3时,屏幕会下降(这是我想要的),但div 2右侧仍会有一些间隙,使父div的宽度大于100px(div 1的宽度+div 2的宽度),即父div从侧面看不紧。这使得标题不在中心位置。我怎样才能解决这个问题

问题2: 我想要的是:当屏幕缩小,div 3下降时,它应该在div 1下。 发生了什么:div 3位于div 2之下,因为div 2的高度小于div 1的高度。请注意,如果div 2的高度大于div 1的高度,则结果将是理想的结果。有什么建议吗

如果有的话,我更喜欢css解决方案


关于问题1,谢谢你:你可能想通过媒体查询来解决这个问题。听起来,在某些分辨率下,您希望css的行为有所不同,这正是媒体查询的好处所在。你可能会想要一些类似的东西

@media (max-width: n px) {
    #parent_div {
        width: 100px;
    }

@media (min-width: n+1 px) {
    #parent_div {
        width: 150px;
    }
关于问题2:您可以创建一个div来包装div2,以使其具有更大的静态高度,从而使div3适当浮动。只需使包装器向左浮动,使div2不浮动即可

<div id="parent_div">
<div class="left_floating" style="height:20px; width: 100%; clear:left;">
    <label style="text-align:center"> This is the title div </label>
</div> 
<div class="left_floating" style="height:50px; width:50px;"> 1 </div>
<div style="float:left; height:50px; width:50px;">
    <div class="left_floating" style="float:none; height:20px; width:50px;"> 2 </div>
</div>
<div class="left_floating" style="height:20px; width:50px;"> 3 </div>
</div>

这是标题组
1.
2.
3.

通过使用媒体查询,您可以实现自己的目标。下面是一个使用您提供的标记的示例:

注意我所做的CSS更改:使标签成为块元素和媒体查询(基于显示结果的屏幕宽度)。我在元素周围加上了边框,以便更容易看到。我还在父容器中添加了一个clr类

在媒体查询中,我将div“2”设置为向右浮动,这样就不会有这个间隙,然后将“3”设置为清除这两个间隙,这样它就会降到“1”以下。希望这有帮助

@media screen and (max-width: 3550px) {
 .second {float: right;}
 .third {clear: both;}
}


只需将最大宽度编辑为您希望断点出现的位置。

谢谢,这非常有效。但是,对于数量可变的“左浮动”div,有没有办法做到这一点呢?i、 例如,我应该为每个div定义@media css标记吗?当然,您可以使用:last child来获取最后一个,这将获得clear:both属性和:nth last child(2)来获取要浮动的倒数第二个元素:right谢谢,这很好地解决了第一个问题。是否需要根据内容的宽度而不是固定的数字“n px”来定义它?关于第二个问题,问题是div的高度是可变的,我现在没有任何先验限制!