最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

CSS div布局 一行多列

2023-09-05 17:19 作者:小步2023  | 我要投稿

https://www.xiaobuteach.com/html/div-layout/cols.html?from=bili

CSS div布局 一行多列

div布局實現(xiàn)一行多列的關鍵屬性:float屬性設置浮動;

同時需要clear屬性清除浮動。


1 float屬性簡介

float屬性設置浮動。

float屬性值說明none默認值。不浮動。left左浮動。當前元素沒有了換行效果。right右浮動。當前元素沒有了換行效果。

例1:一行三列。

<body> ? ?<!-- float屬性 --> ? ?<div style="float: left;width: 100px;">第1列</div> ? ?<div style="float: left;width: 100px;">第2列</div> ? ?<div style="float: left;width: 100px;">第3列</div> </body>

運行效果


2 浮動塌陷

2.1 多行

在例1,我們實現(xiàn)了浮動效果。

現(xiàn)在實現(xiàn):3行,第1行分多列。

每一行,需要外層一個div,然后這個div嵌套多個float的div表示列。


例2:共3行,第1行分3列。

? ?<div><!-- 這對div表示第1行--> ? ? ? ?<div style="float: left;width: 100px;">1行1列</div> ? ? ? ?<div style="float: left;width: 100px;">1行2列</div> ? ? ? ?<div style="float: left;width: 100px;">1行3列</div> ? ?</div><!-- 第1行結(jié)束--> ? ?<div><!-- 這對div表示第2行--> ? ? ? ?第2行 ? ?</div><!-- 第2行結(jié)束--> ? ?<div> ? ? ? ?第3行 ? ?</div>

出問題了:第2行沒有換行,第3行正常換行。為什么?


2.2 浮動塌陷

F12查看第1行的div,其高度為0。這就是浮動塌陷。


2.3 浮動塌陷的原因

當div設置float屬性為left或right時,導致外層的div的高度失效,即為0。

下節(jié)介紹如何解決浮動塌陷的方法。

3 CSS div布局 解決浮動塌陷

方法1:設置高度

既然外層div高度為0,我們手動給外層div加上高度即可。

<body> ? ?<div style="height: 40px;"> ? ? ? ?<div style="float: left;width: 100px;">1行1列</div> ? ? ? ?<div style="float: left;width: 100px;">1行2列</div> ? ? ? ?<div style="float: left;width: 100px;">1行3列</div> ? ? ? ? ? ?</div> ? ?<div> ? ? ? ?第2行 ? ?</div> ? ?<div> ? ? ? ?第3行 ? ?</div> </body>

適用場景:行的高度固定。


方法2:clear清除浮動

設置clear:both來清除浮動。

通常在內(nèi)層最后一個div并列加一個僅設置clear:both樣式無內(nèi)容的div。

注意事項:一定要注意這個專用的清除浮動的div的位置。

<body> ? ?<div> ? ? ? ?<div style="float: left;width: 100px;">1行1列</div> ? ? ? ?<div style="float: left;width: 100px;">1行2列</div> ? ? ? ?<div style="float: left;width: 100px;">1行3列</div> ? ? ? ?<!-- 專用的清除浮動的div,僅有樣式無內(nèi)容。在代表行的div的內(nèi)部,最后一個。 --> ? ? ? ?<div style="clear: both;"></div> ? ?</div> ? ?<div> ? ? ? ?第2行 ? ?</div> ? ?<div> ? ? ? ?第3行 ? ?</div> </body>

完成。

適用場景:行的高度不確定,由其中內(nèi)容確定。


方法3:偽類清除浮動

通過after偽類在元素的內(nèi)部結(jié)束位置添加類似清除的div。

本質(zhì)同方法2,只是寫法上不用寫專用清除浮動的div,而是通過偽類after添加這個div。

<head> ? ?<meta charset="UTF-8"> ? ?<title>CSS 偽類清除浮動 | 小步教程</title> ? ?<style> ? ? ? ?/* 清除浮動的樣式 */ ? ? ? ?.class1::after{ ? ? ? ? ? ?content: ''; ? ? ? ? ? ?display: block; ? ? ? ? ? ?clear:both; ? ? ? ?} ? ?</style> </head> <body> ? ?<div class="class1"> ? ? ? ?<div style="float: left;width: 100px;">1行1列</div> ? ? ? ?<div style="float: left;width: 100px;">1行2列</div> ? ? ? ?<div style="float: left;width: 100px;">1行3列</div> ? ? ? ?<!-- 通過在外層div加after偽類樣式,實現(xiàn)下方加div的同等效果 --> ? ? ? ?<!-- <div style="clear: both;"></div> --> ? ?</div> ? ?<div> ? ? ? ?第2行 ? ?</div> ? ?<div> ? ? ? ?第3行 ? ?</div> </body>

方法4:公共樣式清除浮動

當多個div,每個樣式都像上面的方法清除浮動,略麻煩,可以設計公共類clearfix專門清除浮動。

前端行業(yè)大家已經(jīng)約定俗成都用clearfix這個類名。

<head> ? ?<meta charset="UTF-8"> ? ?<title>CSS 偽類清除浮動 | 小步教程</title> ? ?<style> ? ? ? ?/* 公共樣式清除浮動*/ ? ? ? ?.clearfix::after{ ? ? ? ? ? ?content: ''; ? ? ? ? ? ?display: block; ? ? ? ? ? ?clear:both; ? ? ? ?} ? ?</style> </head> <body> ? ?<div class="class1 clearfix"> ? ? ? ?<div style="float: left;width: 100px;">1行1列</div> ? ? ? ?<div style="float: left;width: 100px;">1行2列</div> ? ? ? ?<div style="float: left;width: 100px;">1行3列</div> ? ? ? ?<!-- 通過在外層div加after偽類樣式,實現(xiàn)下方加div的同等效果 --> ? ? ? ?<!-- <div style="clear: both;"></div> --> ? ?</div> ? ?<div class="clearfix"> ? ? ? ?<div style="float: left;width: 100px;">2行1列</div> ? ? ? ?<div style="float: left;width: 100px;">2行2列</div> ? ?</div> ? ?<div> ? ? ? ?第3行 ? ?</div> </body>

上述兩個div都使用了clearfix類。

可以把clearfix樣式放到公共的css文件,需要的地方引用css,直接使用clearfix即可。


CSS div布局 一行多列的評論 (共 條)

分享到微博請遵守國家法律
泸溪县| 新邵县| 砀山县| 邻水| 永兴县| 宝丰县| 宁德市| 太康县| 扶余县| 城市| 延长县| 乐安县| 贵州省| 青河县| 桑日县| 开封市| 和顺县| 新巴尔虎右旗| 祁连县| 叙永县| 武川县| 纳雍县| 开鲁县| 锡林浩特市| 五大连池市| 南丹县| 河西区| 平安县| 郁南县| 杂多县| 区。| 沙坪坝区| 宣城市| 韶关市| 弥渡县| 方城县| 嵊泗县| 左贡县| 江都市| 昭苏县| 镇江市|