對所有的塊元素都沒有意義,塊元素的dispaly屬性默認值為block,沒必要再顯式定義——除非你之前對塊元素的display屬性重新定義過。
===========================
多羅嗦一句:
display:block;比較常用於<a><span>這兩個標簽——因為這兩個標簽非塊元素,如果不用display:block定義一下,那么定義width、height等和長寬相關的css屬性時會發現完全不生效。你可以實際寫幾行簡單代碼感受一下。
===========================
是不是div里就沒有必要寫display:block呢?通常情況下是沒有必要的。
常見的特殊情況:之前曾對div設置過display:hidden。
IE和谷歌瀏覽器在display的邊框顯示不一樣的解決辦法
做網頁的人可能都曾經遇到這個問題,廢話不多說,先看例子。
測試1:
<style>
.class2 {display:block; background-color:#e4f39e; width:150px; height:150px; border:10px solid green;}
</style>
<div class="class2">測試1</div>
測試結果:
在谷歌上運行的結果 在IE上運行的結果
可以很明顯的看到,明明是同一段代碼卻產生不同的結果,這對我們這些做網站的人來說是很蛋疼的,這就是所謂的兼容性問題。
在測試1中,我們用了display:block 這個屬性,在谷歌瀏覽器中,display:block和border這兩個屬性的width值和height值會相加,即:外框是10px X 2(左右邊框各10像素)+內框150px,總大小就是10px X 2+150px=170px,寬就是170px,高就是170px。
而在IE瀏覽器中,display:block和border這兩個屬性的width值和height值會重疊在一起,總大小就會是原來的大小,即:寬150px,高150px。
那么,怎么解決這個兼容性問題呢?我們先假設測試1中,在IE上運行的才是我們想要的結果,要讓在谷歌瀏覽器中運行的結果跟在IE上運行的結果一樣。
步驟一,把display:block改為display:table-cell
測試2:
<style>
.class2 {display:table-cell; background-color:#e4f39e; width:150px; height:150px; border:10px solid green;}
</style>
<div class="class2">測試2</div>
測試結果:
在谷歌上運行的結果 在IE上運行的結果
可以看見,谷歌和IE中,該模塊的高度一致了,都是150px,只是寬度不同,谷歌的寬度是170px,IE的寬度是150px。但是僅僅是高度一樣是遠遠不夠的,我們想要的最終結果是在兩種瀏覽器中顯示的結果保持一致,那么還要怎么做呢?
步驟二,在最外面套一個類然后定義寬度。
測試3:
<style>
.class1 {width:150px;}
.class2 {display:table-cell; background-color:#e4f39e; width:150px; height:150px; border:10px solid green;}
</style>
<div class="class1"><div class="class2">測試3</div></div>
測試結果:
在谷歌上運行的結果 在IE上運行的結果
現在在兩個瀏覽器上顯示的是一樣的了。方法是再聲明一個類,定義你想要得到的寬度,在這里即是150px,然后套在最外層。定義寬度就好了,高度就沒必要定義了。
以上結果適用於各種版本的IE瀏覽器