Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.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 当DIV1'时,是否有方法将DIV4浮动到同一类的第一个DIV1下;s的高度略大于DIV2和DIV3的高度?_Html_Css_Css Float - Fatal编程技术网

Html 当DIV1'时,是否有方法将DIV4浮动到同一类的第一个DIV1下;s的高度略大于DIV2和DIV3的高度?

Html 当DIV1'时,是否有方法将DIV4浮动到同一类的第一个DIV1下;s的高度略大于DIV2和DIV3的高度?,html,css,css-float,Html,Css,Css Float,我知道很难从题目中理解这个问题,所以我将用真实的例子来解释它 服务器生成包含内容的div并发送到浏览器 每个DIV都有相同的类:例如,“.column” 所有div的高度“几乎”相同。一个可以比另一个稍高或稍短 目标是强制浮动:左所有列,即使上面的第一列比其同级列高。请参见下面的屏幕截图 在上图中,您可以看到Col4在Col1下是而不是,因为Col1的高度比它的兄弟姐妹高有没有办法强制Col4 DIV在Col1 DIV下向左浮动? 我正在寻找一个本地CSS解决方案,如果可能的话。而且我不需要简

我知道很难从题目中理解这个问题,所以我将用真实的例子来解释它

  • 服务器生成包含内容的div并发送到浏览器
  • 每个DIV都有相同的类:例如,“
    .column
  • 所有div的高度“几乎”相同。一个可以比另一个稍高或稍短
  • 目标是强制浮动:左所有列,即使上面的第一列比其同级列高。请参见下面的屏幕截图

    在上图中,您可以看到Col4Col1下是而不是,因为Col1的高度比它的兄弟姐妹高有没有办法强制Col4 DIV在Col1 DIV下向左浮动?

    我正在寻找一个本地CSS解决方案,如果可能的话。而且我不需要简单的解决方案,比如创建3列并将div推入每个列

    如果真的不可能,如果您能回答为什么Col6不“坚持”Col1,我将不胜感激

    上述资料可从以下网址获得:

    .col{
      float:left;
      height:50px;
      width:130px;
      border-left: 1px solid;
      border-bottom: 1px solid;
    }
    
    .col1{
      height:60px
    }
    
    和HTML:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset=utf-8 />
    <title>JS Bin</title>
    </head>
    <body>
      <div class="col col1">Col1</div>
      <div class="col">Col2</div>
      <div class="col">Col3</div>
      <div class="col">Col4</div>
      <div class="col">Col5</div>
      <div class="col">Col6</div>
    </body>
    </html>
    
    
    JS-Bin
    可乐
    可乐
    可乐
    可乐
    可乐
    可乐6
    
    这是jsbin中的代码


    我非常感谢您的帮助。

    您只需清除浮动即可:

    .col:nth-child(4) {
      clear: left;
    }
    
    如果需要支持较旧的浏览器,请改用此选择器:

    .col1 + .col + .col + .col {
      clear: left;
    }
    
    但是,如果您需要第5列和第6列分别与第2列和第3列的底部边框齐平,那么单靠浮动是无法实现的。您需要找到另一种方法来解决这个问题,或者使用类似的方法来布局页面


    第6列未与第1列对齐的唯一可能原因是,它正在换行,并且根据浮动模型,框不能高于前面浮动框的底部。

    您应该能够清除浮动:

    .col:nth-child(4) {
      clear: left;
    }
    
    如果需要支持较旧的浏览器,请改用此选择器:

    .col1 + .col + .col + .col {
      clear: left;
    }
    
    但是,如果您需要第5列和第6列分别与第2列和第3列的底部边框齐平,那么单靠浮动是无法实现的。您需要找到另一种方法来解决这个问题,或者使用类似的方法来布局页面


    第6列没有与第1列对齐的唯一可能原因是,它正在换行,并且根据浮动模型,框不能高于前面浮动框的底部。

    您可以尝试从您的“列中删除“浮动:左;”在css上初始化并将其替换为“显示:内联块;”,它可能会工作。不确定它是否适用于所有浏览器。我只在chrome和mozilla上试用过

     .col{
         /*float:left;*/
         height:50px;
         width:130px;
         border-left: 1px solid;
         border-bottom: 1px solid;
    
         display:inline-block; 
      }
    

    上,您可以简单地尝试从css上的“col”类中删除“float:left;”,并将其替换为“display:inline block;”,它可能会起作用。不确定它是否适用于所有浏览器。我只在chrome和mozilla上试用过

     .col{
         /*float:left;*/
         height:50px;
         width:130px;
         border-left: 1px solid;
         border-bottom: 1px solid;
    
         display:inline-block; 
      }
    

    现场示范

    Nice!简单而有效。但不幸的是,我“必须”坚持使用浮动列,因为我使用的响应性Zurb/Foundation默认使用浮动列。很好!简单而有效。但不幸的是,我“必须”坚持使用浮动列,因为我使用的响应性Zurb/Foundation默认使用浮动列。