一、行內(nèi)元素和塊級元素的區(qū)別
1、 行內(nèi)元素不會占據(jù)整行,在一條直線上排列,都是同一行,水平方向排列;
塊級元素會占據(jù)一行,垂直方向排列。
2、 塊級元素可以包含行內(nèi)元素和塊級元素;行內(nèi)元素不能包含塊級元素。
3、 行內(nèi)元素與塊級元素屬性的不同,主要是盒模型屬性上,行內(nèi)元素設(shè)置width無效,height無效(可以設(shè)置line-height),margin上下無效,padding上下無效。
二、行內(nèi)元素和塊級元素的相互轉(zhuǎn)換
行內(nèi)元素轉(zhuǎn)化為塊元素: display:block;
塊元素轉(zhuǎn)化為行內(nèi)元素: display:inline;
三、問題延伸
問題描述:為何img、input等行內(nèi)元素可以設(shè)置寬、高?
詳細(xì)解答:
元素是文檔結(jié)構(gòu)的基礎(chǔ),在CSS中,每個元素生成了一個包含了元素內(nèi)容的框(box,也譯為“盒子”)。但是不同的元素顯示的方式會有所不同,例如<div>和<span>
就不同,而<strong>和<p>也不一樣。在文檔類型定義(DTD)中對不同的元素規(guī)定了不同的類型,這也是DTD對文檔之所以重要的原因之一。
1. 替換和不可替換元素
從元素本身的特點來講,可以分為替換和不可替換元素。
a) 替換元素
替換元素就是瀏覽器根據(jù)元素的標(biāo)簽和屬性,來決定元素的具體顯示內(nèi)容。
例如瀏覽器會根據(jù)<img>標(biāo)簽的src屬性的值來讀取圖片信息并顯示出來,而如果查看(X)HTML代碼,則看不到圖片的實際內(nèi)容;又例如根據(jù)<input>標(biāo)簽的type屬性來
決定是顯示輸入框,還是單選按鈕等。
(X)HTML中的<img>、<input>、<textarea>、<select>、<object>都是替換元素。這些元素往往沒有實際的內(nèi)容,即是一個空元素,例如:
<img src=”cat.jpg” /> <input type="submit" name="Submit" value="提交" />
瀏覽器會根據(jù)元素的標(biāo)簽類型和屬性來顯示這些元素。可替換元素也在其顯示中生成了框。
b) 不可替換元素
(X)HTML 的大多數(shù)元素是不可替換元素,即其內(nèi)容直接表現(xiàn)給用戶端(例如瀏覽器)。例如:
<p>段落的內(nèi)容</p>
段落<p>是一個不可替換元素,文字“段落的內(nèi)容”全被顯示。
2. 顯示元素
除了可替換元素和不可替換元素的分類方式外,CSS 2.1中元素還有另外的分類方式:塊級元素(block-level)和行內(nèi)元素(inline-level,也譯作“內(nèi)聯(lián)”元素)。
a) 塊級元素
在視覺上被格式化為塊的元素,最明顯的特征就是它默認(rèn)在橫向充滿其父元素的內(nèi)容區(qū)域,而且在其左右兩邊沒有其他元素,即塊級元素默認(rèn)是獨占一行的。
典型的塊級元素有:<div>、<p>、<h1>到<h6>,等等。
通過CSS設(shè)定了浮動(float屬性,可向左浮動或向右浮動)以及設(shè)定顯示(display)屬性為“block”或“list-item”的元素都是塊級元素。
但是浮動元素比較特殊,由于浮動,其旁邊可能會有其他元素的存在。而“list-item”(列表項<li>),會在其前面生成圓點符號,或者數(shù)字序號。
b) 行內(nèi)元素
行內(nèi)元素不形成新內(nèi)容塊,即在其左右可以有其他元素,例如<a>、<span>、<strong>等,都是典型的行內(nèi)級元素。
display屬性等于“inline”的元素都是行內(nèi)元素。幾乎所有的可替換元素都是行內(nèi)元素,例如<img>、<input>等等。
不過元素的類型也不是固定的,通過設(shè)定CSS 的display屬性,可以使行內(nèi)元素變?yōu)閴K級元素,也可以讓塊級元素變?yōu)樾袃?nèi)元素。
3. 結(jié)論:
替換元素一般有內(nèi)在尺寸,所以具有width和height,可以設(shè)定。例如你不指定img的width和height時,就按其內(nèi)在尺寸顯示,也就是圖片被保存的時候的寬度和高度。
對于表單元素,瀏覽器也有默認(rèn)的樣式,包括寬度和高度。
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持武林網(wǎng)!
新聞熱點
疑難解答