→ kyork:所以針對ie6,ie7作星號hack07/16 09:34
→ QttNqq:哇~感謝k大的指點。不過可以請問*hack是什麼意思?加了07/16 18:18
→ QttNqq:*height: 1%的用意是什麼呢?
IE胃口很好,css屬性前加*號也能吃,俗稱IE only hack
IE每個兄弟能吃的hack不一樣,甚至mac IE5也有專用hack,
至於有哪些hack,或是哪個版本該用哪個hack,
咕狗大神上有不少資料。
至於為什麼要height:1%,
這牽涉到ie的一個隱屬性--haslayout,
haslayout只有兩個值:true & false,
預設值為false
但是無法直接在css上直接設定haslayout:true;
必須用其他屬性改變haslayout的值為true
例如 width:auto以外的值;
height:auto以外的值;
min-width:none以外的值;
min-height:none外的值;
max-width:none以外的值;
max-height:none以外的值;
position:absolute;
float:none以外的值;
................等
如果haslayout未開啟,在下列狀況,會發生排版上的問題
像是子元件有浮動(float),或行內(inline)轉區塊(block),背景圖定位....等等
原po的狀況是把行內轉區塊(display:block),
且haslayout未開啟,所以出現莫名的間隔,
這時只要隨便來個width或height讓haslayout為true,排版就會恢復正常,
對IE6、IE7來說height等於min-height(width=min-width),
而IE6沒有min系列的屬性(也沒有max系列),不能用min-height,
所以加上height:1%,ie兄弟就會自己拓展為適當高度(某種程度來說挺方便的XD),
但這樣其他瀏覽器又會出現問題,因此針對ie兄弟加上*hack。
也就是說,ie上排版發生問題,先在問題元件上給予寬或高試試,或可解決。
咕狗也有不少haslayout的資料,不過總覺得有點難懂,
這邊用我流的方法解釋,希望你看得懂=.=......
有錯麻煩請各位前輩指正。
PS.最近學到一個英文單字--junkie,說得真不錯阿......
--
推 kyork:土地要SOD!山要SOD!現在連海也要給我SOD!
推 :一人一信支持kyork加入SOD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.41.215.48
※ 編輯: kyork 來自: 114.41.215.48 (07/17 15:25)
推 QttNqq:感謝大大講解得如此詳細…雖然沒有完全理解,但還是感謝! 07/17 21:46