• 浮动


    1.为什么浮动?

      默认块级元素是独占一行的,而浮动就是让块级元素共处一行;那么为什么不设置成行内块级元素呢,因为它会有空隙。    

      

          浮动           行内快

      行内元素浮动起来就会自动变成块元素;

      float:left/right

    2.清除浮动

      为什么要清除浮动呢?在未给父元素设置固定高度的时候,浮动元素使其父元素高度塌陷;假设给父元素设置了边框,当其子元素设置浮动后,浮动元素将无法撑开父元素边框

      

           未浮动           浮动后

      这是因为当“元素设置浮动后,会自动脱离文档流”,也就是元素浮动后,就不在整个文档流的管辖范围内,那么它之前存在父元素内的高度就会随着浮动不存在了,而此时父元素会默认自己里面没有内容。

      当其中一个子元素设置浮动,而后面元素没有设置浮动,浮动元素会脱离文档流不在占据位置,后面未浮动的元素会占据它的位置。

      

           未浮动                                   红色浮动绿色未浮动

    3.解决方法

      1.给父元素一个固定高度,此方法适用于子元素高度已知并且固定的情况

      2.在浮动元素后面添加一个空的div,并给此元素设置clear:both,这样无疑是增加了无意义的标签,这种标签太多不好。

      3.overflow:hidden;

        ●隐藏溢出,当内容超过其父元素时,该属性可以将溢出的部分裁减掉,使页面更加美观。

        清除浮动,当子元素浮动时,给父元素加overflow:hidden,按照它的第一个特性,应该将子元素超出的部分裁减掉,但是子元素有浮动,无法裁剪,所以只能由父元素增加高度去包裹住子元素,使得父元素拥有了高度,而这个高度是跟随子元素自适应的高度,这样就把浮动的子元素包含在父元素内了。

      4.:after  伪类

        利用伪类来清除浮动,其效果跟创建一个空的div并设置其为clear:both;是一样的,只不过这里的伪类代替了空的div元素。

        .clraefix{
                  zoom:1;/*解决低级IE的问题*/
              }
              .clearfix:after{
                  content:"";/*加一个空内容*/
                  clear:both;/*清除浮动*/
                  display:block;/*确保该元素是一个块级元素*/
              }

     <div class="div clearfix ">
            <div class="div1">我是浮动元素1</div>
            <div class="div2">我是浮动元素2</div>
        </div>

  • 相关阅读:
    pwm驱动原理和代码实现
    物理-引力场:百科
    物理-引力:百科
    术语-物理-超距作用:百科
    物理-量子力学-量子纠缠:百科
    un-心理学:目录
    心理学-享乐主义:百科
    un-心理学:百科
    人才-理想人才:百科
    笔记-设计-页面-普天
  • 原文地址:https://www.cnblogs.com/qyuan/p/9487411.html
Copyright © 2020-2023  润新知