標準流
HTML元素在標準情況下的定位方式
行內元素在同一行內橫向排列
塊級元素佔滿整個一行,在頁面中豎向排列
元素不會移動到其它地方去,對於嵌套的元素盒子也是嵌套的關係css
行內元素的盒子
行內元素的盒子永遠只能在瀏覽器中獲得一行高度的空間(行高由line-height屬性決定
若是沒設置該屬性,則是內容默認的高度),若是給它設置上下border,margin,padding等值
致使其盒子的高度超過行高,那麼它的盒子上下部分將和其餘元素的盒子重疊
所以,不推薦對行內元素直接設置盒子屬性,通常先設置行內元素幾塊級元素顯示,再設置它的盒子屬性。html
display屬性
經過display屬性能夠控制元素是以行內元素顯示仍是以塊級元素顯示,或不顯示
display:block|inline|none|list-item(行塊切換代碼)
inline-block行內塊元素(css2.1新增的值)瀏覽器
block元素
block元素的特色是:
老是在新行上開始
高度,行高以及頂和底邊距均可控制
寬度缺省是它的容器的100%,除非用width設定一個寬度
<div> <p> <h1> <form> <ul> <li>是塊元素的例子spa
inline元素
inline元素的特色是:
和其它元素都在一行上
高,行高及頂和底邊距不可改變
寬度就是它的文字或圖片的寬度,不可改變
<span> <a> <label> <input> <img> <strong> 和<em>是inline元素的例子3d
inline-block行內塊元素
inline-block屬性值,既是行元素,但又有塊元素的屬性。
若是想具備行元素一排的屬性,也具備塊元素可設置寬高的屬性,咱們能夠設置display的屬性爲inline-blockorm
隱藏元素display:none
當某個元素被設置成了隱藏元素以後,瀏覽器會徹底忽略掉這個元素,該元素將不會被顯示
也不會佔據文檔中的位置。像title元素默認就是此類型
比較visibility:hidden
製做下拉菜單、Tab面板等有時就須要用display:none把菜單或面板隱藏起來。htm
咱們通常使用無序列表來作菜單,常常使用display改變行和塊的屬性,由於ul li都是塊元素圖片
<style>
.nav ul
{ list-style:none;
}
.nav li{ background-color:
font-size:20px;
width:100px;
height:30px;
text-align:center;
display:inline-block;/*此時變爲橫行,可是能控制寬高*/
}
.nav li:hover/*鼠標通過時的效果*/
{
background-color:#b3d4fc;文檔
}
</style>input
<ul class="nav" >
<li><a href="#">首頁</a></li>
<li><a href="#">新聞</a></li>
<li><a href="#">娛樂</a></li>
<li><a href="#">科技</a></li>
<li><a href="#">財經</a></li>
</ul>
例:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>display寫菜單</title> <style> .nav { list-style: none;/*去除ul的效果*/ } .nav li { background-color: aquamarine; font-size: 20px; text-align: center; width: 100px; height: 30px; display: inline-block; border: 2px black solid; } .nav li :hover{ background-color: aliceblue} /* a:link {color:blue;} a:visited {color:blue;} a:hover {color:red;} a:active {color:yellow;} */ </style> </head> <body> <ul class="nav"> <li ><a href="#">首頁</a></li> <li ><a href="#">新聞</a></li> <li ><a href="#">娛樂</a></li> <li ><a href="#">體育</a></li> <li ><a href="#">財經</a></li> </ul> </body> </html>