實(shí)現(xiàn)CSS中div列高度自適的3種途徑
這里向大家描述一下解決div列高度自適的3種常用方法,其中最常用大就是利用“clear:both”背景填充,三行二列布局,主要內(nèi)容在右邊,網(wǎng)頁寬度780px,左列240px,右列540px,相信本文介紹一定會(huì)讓你有所收獲。
CSS技巧:解決div列高度自適的3種常用方法
解決div列高度自適的方法有很多種,這里介紹三種最常用的方法給大家(下面所有例子以父main,子divleft、divright為例)。
1、利用“clear:both”背景填充
這是使用最廣泛的一種做法,我一直都用此方法解決div列高度自適問題。三行二列布局,主要內(nèi)容在右邊,網(wǎng)頁寬度780px,左列240px,右列540px。
CSS代碼:
- #main{
- width:780px;
- margin:0;
- background:url(bg.gif)#FFFFFFrepeat-yleft;
- text-align:left;
- }
- #divleft{
- float:left;
- width:240px;
- }
- #divright{
- float:right;
- width:540px;
- }
- .clear{
- border-top:1pxsolidtransparent!important;
- margin-top:-1px!important;
- border-top:0;
- margin-top:0;
- clear:both;
- visibility:hidden;
- }
html代碼:
- <dividdivid="main">
- <dividdivid="divleft"></div>
- <dividdivid="divright"></div>
- <divclassdivclass="clear"></div>
- </div>
優(yōu)點(diǎn):無hacks,完全的自適應(yīng)高度。
2、腳本控制DIV列高度
在<body>中加入如下代碼(假設(shè)divright的高度相對(duì)***):
- <scriptlanguagescriptlanguage="javascript">
- document.getElementById"divleft")
- .style.height=document.getElementById"divright")
- .scrollHeight+"px"
- </script>
優(yōu)點(diǎn):代碼超級(jí)簡單
缺點(diǎn):要確定有某一列的高度始終是相對(duì)***的,此方法比較被動(dòng)。#p#
3、margin負(fù)值父子容器高度繼承
這個(gè)方法能較好地解決DIV列高度相同的問題。三行二列布局,主要內(nèi)容在左邊,網(wǎng)頁寬度780px,左列540px,右列240px。
CSS代碼:
- #main{
- width:540px;
- float:left;
- background:#FFFFFF;
- text-align:left;
- }
- #divleft{
- width:540px;
- float:left;
- position:relative;
- margin-left:-540px;
- }
- #divright{
- width:240px;
- float:right;
- position:relative;
- margin:0-240px00;
- background:#F0F0F0;
- }
html代碼:
- <dividdivid="main">
- <dividdivid="divleft">
- <dividdivid="divright"></div>
- </div>
- </div>
或許剛接觸的WebStandards的朋友對(duì)這種方法不怎么理解,現(xiàn)Blank分析一下:
[A]
[B][C]
上結(jié)構(gòu)中a包含c,c包含b。當(dāng)b的高度為***時(shí),那么a和c將繼承b的高度,如果a和b位置重合,將顯示b的背景;而當(dāng)c的高度***時(shí),那么a繼承將繼承c的高度,如果a和b位置重合,將顯示a的背景。這樣無論b***或者c***都將顯示div列高度相同。
優(yōu)點(diǎn):兼有***種方法的優(yōu)點(diǎn),并且比***種方法的代碼稍微簡潔。
缺點(diǎn):整體結(jié)構(gòu)只能左對(duì)齊。
【編輯推薦】
- 頁面中使用CSS垂直居中的技巧
- JavaScript動(dòng)態(tài)創(chuàng)建div屬性和樣式
- 調(diào)用DIV+CSS實(shí)現(xiàn)模擬表格對(duì)角線
- CSS2.0中page-break-after屬性用法
- 探究CSS中border:none;與border:0;的區(qū)別