看板 Web_Design 關於我們 聯絡資訊
kyork:#local-navi a{*height:1%;} 牽涉到IE系列自訂的layout屬性07/16 09:33
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未開啟,所以出現莫名的間隔, 這時只要隨便來個widthheighthaslayout為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