代码之家  ›  专栏  ›  技术社区  ›  cletus

CSS浮动和块元素

  •  3
  • cletus  · 技术社区  · 16 年前

    我有一个恼人的CSS布局问题。我尝试在特定页面上浮动图像:

    img {
      float: left;
    }
    

    我想我的标题不能缩进:

    h3 {
      clear: left;
    }
    

    除了一些图像的列表(或任何块元素)浮动在它们上面(或与实际情况不同),所有这些都可以正常工作。原因在CSS规范中很清楚:块元素不会流动。行/行元素可以。

    然而,对于列表来说,这是一个真正的问题。是否有任何方法可以以一种相当通用和兼容的方式绕过它?

    2 回复  |  直到 13 年前
        1
  •  5
  •   Jason Plank Maksim Kondratyuk    13 年前

    我总是这样做,以确保始终清除浮动:

    1. 将以下内容添加到CSS中:

      .clearfix:after {
          content: ".";
          display: block;
          clear: both;
          visibility: hidden;
          line-height: 0;
          height: 0;
      }
      
      .clearfix {
          display: inline-block;
      }
      
      html[xmlns] .clearfix {
          display: block;
      }
      
      `*` html .clearfix {
          height: 1%;
      }
      

      您还可以找到此代码 here .

    2. 标记与类一起浮动的元素的每个父级 clearfix .

        2
  •  0
  •   Lee Theobald    16 年前

    听起来问题在于清除浮动。但正如一条评论所说,截图是不错的。我个人通过设置溢出属性来清除浮动: http://www.quirksmode.org/css/clearing.html