zoukankan      html  css  js  c++  java
  • 清楚浮动的10种方法

    摘要:Eric:"当你浮动一个元素的时候... ... 这些(浮动)规则就好像在说:‘劲量把这个元素网上放,能放多高放多高,知道碰到某个元素的边界为止。’"  --  Cascading Style Sheets 2.0 Programmer's Reference 

    初入前端这一行,在面试时,经常会被问到清楚浮动这一问题。现在总结下我所知道的方法。

    清除浮动是我们每一位前端设计必须掌握的。这里我总结了十种方法,前9种已经通过(IE,Chrome,firefox)测试,最后一种使用CSS3新属性,只支持主流浏览器。

    /* 初始化样式 */
    <
    style> div,p,img{border:0;padding:0;margin:0;} p{line-height:1.5;} div{border:1px solid blue;margin:0 0 10px 0;} img{float:left;width:150px;height:87px;} </style> <html> <div class="section"> <img src="img/1.jpg" alt=""/> <p>It's fun to float.</p> </div> </html>

    一.使用overflow属性清楚浮动:

    使用overflow这几种方法,浏览器会自动检测浮动元素高度。必须配合zoom:1或者固定高度,结局IE兼容问题。

    优点:代码少,简单,浏览器支持好

    1.overflow:hidden

    .section{overflow:hidden;zoom:1}

    缺点:超出的内容会被隐藏。如不能用于下拉菜单的顶级元素上,否则子元素下拉菜单不显示。

    2.overflow:scroll

    .section{overflow:scroll;zoom:1;}

    缺点:页面会有滚动条的样式,如果元素高度固定,会存在滚动条。不建议使用

    3.overflow:auto

    .section{overflow:auto;zoom:1;}

    二.父元素也同子元素一起浮动

    4.浮动父元素。父元素{float:left/right}

    .section{float:left;width:100%;}

    优点:代码少,简单,容易理解。

    缺点:需要重新设置元素width,又出现新的浮动问题。不能对已经自动居中的元素使用"浮动父元素"的方法,否则元素不会居中。

    三.在父元负内部添加空标签,清楚浮动,父元素自动获取高度。

    5.增加空标签,xxx{clear:both/left/right}

    <style>
    s.clear{clear:left;display:block;}
    </style>
    <html>
    <div class="section3">
      <img src="img/1.jpg" alt=""/>
      <p>It's fun to float.</p>
      <s class="clear"></s>
    </div>
    <div class="footer">Here is the footer element that runs across the bottom of the page.</div>
    </html>

    优点:代码少,浏览器支持好,不易出现怪异问题。

    6.增加<br style="clear:both"/>

    缺点:如果浮动布局多,会增加许多空标签。

    四.使用伪类标签。

    该方法由程序猿Tony Aslett发明,只添加一个清除的空字符作为非浮动元素。规则中其他什么保证为元素没有高度。使用clear:both意味着div中新增的子元素会清除左右浮动,这里可以只使用left,但both也适用于图片float:right.

    7.使用::after{}设置

    .clearfix{zoom:1}/*解决IE*/
    .clearfix是::after{
       content:"";
       display:block;
       clear:both;
    }

    原理:IE8以上和主流浏览器支持::after,zoom解决IE6、7的浮动问题。

    优点:浏览器支持性好,目前大型网站都有使用。

    缺点:代码多,初学者不好掌握(最开始面试时,只知道有伪类清楚浮动方法,具体内容总是忘记)。需要两句代码让浏览器支持。

    五.固定父元素高度

    8.设置父元素height。

    .section{height:100px;}

    优点:代码少,初学者容易掌握理解。

    缺点:不是所有页面中的元素高度都是固定不变的,在实际应用中不合适。

    六.使用display属性

    9.display:table

    .section{display:table;width:100%;}

    原理:将父元素变成表单格式。只做了解。

    10.display:flex;

    .section{display:flex;}

    原理:flex将元素作为弹性伸缩盒显示(最新版本),是CSS3新增属性值,IE6.0-10.0不支持。

     七.父元素不能

  • 相关阅读:
    POJ训练计划1035_Spell checker(串处理/暴力)
    软考-数据库与标准化和知识产权
    分析Cocos2d-x横版ACT手游源码 1、公共
    增强版的RecycleViewAdapter,能够直接使用
    高考志愿,你们想好怎么填了吗?
    win32收不到F10按键消息解决的方法
    Json——使用Json jar包实现Json字符串与Java对象或集合之间的互相转换
    九度OJ #1437 To Fill or Not to Fil
    SQL数据分组后取最大值或者取前几个值(依照某一列排序)
    3.5星|《硅谷产品》:Facebook网红社区产品经理经验谈
  • 原文地址:https://www.cnblogs.com/zmr2520/p/6007476.html
Copyright © 2011-2022 走看看