亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

在低版本瀏覽器下,比如ie6,如果對inline-block元素設置了width或height屬性,是不是會變為塊級別元素?

在低版本瀏覽器下,比如ie6,如果對inline-block元素設置了width或height屬性,是不是會變為塊級別元素?

正在回答

1 回答

ie7及更低版本的ie瀏覽器不支持display:inline-block這個屬性!?
正確的解釋是”使用inline-block屬性在IE下會觸發layout,因此元素上設置的width、height是能生效的,所以也就有了同其它瀏覽器一致的顯示效果”,而不能說IE6/7支持?display:inline-block!

在IE下,display: inline-block只是觸發了元素的layout。比如將display:?inline-block設置到div上,只能保證這個div擁有塊元素的特征(可以設置寬度,高度等),但還是會產生換行。接下來要設置display:?inline,使其不產生換行。將display:inline-block;*display:inline;寫在同一個樣式上,inline-block屬性是不會觸發元素的layout的,因此我們還要額外加上?*zoom:1來觸發layout!

IE7下塊元素如何兼容 display:inline-block寫法

方法1:直接讓塊元素設置為內聯對象呈遞(設置屬性 display:inline),然后觸發塊元素的 layout(如:zoom:1等)。兼容各瀏覽器的代碼如下: div {display:inline-block;*display:inline; *zoom:1;…}

解釋:dispaly:inline-block照顧的是ie8+的瀏覽器,這是正常的設置,在低版本的ie下設置行內塊有2個條件,一個是行內,一個是設置寬高,觸發layout即可設置寬高,而div設置了寬高后還是會換行,layout不是為水平而設置的,所以為塊級元素轉行內塊加上了*display:inline屬性,但是display:inline不會觸發layout,于是加上zoom:1重新觸發layout,于是就形成了一個可以“設置寬高的行內元素”

方法2:先使用 display:inline-block 屬性觸發塊元素,然后再定義 display:inline,讓塊元素呈遞為內聯對象(兩個display 要先后放在兩個 CSS 樣式聲明中才有效果,這是 IE 的一個經典bug ,如果先定義了 display:inline-block,然后再將 display 設回 inline 或 block,layout不會消失)。代碼如下(…為省略的其他屬性內容): div {display:inline-block;…}div{*display:inline;}


0 回復 有任何疑惑可以回復我~
#1

jindong 提問者

非常感謝!
2018-07-02 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

在低版本瀏覽器下,比如ie6,如果對inline-block元素設置了width或height屬性,是不是會變為塊級別元素?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號