webbasic之如何消除浮动影响

1.如果最终不需要显示父元素的边框,只需要处理对p的影响:

p{

    clear:left/right/both

}

以上可消除左浮动,右浮动,和两者都有时的影响,注意只能消除对叔叔辈的影响。

2.如果想消除对父元素的影响:

-在父元素内加一个空的块。

-在这个新块上clear

-原理?

因为新加进去的块没有浮动,依然占据流(此时新块也是没有高度的),对它clear会使它露出来(露出来的形式同p)

从而拉伸了流的高度,使得父元素有了高度

<body>
   <div id="d0">
     <div id="d1"></div>
     <div id="d2"></div>
     <div id="d3"></div>
     <!-- 消除浮动影响:消除浮动对父元素的影响 -->
     <div style="clear:left;"></div>
   </div>
   <p>浮动时看看我</p>
</body>

3.实例:照片墙

<!doctype html>
<html>
  <head>
     <meta charset="utf-8"/>
     <title>照片墙</title>
     <style>
        /*先刷墙*/
        body{
          background-color:#088;//设置背景墙为湖蓝色
        }
        /*再摆照片*/
        ul{
        width:780px; //设置ul(流)的宽度等于3个li的宽度,摆第4个的时候会自动换行
        margin:20px auto;
        border:1px solid red;
        /*去掉符号*/
        list-style-type:none;
        }
        li{
          width:218px;
          padding:10px;
          margin:10px;
          border:1px solid #ccc;//将每个li的边框设置的灰色
          float:left;//左浮动,实现照片的正序排列
          background-color:#fff;//将每个li的背景色设置为白色
        }//每一个li所占的宽度为:218+2*10+2*10+2*1=260
        p{
         text-align:center;//设置描述照片的文本居中
        }
     </style>
  </head>
  <body>
     <ul>
       <li>
         <img src="../images/01.jpg"/>
         <p>轻轻地我走了</p>
       </li>
       <li>
         <img src="../images/02.jpg"/>
         <p>正如我轻轻地来</p>
       </li>
       <li>
         <img src="../images/03.jpg"/>
         <p>我轻轻地招手</p>
       </li>
       <li>
         <img src="../images/04.jpg"/>
         <p>作别西天的云彩</p>
       </li>
       <li>
         <img src="../images/05.jpg"/>
         <p>那河畔的青柳</p>
       </li>
       <li>
         <img src="../images/06.jpg"/>
         <p>是夕阳中的新娘</p>
       </li>
     </ul>
为什么使用ul来做照片墙而不使用div?

用列表放相似的东西,它的渲染效率是最高的。
  </body>
</html>

posted @ 2016-03-31 21:20  野生猿  阅读(306)  评论(0编辑  收藏  举报