ç¿»è¯èªMatthew James TaylorçEqual Height Columns with Cross-Browser CSS and No Hacksï¼æäºé¨åæ ¹æ®æççè§£æ¹äºï¼è®©ä¸äºåå¿è æ´å¥½çè§£ã
å©ç¨çº¯CSSå建ä¸ä¸ªçé«å¤åçå¸å±å¹¶ä¸ä»¶æäºï¼æ¬æç¨å°çéåæåºç°å¨å¤åå¸å±çå¤ä¸ªé®é¢ï¼ç¶åä¸ºå¤§å®¶çæ¥ä¸ä¸ªç®åå ¨æ¸¸è§å¨éåçè§£å³æ¹æ³ï¼ä¸ä½¿ç¨å¾çï¼èæ¬ï¼CSS hackså¹¶å¨æä¸¥æ ¼çXHTML è§èä¸é½è½éè¿éªè¯ã
é®é¢ççç»æå¨
å¦ä¸å¾æç¤ºï¼ç±äºååçå
容ä¸ä¸è´å¯¼è´å
¶èæ¯çé«åº¦ä¹ä¸ç»ä¸ãèèæ¯å®è´¨ä¸æ¯å
å®¹ï¼æ åçç忍¡åæ¯ç±å
容åº
è§£å³çé«é®é¢çç¬¬ä¸æ¥å°±æ¯æå®æå为两个è¾å°çï¼å¯ä»¥åç¬è§£å³çé¨åãè¿æ ·ï¼æä»¬åæ¥æ¯ä¸å对åºä¸ä¸ªDIVï¼ç°å¨æ¯ä¸å对åºä¸ä¸ªDIVï¼ä¸ä¸ªç¨æ¥è£
è½½å
容ï¼ä¸ä¸ªç¨æ¥æ¾ç¤ºèæ¯ãè¿ç§å离æå©äºæä»¬å¯¹å个å
ç´ çææ§åæå®ä»¬ç¨å¦ä¸ç§æ´ææçæ¹å¼ç»åèµ·æ¥ï¼è¿å¼èµ·æå¾å¿«ä¼å¨ä¸é¢çç« è讲述ã è¿æ¯è§£å³å¤åçé«çå
³é®ã使ä¸ä¸ªDIVçé«åº¦çäºæé«åçé«åº¦çå¯ä¸æ¹æ³å°±æ¯è®©è¿ä¸ªDIVå
嫿æçåãæ¢å¥è¯è¯´ï¼éè¿æææçåæ¾å¨ä¸ä¸ªå®¹å¨ä¸ï¼å®¹å¨çé«åº¦å°±æ¯æé«åçé«åº¦ãè¿æ¯ä¸ªé常æç¨çç»æã 为äºä½¿ç¨è¿ç§ç»æå¨æææ¸¸è§å¨é½æ£å¸¸å·¥ä½ï¼æä»¬å¿
须让å¤å±å®¹å¨å¾å·¦æå³æµ®å¨ï¼å¹¶ä¸å
¶åå
ç´ å
嫿¯ä¸æ å
容çDIVä¹è·çæµ®å¨ï¼åªä¸ä¸ªæ¹å齿 æè°ãæµ®å¨ä¼ä½¿ç¨å®ä»¬å¾ä¸å¯¹é½äºå¤å´å®¹å¨çä¸è¡¥ç½ï¼å¹¶ä¸æµ®å¨ç容å¨ä¼èªå¨è°æ´èªèº«çé«åº¦ä¸å®½åº¦ä»¥å®ç°å¯¹æµ®å¨åå
ç´ çå
å«ã使¯å¦æå®¹å¨è¢«å®ä¹äºé«åº¦ä¸å®½åº¦ï¼åå®ä¸ä¼éåå
ç´ ç大å°èèªå¨è°æ´èªèº«æ¾ç¤ºåºåæ¥éåºåå
ç´ çæ¾ç¤ºãä½å¨IE6ä¸ä½çæ¬çIEä¸ï¼åæµ®å¨å
ç´ è½æå¼å¤å´å
ç´ ï¼å¹¸å¥½IE7ä¸IE8已弿£äºè¿ä¸ªä¸ç¬¦åæ åçåæ³ã
ä¸ä¸æ¥æ¯å¢å é¢å¤ç容å¨ï¼è®©å®ä»¬å½¼æ¤åµå¥ï¼å¹¶è®©ææå¤å´ç容卿°ï¼æ°å¢çå ä¸åæ¥çé£ä¸ä¸ªï¼çäºåçæ»æ°ï¼3ãè¿ä¸ä¸ªå®¹å¨ç¨æ¥æ¾ç¤ºååçèæ¯ã请注æï¼æä»¬å»æäºåæ¥ååçèæ¯ï¼æå®ä»¬ç§»è³è¿äºå®¹å¨ä¸ã ææå
ç´ å·¦æµ®å¨ï¼å°å®¹å¨å®½åº¦è®¾ä¸º100%ï¼ä½¿ä»ä»¬å 满页é¢ç宽度ãèæ¯è²ä»å
容 div ç§»é¤å¹¶å è³å®¹å¨ä¸ã注ï¼åææ¯ææå®¹å¨ç宽é½è®¾ä¸º100%ï¼å
¶å®æ ¹æ¬æ²¡æè¿æ ·çå¿
é¡»ï¼å ä¸ºå¨æµ®å¨åµå¥ä¸ï¼å¤é¢ç容å¨å¿
é¡»ä¼è¢«æå¤§è½å®¹å¾ä¸å
é¨åå
ç´ ç大å°ï¼ ç°å¨æ¯ææå®¹å¨é½å®ç¾å°ç´¯å¨ä¸èµ·ï¼åªæ¾ç¤ºä¸ç§èæ¯é¢è²ï¼æä»¬å¿
须让å
¶ä»èæ¯ä¹æ¾ç¤ºåºæ¥ãä¸ºæ¤æä»¬å°±å¾å©ç¨ç¸å¯¹å®ä½æ¥è®©è¿äºå®¹å¨åé¶æ¢¯ä¸æ ·æ¾ç½®ãè¿ä¸ªæ¬å¯ä»¥ä½¿ç¨è´è¾¹çææ¯ï¼ä½è¯¥æ»çIE5.5çç忍¡åä¸W3Cçä¸ä¸è´ï¼ä¸ºäºå
¼å®¹æä»¬å°±å¾ä½¿ç¨å°CSS hackãç±äºæ¬æå£°ææ¯ä¸ä½¿ç¨CSS hackï¼å æ¤æ¾å¼ãé¦å
让#container2åå³ç§»å°30%,ç±äº#container2è£
ç#container1ï¼è#container1ä¸è£
çé£ä¸ä¸ªåï¼è¿æ ·ä¸æ¥ï¼æå³è¾¹çåå°±è¢«ç§»åºæ¸¸è§å¨çå³è¾¹äºãèæå¤å´æåºå±ç容å¨#container3åé²åºæ¥äºï¼é²äºå·¦è¾¹ç30%ãç¶åæä»¬åç§»å¨æä¸å±ç容å¨#container1ï¼åå³è¾¹ç§»å¨40%ï¼äºæ¯åæ¥çä½ç第äºå±å®¹å¨ä¹é²åºæ¥äºï¼é²åºå
¶å·¦è¾¹ç40%,è#container1ååªå©ä¸100%-30%-40%=30%;䏿¹çåä¹åªå©ä¸æå³è¾¹çåï¼å´è¡¨ç°ä¸ºä½äºæå·¦è¾¹ãè¿æ ·ï¼èæ¯ä¹æ¾ç¤ºæ£å¸¸äºï¼ ç±äºæä¸å±çé£ä¸å齿¯è¢«æ´ä½å¾å³å¾å°(页é¢ç)70%ï¼æä»¬åæå®ä»¬é½å¾å·¦ç§»å70%å°±æ¯ï¼æåï¼ç±äºæä»¬åä¸¤ä¸ªèæ¯å®¹å¨é½æ¯è¢«åå³ç§»å¨ï¼ç§»åºäºæ¸¸è§å¨ï¼å®ä»¬é½ä¸æ¸¸è§å¨çå³è¾¹è¿å¨ä¸èµ·ï¼æä»¬å¯ä»¥è®¾ç½®æåºå±çèæ¯å®¹å¨çoverflowæ¥éèé£äºè¢«ç§»åºçé¨åã
æåï¼æä»¬å¯¹åå¢å è¡¥ç½ï¼è®©æ¯åæ¾å¾å¤§æ¹ä¸äºï¼è䏿¯å¯å¯éº»éº»å°å¡æ»¡ä¸åã使¯å¦ææä»¬å¢å è¡¥ç½ï¼å¯è½æä¸äºæ¸¸è§å¨çæç
åç¯äºï¼å¨IE6åæ´ä½çæ¬çIEä¸ï¼å
¶æªå¼çç忍¡åï¼ä¼äº§çä¸äºæä»¬ä¸æ¿çå°çç»æãå¦ï¼ä¸ä¸ª 200px 宽 20px è¡¥ç½ç box å¨ IE ä¸è¢«è§ä¸º 200px 宽ï¼å¨å
¶ä»æµè§å¨ä¸å为æ£ç¡®ç 240pxãè¡¥ç½åºè¯¥å å¨å
ç´ ç宽度ä¸ã
ä¸è¿æ¾å¿ï¼æä»¬å¯ä»¥ç¨å®å
¨ä¸ä¾èµäº padding çæ¹æ³æ¥è§£å³è¿ä¸ªé®é¢ãç¸åï¼æä»¬æåå¼çªä¸ç¹ï¼å宽åå»ä¸¤ä¾§çè¡¥ç½ï¼ï¼ä¹åç¨ç¸å¯¹å®ä½æå®ä»¬ç§»è³æ£ç¡®çä½ç½®ãä¾å¦ï¼æä»¬ç¨äº 2% çè¡¥ç½ï¼å 30% çåå°åè³ 26%ï¼40% çååè³ 36%ãç¨ç¸å¯¹å®ä½ç§»ååæ¶é谨记ï¼ç°å¨ååçªäºï¼æä»¥å½å®ä»¬ä¸èµ·åæå飿 ·å·¦æµ®å¨æ¶ï¼æ¯ä¸ä¸ªéè¦æ¯ä¸ä¸ä¸ªç§»å¨æ´è¿çè·ç¦»ã
为äºä½¿å¸å±ä¿æå¨å°å®½åº¦æå¨æ¯ä¸ªå
容åå¢å äºoverflow:hidden; è¿å°åå»è¶
åºå宽çä¸ä¸ï¼å¹¶é»æ¢å
¶å¹²æ°å
¶ä»å¸å±ãéç³ä¸ä¸ï¼è¿åªæ¯ IE çé®é¢ï¼å
¶ä»æææµè§å¨ä¼ä¿ææ£ç¡®çå¸å±ï¼ä¸ç®¡åå
æ¯è¾ç±³ãå¦æä½ çæ³è¿æ ·åï¼å¯ä»¥ç¨ IE æ¡ä»¶æ³¨éåªå¯¹ IE åè§åã 好äºï¼æç« å°±æ¤ç»æï¼æ´å¤çä¾åå¯ä»¥åçåä½è
çç½åï¼æç¹å»ä»¥ä¸é¾æ¥ï¼2 å ï¼ 3 åï¼ 4 åï¼ä»¥å 5 åã
对å
容ä¸èæ¯å®è¡å离
å©ç¨æµ®å¨åµå¥è§£å³æé«åçé«åº¦çé®é¢ã
åè¡ä¸åçå¸å±çç»æå±ä»£ç ã
<div >
<div >Column 1</div>
<div >Column 2</div>
<div >Column 3</div>
</div>
对åºç表ç°å±ä»£ç ã
#container1 {
float:left;
width:100%;
}
#col1 {
float:left;
width:30%;
background:red;
}
#col2 {
float:left;
width:40%;
background:yellow;
}
#col3 {
float:left;
width:30%;
background:green;
}
å¢å ç¨æ¥æ¾ç¤ºèæ¯ç容å¨
æ°çç»æå±ä»£ç ï¼è®©æ°å¢ç容å¨å¥å¨åæ¥çå¤å´å®¹å¨ä¸ï¼
<div >
<div >
<div >
<div >Column 1</div>
<div >Column 2</div>
<div >Column 3</div>
</div>
</div>
</div>
æ°ç表ç°å±ä»£ç ï¼æ°å¢ç容å¨é½æ¯æµ®å¨å
ç´ ï¼
#container3 {
float:left;
/*width:100%;*/
background:green;
}
#container2 {
float:left;
/*width:100%;*/
background:yellow;
}
#container1 {
float:left;
width:100%;
background:red;
}
#col1 {
float:left;
width:30%;
}
#col2 {
float:left;
width:40%;
}
#col3 {
float:left;
width:30%;
}
ç¨ç¸å¯¹å®ä½æ¥ç§»å¨å®¹å¨
对åºç表ç°å±ä»£ç
#container3 {
float:left;
/*width:100%;*/
/*没æå¿
è¦ç代ç 被注éæï¼*/
background:green;
}
#container2 {
float:left;
/*width:100%;*/
/*没æå¿
è¦ç代ç 被注éæï¼*/
background:yellow;
position:relative;
right:30%;
}
#container1 {
float:left;
width:100%;
background:red;
position:relative;
right:40%;
}
#col1 {
float:left;
width:30%;
}
#col2 {
float:left;
width:40%;
}
#col3 {
float:left;
width:30%;
}
æååçå
容移å忥çä½ç½®ä¸
#container3 {
float:left;
/*width:100%;*/
/*没æå¿
è¦ç代ç 被注éæï¼*/
background:green;
overflow:hidden;
position:relative;
}
#container2 {
float:left;
/*width:100%;*/
/*没æå¿
è¦ç代ç 被注éæï¼*/
background:yellow;
position:relative;
right:30%;
}
#container1 {
float:left;
width:100%;
background:red;
position:relative;
right:40%;
}
#col1 {
float:left;
width:30%;
position:relative;
left:70%;
}
#col2 {
float:left;
width:40%;
position:relative;
left:70%;
}
#col3 {
float:left;
width:30%;
position:relative;
left:70%;
}
坹忷»å è¡¥ç½ï¼å
è¾¹è·ï¼
宿´çCSS
#container3 {
float:left;
background:green;
overflow:hidden;
position:relative;
}
#container2 {
float:left;
background:yellow;
position:relative;
right:30%;
}
#container1 {
float:left;
width:100%;
background:red;
position:relative;
right:40%;
}
#col1 {
float:left;
width:26%;
position:relative;
left:72%;
overflow:hidden;
}
#col2 {
float:left;
width:36%;
position:relative;
left:76%;
overflow:hidden;
}
#col3 {
float:left;
width:26%;
position:relative;
left:80%;
overflow:hidden;
}