首頁 > web前端 > H5教程 > li inside-block在IE11換行無效的原因

li inside-block在IE11換行無效的原因

巴扎黑
發布: 2017-05-21 16:56:24
原創
2901 人瀏覽過

近日在做一個網頁標籤列表,要求不能換行,一開始以為比較容易,三兩下就把程式碼寫完了,並且在Firefox和Chrome瀏覽器測試通過,不過,在IE11一看,卻出人意料的沒有達到預期效果,li inside-block 在IE11裡竟然無效!照樣換行!

li inside-block在IE11換行無效的原因

li inside-block在IE11照樣換行?

li inside-block 在IE11照樣換行!為何無效?難道程式碼還要hack一下IE11?但我看別人網站裡的寫法並沒有hack IE11。

其實程式碼挺簡單,在Chrome和Firefox瀏覽器完全達到預期效果。

css核心程式碼如下:

ul li{
    display:inline-block;
    padding:3px 4px 3px 4px;
    margin:3px 3px 3px 0px;
}
登入後複製

使用 display:inline-block 可設定 li 列舉不換行。

html核心程式碼如下:

<ul>
    <li>tag1</li>
    <li>tag2</li>
    <li>tag3</li>
</ul>
登入後複製

出來的效果應該是這樣:

li inside-block在IE11換行無效的原因

使用 display:inline-block 可設定 li 列舉不換行

而不是這樣:

li inside-block在IE11換行無效的原因

無 display:inline-block 時 li 列舉行

#在京東網頁html程式找到IE11無效的原因

上述問題困擾了我好幾天,一度放棄了 li 列舉的這種代碼方式而採用 div 的寫法,但是還是心有不甘,因為 li 的寫法才是正道,且代碼更加簡潔。

今天在京東網瀏覽手機,側邊欄的標籤清單吸引了我,透過查看其網頁html原始碼,發現它也是用 li 列舉使用 display:inline-block 來實現的。

li inside-block在IE11換行無效的原因

京東的標籤清單

我決意一定要從京東的這張網頁上找到同時適用IE11的標籤清單程式碼。

一刻不能再等了,立即動手。

在本地搭建的調試環境新建一html文件,把京東網頁的html源碼複製過來,接著採用「排除法」逐步刪減程式碼,直到最後只剩下這個標籤列舉的DIV。

透過一段時間的程式碼刪除工作,最後剩下的程式碼越來越少,答案也應該越來越明朗了。

功夫不負有心人,最後終於找到答案了!困擾多天的問題終於得以解決了!

原來是網頁 

 裡需要加入這句話:

這句話的意思是,該網頁不使用IE相容性視圖。

IE相容性視圖是使用低版本的IE瀏覽器來渲染網頁,以免網頁佈局產生錯亂,但現在我們明白了,相容性視圖會抹殺某些樣式,使網頁某些區塊的佈局不能達到預期效果。因此,在設計網頁的時候,我們應該告訴IE瀏覽器不要使用相容性檢視來渲染此網頁。

以上是li inside-block在IE11換行無效的原因的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板