解決DIV列高度自適方法及優(yōu)缺點(diǎn)
你對(duì)解決DIV列高度自適方法是否熟悉,這里和大家分享一下,主要從三個(gè)方面向大家介紹,希望你能夠掌握。
解決DIV列高度自適方法及優(yōu)缺點(diǎn)
解決DIV列高度自適的方法有很多種,這里介紹三種最常用的方法給大家(下面所有例子以父main,子DIVleft、DIVright為例)。
1、利用“clear:both”背景填充(推薦!!!)
這是使用最廣泛的一種做法,我一直都用此方法解決DIV列高度自適問(wèn)題。三行二列布局,主要內(nèi)容在右邊,網(wǎng)頁(yè)寬度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):無(wú)hacks,完全的自適應(yīng)高度。
2、腳本控制高度
在
中加入如下代碼(假設(shè)DIVright的高度相對(duì)最高):
- <scriptlanguagescriptlanguage="javascript">
- document.getElementById"DIVleft").style.height
- =document.getElementById"DIVright").scrollHeight"px"
- script>
優(yōu)點(diǎn):代碼超級(jí)簡(jiǎn)單
缺點(diǎn):要確定有某一列的高度始終是相對(duì)最高的,此方法比較被動(dòng)。#p#
3、margin負(fù)值父子容器高度繼承
這個(gè)方法能較好地解決列高度相同的問(wèn)題。三行二列布局,主要內(nèi)容在左邊,網(wǎng)頁(yè)寬度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的背景。這樣無(wú)論b最高或者c最高都將顯示DIV列高度相同。
優(yōu)點(diǎn):兼有第一種方法的優(yōu)點(diǎn),并且比第一種方法的代碼稍微簡(jiǎn)潔。
缺點(diǎn):整體結(jié)構(gòu)只能左對(duì)齊。
【編輯推薦】