美文网首页
[前端]浮动的理解?如何清除浮动?

[前端]浮动的理解?如何清除浮动?

作者: 半颗糖嘿 | 来源:发表于2022-09-23 21:11 被阅读0次

    浮动是相较于行内块而言的,浮动不会产生间距,而且浮动是可以使用margin来控制两个元素之间的距离,因此浮动的横向布局相比行内块使用更加方便,更好用的。

    浮动作用:在页面上实现横向的布局。

    特点:
    1.浮动的元素不占标准流的位置,不占据空间
    2.浮动元素碰到包含它的边框或者浮动元素的边框停留
    3.浮动元素永远不会压住文字
    4.父元素是标准流,子元素浮动时,父元素记得给高度。【否则子元素一旦浮动后,会导致父元素个高度为0】
    5.浮动的元素只会影响后面的标准流元素
    6.浮动是不能继承的

    值:float:none|left|right;(none是标准流,left是靠左浮动,right是靠右浮动)

    所谓的标准流,就是标签按照规定好的默认方式排列。即标准流为从上到下,从左到右排列的。

    面试题:
    (1)为什么横向的排列布局很少使用行内元素方式,而一般采用浮动方式实现?
    答:使用行内块实现横向布局的缺点:两个元素之间的换行,会多出来的一个空格,而这个空格的大小又是取决于font-size的大小,因此我们不好控制其两个元素之间的距离。

    (2)为什么清除浮动?
    答:由于浮动元素不用占原文档流的位置,所以它会对后面的元素排版产生影响。
    例如:因为父级盒子很多情况下,不方便给高度,但是子盒子浮动就不占位置,最后父级高度为0,就影响了下面的标准流盒子。准确地说,并不是清除浮动,而是清除浮动造成的影响。

    (3)清除浮动的方式?
    答:清除浮动的方式有四种。
    a.使用空标签清除浮动
    这种方法是在所有浮动标签后面添加一个空标签 定义css clear:both. 弊端就是增加了无意义标签

    b.使用after伪对象清除浮动

    #parent::after{
      content: "";
      height: 0;
      visibility: hidden;
      display: block;
      clear: both;
    }
    

    c.溢出隐藏

    overflow: hidden;
    

    d.浮动外部元素

    相关文章

      网友评论

          本文标题:[前端]浮动的理解?如何清除浮动?

          本文链接:https://www.haomeiwen.com/subject/mxjaortx.html