Using :after to clear floating elements

后端 未结 5 927
失恋的感觉
失恋的感觉 2020-11-29 19:57

I have a list and the li\'s have a float:left;. The contents after the

    should be aligned correctly. Therefore i can build the following:
相关标签:
5条回答
  • 2020-11-29 20:34

    No, you don't it's enough to do something like this:

    <ul class="clearfix">
      <li>one</li>
      <li>two></li>
    </ul>
    

    And the following CSS:

    ul li {float: left;}
    
    
    .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%;
    }
    
    0 讨论(0)
  • 2020-11-29 20:40

    This will work as well:

    .clearfix:before,
    .clearfix:after {
        content: "";
        display: table;
    } 
    
    .clearfix:after {
        clear: both;
    }
    
    /* IE 6 & 7 */
    .clearfix {
        zoom: 1;
    }
    

    Give the class clearfix to the parent element, for example your ul element.

    Sources here and here.

    0 讨论(0)
  • 2020-11-29 20:47

    Write like this:

    .wrapper:after {
        content: '';
        display: block;
        clear: both;
    }
    

    Check this http://jsfiddle.net/EyNnk/1/

    0 讨论(0)
  • 2020-11-29 20:49

    The text 'dasda' will never not be within a tag, right? Semantically and to be valid HTML it as to be, just add the clear class to that:

    http://jsfiddle.net/EyNnk/2/

    0 讨论(0)
  • 2020-11-29 20:54

    Use

    .wrapper:after {
        content : '\n';
    }
    

    Much like solution provided by Roko. It allows to insert/change content using : after and :before psuedo. For details check http://www.quirksmode.org/css/content.html

    0 讨论(0)
提交回复
热议问题