這次帶給大家css中的float的圖文詳解,float的圖文詳解的注意事項有哪些,下面就是實戰案例,一起來看一下。
float與margin
兩個相鄰的浮動元素,當第一個浮動元素(不論是左浮動還是右浮動)的寬度為100%時,第二個浮動元素會被擠到下面,透過添加負margin-right值(絕對值最少等於它自己的寬度),可以使它回到第一行。
在書寫html程式碼時,我們通常的習慣根據UI樣式,從左到右來寫程式碼,但有時候右側的內容比較重要,所以它的html結構需要放在左側內容上面,讓它更早的加載,例如:
左側定寬流式佈局
<p class="comment"> <!-- 右侧重要内容 --> <p class="content"> <p class="author"> <span class="name">哇哈哈</span> <span class="date">2016-78-55</span> </p> <p class="text">吃的再多也不长胖,好愁人啊,怎么能快速长胖呢,在线等,急!吃的再多也不长胖,好愁人啊,怎么能快速长胖呢,在线等,急!吃的再多也不长胖,好愁人啊,怎么能快速长胖呢,在线等,急!吃的再多也不长胖,好愁人啊,怎么能快速长胖呢,在线等,急!吃的再多也不长胖,好愁人啊,怎么能快速长胖呢,在线等,急!吃的再多也不长胖,好愁人啊,怎么能快速长胖呢,在线等,急!吃的再多也不长胖,好愁人啊,怎么能快速长胖呢,在线等,急!</p> <p class="meta"> <span class="msg-tag">赞</span> <span class="msg-tag">回复</span> </p> </p> <!-- 左侧内容 --> <a href="#" class="avatar"><img src="images/header.jpg" alt="头像"></a> </p>
* {margin:0; padding:0;} li {list-style: none;} a {text-decoration: none;} body {font-family: '微软雅黑';} .wrap { width: 800px; margin: 50px auto; } .content { float: right; margin-left: 100px; } .date { font-size: 14px; color: #666; } .text { margin: 20px 0; } .avatar { float: left; margin-right: -80px; } .avatar img { width: 80px; height: 80px; border-radius: 50%; }
如上面圖的效果,儘管在UI上,.content元素在.avatar右邊,但我們在html結構中,仍然需要把.content元素放到.avatar元素前面,這個時候就可以透過給.content元素設定為右浮動,然後給.avatar元素設定左或右浮動,再加入負margin-right值,讓它回到上面。
1.左右兩邊都不定寬
#效果圖:
#html程式碼:<p class="comment">
<a href="#" class="avatar"><img src="images/header.jpg" alt="头像"></a>
<p class="content">
<p class="author">
<span class="name">哇哈哈</span>
<span class="date">2016-78-55</span>
</p>
<p class="text">吃的再多也不长胖,好愁人啊,怎么能快速长胖呢,在线等,急!吃的再多也不长胖,好愁人啊,怎么能快速长胖呢,在线等,急!吃的再多也不长胖,好愁人啊,怎么能快速长胖呢,在线等,急!吃的再多也不长胖,好愁人啊,怎么能快速长胖呢,在线等,急!吃的再多也不长胖,好愁人啊,怎么能快速长胖呢,在线等,急!吃的再多也不长胖,好愁人啊,怎么能快速长胖呢,在线等,急!吃的再多也不长胖,好愁人啊,怎么能快速长胖呢,在线等,急!</p>
<p class="meta">
<span class="msg-tag">赞</span>
<span class="msg-tag">回复</span>
</p>
</p>
</p>
#核心點:
##. avatar元素左浮動,.content元素的display屬性設為table-cell,其實這裡的.content元素不一定非要設定display為table-cell才行,只要是能觸發BFC/haslayout的就行,例如:float:left/right position:absolute/fixed overflow:hidden/scroll(IE7+) display:inline-block/table-cell(IE8+)不過因為這裡的.content元素是自適應的,不能定寬,而且裡麵包含區塊級元素,所以只能設定overflow屬性。 css程式碼:
* {margin:0; padding:0;} li {list-style: none;} a {text-decoration: none;} body {font-family: '微软雅黑';} .wrap { width: 800px; margin: 50px auto; } .avatar { float: left; margin-right: 20px; } .avatar img { width: 80px; height: 80px; border-radius: 50%; } .content { display: table-cell; } .date { font-size: 14px; color: #666; } .text { margin: 20px 0; }
2.右側定寬串流佈局
效果圖:
##<p class="wrap"> <ul class="list"> <li class="item"> <p class="content-wrap"> <p class="content"> <p class="author"> <a href="#" class="avatar"><img src="images/header.jpg" alt="头像"></a> <span class="name">李荣浩</span> <span class="date">2016-01-22</span> </p> <a href="#" class="title">不将就</a> <p>互相折磨到白头 悲伤坚决不放手 开始纠缠之后 才又被人放大了自由 你的暴烈太温柔 感情又痛又享受 如果我说不吻你不罢休 谁能逼我将就</p> <p class="meta"> <span class="category-tag">歌曲</span> <span class="msg-tag">喜欢·5000</span> </p> </p> </p> <a href="#" class="thumbnail"><img src="images/pic.jpg" alt="图片"></a> </li> </ul> </p>
核心點:1:當第一個浮動元素的寬度為100%時,第二個元素會自動換行,緊鄰第一個元素,這時可以給第二個浮動元素添加負margin值,使它上去
2:第一個浮動元素.content外面有一個包裹元素,方便給.content元素添加 padding-right值,讓左邊的內容和右邊圖片之間留出空隙
其實雙飛翼佈局的想法也是包含上面兩點。
css程式碼:
現在三欄佈局很少了,如果要用到,請直接百度雙飛翼佈局或聖杯佈局。
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
以上是css中的float的圖文詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!