Re: [問題] CSS做的選單在不同瀏覽器效果不同?

看板Web_Design作者 (k約克)時間15年前 (2009/07/17 15:12), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)

07/16 09:33,
#local-navi a{*height:1%;} 牽涉到IE系列自訂的layout屬性
07/16 09:33

07/16 09:34,
所以針對ie6,ie7作星號hack
07/16 09:34

07/16 18:18,
哇~感謝k大的指點。不過可以請問*hack是什麼意思?加了
07/16 18:18

*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,說得真不錯阿...... --

土地要SOD!山要SOD!現在連海也要給我SOD!
:一人一信支持kyork加入SOD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.41.215.48 ※ 編輯: kyork 來自: 114.41.215.48 (07/17 15:25)

07/17 21:46, , 1F
感謝大大講解得如此詳細…雖然沒有完全理解,但還是感謝!
07/17 21:46, 1F
文章代碼(AID): #1AO2HMrI (Web_Design)
文章代碼(AID): #1AO2HMrI (Web_Design)