zoukankan      html  css  js  c++  java
  • 前端面试题十一

    一、列举不同的清除浮动的技巧,并指出它们各自适用的使用场景。

    首先来说明为什么要清除浮动? 当一个容器中的元素全部浮动之后,由于浮动会让元素脱离普通文档流,所以对于外面的这个容器来讲它就没有内容将它撑开,背景设置无法显示,margin设置无法显示。 清除浮动的方法:

     1、添加新的元素 、应用 clear:both;

    例如: <div class="outer"> <div class="div1">1</div> <div class="div2">2</div> <div class="div3">3</div> <div class="clear"></div> </div>

    .clear{clear:both; height: 0; line-height: 0; font-size: 0}

    优点:简单,代码少,浏览器支持好,不容易出现怪问题 缺点是要增加很多无效布局,但这是清除浮动用的比较多的一种方法。

     2、父级div定义overflow:auto或者hidden <div class="outer over-flow">

    //这里添加了一个class <div class="div1">1</div> <div class="div2">2</div> <div class="div3">3</div> </div>

    .over-flow{ overflow: auto; zoom: 1; //zoom: 1; 是在处理兼容性问题 }

    原理:必须定义width或zoom:1,同时不能定义height,使用overflow属性来清除浮动有一点需要注意,overflow属性共有三个属性值:hidden,auto,visible。我们可以使用hiddent和auto值来清除浮动,但切记不能使用visible值,如果使用这个值将无法达到清除浮动效果。

    优点:简单,代码少,浏览器支持好 缺点:使用auto时内部宽高超过父级div时,会出现滚动条,使用hidden时会被隐藏

     3、after 方法 原理:利用:after和:before来在元素内部插入两个元素块,从面达到清除浮动的效果。其实现原理类似于clear:both方法,只是区别在于:clear在html插入一个div.clear标签,而这种方法则是利用其伪类clear:after在元素内部增加一个类似于div.clear的效果。

    下面来看看其具体的使用方法:

    <div class="outer"> <div class="div1">1</div> <div class="div2">2</div> <div class="div3">3</div> </div>

    .outer {zoom:1;} /==for IE6/7 Maxthon2==/ .outer :after {clear:both;content:’.’;display:block; 0;height: 0;visibility:hidden;}

    其中clear:both;指清除所有浮动;content: ‘.’; display:block;对于FF/chrome/opera/IE8不能缺少,其中content()可以取值也可以为空。visibility:hidden;的作用是允许浏览器渲染它,但是不显示出来,这样才能实现清除浮动。 所以总的来说,推荐使用伪类的办法。



    作者:Arno_z
    链接:https://www.jianshu.com/p/1c314dd0ba1f
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 相关阅读:
    Cocos-js(html5) 学习
    Cocos-html5 初识
    quick cocos2d-x Xcode下省去clean,让修改的脚本生效
    iOS 淘宝买 开发者证书 进行真机调试
    iOS NSString的学习熟悉
    quick-cocos2d-x 加载进度条的学习
    HTML 学习之HTML语言嵌入JavaScript
    CCArray的使用(Quick-cocos2d-x)
    quick-cocos2d-x 精灵使用、动作等等的学习
    Spring(二) Mini版Spring的实现
  • 原文地址:https://www.cnblogs.com/jian138/p/8521636.html
Copyright © 2011-2022 走看看