今天講課的時候,講到了html中的標簽的顯示模式,大致分為塊級標簽和行內標簽。那麼初學者在剛使用標簽的時候會發現有些屬性在一些標簽上不起作用,比如寬、高、水平居中等,其實這個屬性的使用只有在塊級標簽上使用才起作用。個人認為這個也是初學者非常容易忽略的地方,所以我就把它記下來! 比如會有一種情況,給p ...
今天講課的時候,講到了html中的標簽的顯示模式,大致分為塊級標簽和行內標簽。那麼初學者在剛使用標簽的時候會發現有些屬性在一些標簽上不起作用,比如寬、高、水平居中等,其實這個屬性的使用只有在塊級標簽上使用才起作用。個人認為這個也是初學者非常容易忽略的地方,所以我就把它記下來!
比如會有一種情況,給p標簽水平居中有作用,但是給font加水平居中屬性就沒作用(如下):
p{ color:red; text-align:center;}
font{color:red; text-align:center;}
<p>我是塊級標簽p</p>
<font>我是行內標簽font</font>
運行預覽之後p能使文本水平居中,但是font就不可以(如下):
那麼以上這個問題就和html中的顯示模式有關了:
顯示模式的特性:
主要分為兩大類:
塊級元素:獨占一行,對寬高的屬性值生效;如果不給寬度,塊級元素就預設為瀏覽器的寬度,即就是100%寬;
行內元素:可以多個標簽存在一行,對寬高屬性值不生效,完全靠內容撐開寬高!
其中還有一種結合兩種模式有點的顯示模式:
行內塊元素:結合的行內和塊級的有點,不僅可以對寬高屬性值生效,還可以多個標簽存在一行顯示;
在html中顯示模式分為塊級和行內,其中常用的塊級有:div,p,h1~h6,ul,li,dl,dt,dd... 常用的行內有:span,font,b,u,i,strong,em,a,img,input,其中img和input為行內塊元素。
那麼有的同學就會想了,難道我就不可以控制span或者font的寬高了嗎?可以的,那麼我們這次拋開浮動和定位不說,就說通過display屬性來將它們互相轉換:
1、塊級標簽轉換為行內標簽:display:inline;
2、行內標簽轉換為塊級標簽:display:block;
3、轉換為行內塊標簽:display:inline-block;
只要給對應的標簽使用這個display這個屬性,取相應的值,就可以將顯示模式互相轉換。
在這之前有說過 text-align這個屬性是否生效,原因是塊級標簽如果不給寬度,塊級元素就預設為瀏覽器的寬度,即就是100%寬,那麼在100%的寬度中居中生效;但是行內元素的寬完全是靠內容撐開,所以寬度就是內容撐開的寬,我們給個背景測試看看:
所以塊級是在盒子中間居中了,但是因為行內元素的寬就是內容寬,沒有可居中的空間,所以text-align:center;就沒有作用;但是如果給font轉換為塊級就不一樣了:
p{ background:green; color:red; text-align:center;} font{background:green;color:red; text-align:center;display:block;}
同理,要是塊級轉換為行內了,文本也不能居中顯示了。
因為在html中,行內元素被視為有文字特性的標簽,塊級能使文本水平居中,那麼在塊級當中的行內標簽被視為文本的特性,那麼塊級使用text-align:center;的話,裡面的行內標簽會被像文本一樣水平居中在塊級標簽中:
不加text-align:center;時:
p{ padding:5px;background:green; color:red;} font{ background:yellow;}
<p> <font>我是行內標簽font</font> <font>我是行內標簽font</font> </p>
加上text-align:center;後
p{ padding:5px;background:green; color:red;text-align:center;} font{ background:yellow;}
這次主要是講一下html中顯示模式的特性,如果本文對您有幫助,記得推薦一下哦!