Re: [問題] CSS做的選單在不同瀏覽器效果不同?
推
07/16 09:33,
07/16 09:33
→
07/16 09:34,
07/16 09:34
→
07/16 18:18,
07/16 18:18
→
,
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
--
※ 發信站: 批踢踢實業坊(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
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):