浮动

浮动

float:left/right;左浮动/右浮动

  • 给了浮动的元素,只会影响后面的元素,支持高、宽;(任何元素都可以浮动)

  • 若父级宽度太窄,无法容纳所有的浮动元素,无法容纳的浮动元素回往下掉

    若某一个元素较高,掉下来的元素会被挡住

    对文字的概念:

    浮动不会被浮动元素盖住,会形成一个环绕效果

     

文档流

普通元素在文档中默认排列的方式 不添加任何样式时,遵守基本的元素的排列方式

<!doctype html>
<html>
   <head>
       <title>浮动</title>
       <style type="text/css">
           div{height:100px;
           background:red;}
           span{background:blue;}
           a{background:yellow;}
       </style>
   </head>
   <body>
       <div>
           
       </div>
       <span>几乎是国防建设的功夫</span>
       <a href="">和v阿嘎</a>
   </body>
</html>

浮动的一般情况

<!doctype html>
<html>
   <head>
       <title>浮动</title>
       <style type="text/css">
          *{margin:0px;padding:0px;}
           body{font:40px "微软雅黑";}
           ul{list-style:none;}
           li{
               float:left;
               width:200px;
               height:200px;
               border:5px none orange;
              <!-- 右浮动时顺序是4 3 2 1,要想顺序 可以父级右浮动,子级左浮动 -->
          }
       </style>
       
   </head>
   <body>
      <ul>
          <li>1</li>
          <li>2</li>
          <li>3</li>
          <li>4 </li>
       </ul>
   </body>
</html>

特殊情况

 

<!doctype html>
<html>
   <head>
       <title>浮动</title>
       <style type="text/css">
          *{margin:0px;padding:0px;}
           body{font:40px "微软雅黑";}
           ul{list-style:none;}
           li{
               
               width:200px;
               height:200px;
               border:5px none orange;
               background:red;
          }
           #l1{background:yellow;}
           #l2{background:blue;float:left;}
          <!-- l2将会被l1覆盖,因为l1不占位置 -->
       </style>
       
   </head>
   <body>
      <ul>
          <li id="l1">1</li>
          <li id="l2">2</li>
          <li>3</li>
          <li>4 </li>
       </ul>
   </body>
</html>

清除浮动

clear:left/right/both;左/右/两边清除浮动

浮动会造成父级的塌陷,会对后面的布局造成影响

清除浮动可以清除浮动造成的影响

1.浮动元素本身不能清除浮动

子级元素最后加空标签: 如 .clarbox{clear:both;} 在li后加div标签,class=“clarbox”

2.父级元素:

加高度 //扩展性不好

加display:inline-block;/会解析空格 不建议使用/

加overflow:hidden;/强制性的重新检查父元素的子元素的内容 刚好需要时使用/

after伪元素内部末尾添加内容 /*如ul里的li标签浮动时 可以ul:after{ content:""; *

display: block; /其默认为行列元素/*

clear:both;}*/时下主流使用方式,可以添加共同class名

不至于每添加浮动都要写一次

3.有浮动就需要清除浮动

上一篇:css


下一篇:纯css实现三角形?