行內元素和區塊層級元素的差別詳解

來源:互聯網
上載者:User
一、行內元素和區塊層級元素的區別

  1、 行內元素不會佔據整行,在一條直線上排列,都是同一行,水平方向排列;

    區塊層級元素會佔據一行,垂直方向排列。

  2、 區塊層級元素可以包含行內元素和區塊層級元素;行內元素不能包含區塊層級元素。

  3、 行內元素與區塊層級元素屬性的不同,主要是盒模型屬性上,行內元素設定width無效,height無效(可以設定line-height),margin上下無效,padding上下無效。

二、行內元素和區塊層級元素的相互轉換

  行內元素轉化為塊元素: display:block;

  塊元素轉化為行內元素: display:inline;

三、問題延伸

  問題描述:為何img、input等行內元素可以設定寬、高?

  詳細解答:

   元素是文檔結構的基礎,在CSS中,每個元素產生了一個包含了元素內容的框(box,也譯為“盒子”)。但是不同的元素顯示的方式會有所不同,例如<p>和<span>

   就不同,而<strong>和<p>也不一樣。在文件類型定義(DTD)中對不同的元素規定了不同的類型,這也是DTD對文檔之所以重要的原因之一。

  1. 替換和不可替換元素

  從元素本身的特點來講,可以分為替換和不可替換元素。

    a) 替換元素

    替換元素就是瀏覽器根據元素的標籤和屬性,來決定元素的具體顯示內容。

    例如瀏覽器會根據<img>標籤的src屬性的值來讀取圖片資訊並顯示出來,而如果查看(X)HTML代碼,則看不到圖片的實際內容;又例如根據<input>標籤的type屬性來

    決定是顯示輸入框,還是選項按鈕等。

    (X)HTML中的<img>、<input>、<textarea>、<select>、<object>都是替換元素。這些元素往往沒有實際的內容,即是一個空元素,例如:

    <img src=”cat.jpg” />
    <input type="submit" name="Submit" value="提交" />

    瀏覽器會根據元素的標籤類型和屬性來顯示這些元素。可替換元素也在其顯示中產生了框。

    b) 不可替換元素

    (X)HTML 的大多數元素是不可替換元素,即其內容直接表現給使用者端(例如瀏覽器)。例如:

    <p>段落的內容</p>

    段落<p>是一個不可替換元素,文字“段落的內容”全被顯示。

  2. 顯示元素

  除了可替換元素和不可替換元素的分類方式外,CSS 2.1中元素還有另外的分類方式:區塊層級元素(block-level)和行內元素(inline-level,也譯作“內聯”元素)。

    a) 區塊層級元素

    在視覺上被格式化為塊的元素,最明顯的特徵就是它預設在橫向充滿其父元素的內容地區,而且在其左右兩邊沒有其他元素,即區塊層級元素預設是獨佔一行的。

    典型的區塊層級元素有:<p>、<p>、<h1>到<h6>,等等。

    通過CSS設定了浮動(float屬性,可向左浮動或向右浮動)以及設定顯示(display)屬性為“block”或“list-item”的元素都是區塊層級元素。

    但是浮動元素比較特殊,由於浮動,其旁邊可能會有其他元素的存在。而“list-item”(清單項目<li>),會在其前面產生圓點符號,或者數字序號。

    b) 行內元素

    行內元素不形成新內容塊,即在其左右可以有其他元素,例如<a>、<span>、<strong>等,都是典型的行內級元素。

    display屬性等於“inline”的元素都是行內元素。幾乎所有的可替換元素都是行內元素,例如<img>、<input>等等。

    不過元素的類型也不是固定的,通過設定CSS 的display屬性,可以使行內元素變為區塊層級元素,也可以讓區塊層級元素變為行內元素。

  3. 結論:

    替換元素一般有內在尺寸,所以具有width和height,可以設定。例如你不指定img的width和height時,就按其內在尺寸顯示,也就是圖片被儲存的時候的寬度和高度。

   對於表單元素,瀏覽器也有預設的樣式,包括寬度和高度。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.