block,inline和inline-block概念和區別(轉)

整體概念
  1. 根據CSS規範的規定,每個網頁元素都有一個display屬性,用於肯定該元素的類型,每個元素都有默認的display屬性值,好比div元素,它的默認display屬性值爲「block」,稱爲「塊級」元素(block-level);而span元素的默認display屬性值爲「inline」,稱爲「行內」元素。
  2. 行內元素指的是書寫完成後不會自動換行,而且元素沒有寬和高。
    塊級元素寫完後會自動換行,有寬高能夠修改。
    還有一種特殊的元素叫作行內塊元素。
    大體分類是:
    行內元素有:title  span  br  a   style  em  b  i   strong pcdata tt big small dfn code samp kbd var cite abbr acronym object script map q sub bdo
    塊級元素有:body  form  textarea  h1-h6 html table  button  hr  p  ol  ul  dl  center  div pre noscript blockquote fieldset address
    行內塊元素常見的有: img  input  td select textarea label
block, inline, inline-block細節對比
display:block
  1.  block元素能夠包含block元素和inline元素,塊級元素通常做爲容器出現,用來組織結構,但並不全是如此。有些塊級元素,如<form>只能包含塊級元素;p 元素,只能包含inline元素,而不能包含block元素,也有一些塊級元素既能夠包含塊級,也能夠包含行級元素。
  2. block元素會獨佔一行,多個block元素會各自新起一行。默認狀況下,block元素寬度自動填滿其父元素寬度。
  3. block元素能夠設置width,height屬性。塊級元素即便設置了寬度,仍然是獨佔一行。當只設置了height屬性時,則width默認是其父類元素的寬度。
  4. block元素能夠設置margin和padding屬性。
display:inline
  1. inline元素只能包含inline元素。
  2. inline元素不會獨佔一行,多個相鄰的行內元素會排列在同一行裏,直到一行排列不下,纔會新換一行,其寬度隨元素的內容而變化。
  3. inline元素設置width,height屬性無效,若是你要改變內聯元素的行高即相似文本的行間距,那麼你只能使用這三個屬性:line-height,font-size,vertical-align。若想給inline元素設置寬高屬性,則可以使用如下兩種方法(下面的方法是我我的收集的,若有不對,但願你們能夠指出)
  • 將inline元素轉換爲塊級元素後就均可設置了,即添加CSS樣式時,加上」display:block;「這句話。
  • 將該inline元素的position設置爲absolute或fixed,這樣子它就具備塊級元素的屬性了。
  1. inline元素的margin和padding屬性,水平方向的padding-left, padding-right, margin-left, margin-right都產生邊距效果;但豎直方向的padding-top, padding-bottom, margin-top, margin-bottom不會產生邊距效果,注意元素範圍是增大了,可是對元素周圍的內容是沒影響的。
[html] view plain copy
  1. <!DOCTYPE html>  
  2. <html>  
  3.     <head>  
  4.         <meta charset="UTF-8">  
  5.         <title></title>  
  6.         <style type="text/css">  
  7.             *{  
  8.                 margin:0;  
  9.                 padding:0;  
  10.                 list-style:none;  
  11.                 border:0;  
  12.             }  
  13.             .a1{  
  14.                 background:pink;  
  15.                 margin-top:30px;  
  16.                 margin-bottom: 30px;  
  17.                 padding-top: 20px;  
  18.                 padding-bottom: 20px;  
  19.             }  
  20.             .div1{  
  21.                 width: 100px;  
  22.                 height:100px;  
  23.                 background:green;  
  24.             }  
  25.         </style>  
  26.     </head>  
  27.     <body>  
  28.         <class="a1">CSDN</a>  
  29.         <div class="div1"></div>  
  30.     </body>  
  31. </html>  
運行結果以下左圖所示:
查看元素時,可看到右圖的效果,在右圖中,紫色部分爲內邊距,紫色下面的黃色部分是外邊距,但它們二者並不起做用,塊級元素div仍緊挨着元素a的底部,因此這就是元素範圍是增大了,可是對元素周圍的內容是沒影響的。
display:inline-block
  1. 簡單來講就是將對象呈現爲inline對象,可是對象的內容做爲block對象呈現。以後的內聯對象會被排列在同一行內。好比咱們能夠給一個link(a元素)inline-block屬性值,使其既具備block的寬度高度特性又具備inline的同行特性。
  2. 能夠設置margin和padding屬性。
文中不少內容都是參考前輩的,添加了一點點本身寫的內容。由於本身仍是菜鳥,因此寫不出像前輩們那麼優秀的文章,並且要是僅僅依靠我我的的經驗去寫,我怕寫出來的文章會誤導你們,不過我會繼續努力的!

參考網址: http://www.javashuo.com/article/p-zfyowszx-hm.html
相關文章
相關標籤/搜索