1、display:none
表示此元素不會被顯示
css; .first{ display: none;
width:200px;
height:100px;
background:yellow;
}
<div class="first"> 我有display:none屬性,我不會顯示 </div>
以上頁面會顯示空白,
2、display:block
該屬性會把元素轉換為塊級元素,此元素前后會帶有換行符,因此就可以設置元素的寬高和上下的margin和padding
css: a{ display: block; width: 100%; height: 40px; background: yellow; }
html: <a href="">我是行內元素,我不能直接設置寬高</a>
頁面顯示:
3、display:inline
此元素會被顯示為內聯元素,元素前后沒有換行符,即display:inline的作用即可以將一個塊級元素轉換成行內元素,那么這個塊級元素將不能再設置寬和高以及上下方向的margin和padding。
html: <div class="second"> 我是塊級元素,我有display:inline屬性,所以我不能設置寬高 </div>
css: .second{ display: inline; width: 400px; height: 100px; background: yellow; }
頁面顯示:
4、display:inline-block
設置了inline-block屬性的元素既具有block元素可以設置width和height屬性的特性,又保持了inline元素不換行的特性
例如ul li a 標簽組合float:left做成的橫向導航用display:inline-block屬性就可以完成:
ul,li,a,*{ list-style: none; text-decoration:none; } li{ display: inline-block; border: thin solid red; }
html: <div> <ul> <li><a href="">1</a></li> <li><a href="">2</a></li> <li><a href="">3</a></li> <li><a href="">4</a></li> </ul> </div>
頁面顯示:
發現元素之間有空白,當給元素添加margin:0;padding:0;時,元素之間的空白還存在,
這時可以將ul中的字符的大小設置位0,那么空白符也就不會存在了,但是這時a的字體大小也會繼承ul的字體大小,就不見了,只需要將a中再設置一個字體不為0的大小覆蓋,就會顯示
css: ul,li,a,*{ font-size:0; list-style: none; text-decoration:none; } li{ display: inline-block; border: thin solid red; } a{ font-size:15px; }
html: <div> <ul> <li><a href="">1</a></li> <li><a href="">2</a></li> <li><a href="">3</a></li> <li><a href="">4</a></li> </ul> </div>
元素之間的空白就會消除
5、display:inherit
規定應該從父元素繼承 display 屬性的值
例如:
<div class="parent"> <div class="son1"></div> <div class="son2"></div> </div>
css: .parent{ display: inline-block; font-size: 0; background: #cadafa; width: 400px; height: 300px; } .son1{ display: inherit; background: #eaedac; width: 200px; height: 100px; } .son2{ display: inherit; background: #da5dd8; width: 200px; height: 100px; }
頁面顯示:
這里的.parent元素中font-size:0px;是為了消除空白符