块级元素和内联元素的区别(HTML)


    请把下面二行代码放进body标签里:
    <div style=”border: 1px solid red;”>div1</div>
    <div style=”border: 1px solid red;”>div1</div>
    浏览器的呈现效果:
    div1
    div1
  这二个div占据了二行空间,叫做块级元素(block)。
  再把下面二行代码也放进body标签里:
    <span style=”border: 1px solid red;”>span1</span>
    <span style=”border: 1px solid red;”>span2</span>
  浏览器的呈现效果:
    span1 span1
  这两个span并列在一行,叫做内联元素(inline)。

块级元素和内嵌元素的区别:
  · 块级元素 用来搭建网站架构、布局、承载内容,如:div、ul、li、dl、dt、dd、h1-h6、p、address……
       内联元素 用在文本之中的某一行的修饰,如:a、span、strong、sub、sup、img……
    · 块级元素是盒子,盒子是有宽高的,即不管里面有多少东西,外部就可以设置其宽高。
       内联元素是袋子,其宽高由里面的东西撑起来的。
  · 块级元素和内嵌元素之间互相转换,转换的代码如下:
       display:block;    /* 转成块元素 */
       display:inline;    /* 转成内嵌元素 */
  · 块级元素和内嵌元素对于CSS的调用规则:
       1. 块元素可以包含内联元素或某些块元素,但内联元素却不能包含块元素,它只能包含其它的内联元素:
          <div><h1></h1><p></p></div> —— 对
          <a href=”#”><span></span></a> —— 对
          <span><div></div></span> —— 错
       2. 有几个特殊的块级元素只能包含内嵌元素,不能再包含块级元素,这几个特殊的标签是:
          h1-h6、p、dt。
          <p><ol><li></li></ol></p> —— 错
          <p><div></div></p> —— 错
     3. li内可以包含div标签/父级ul或者是ol
        li和div标签都是装载内容的容器,地位平等,没有级别之分。
     4. 块级元素与块级元素并列、内嵌元素与内嵌元素并列:
          <div><h2></h2><p></p></div> —— 对
          <div><a href=”#”></a><span></span></div> —— 对
          <div><h2></h2><span></span></div> —— 错

注:display:inline-block将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内,允许空格。

  inline-block的元素特点:

  将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内,允许空格。(准确地说,应用此特性的元素呈现为内联对象,周围元素保持在同一行,但可以设置宽度和高度地块元素的属性)

  并不是所有浏览器都支持此属性,目前支持的浏览器有:Opera、Safari在IE中对内联元素使用display:inline- block,IE是不识别的,但使用display:inline-block在IE下会触发layout,从而使内联元素拥有了 display:inline-block属性的表症。从上面的这个分析,也不难理解为什么IE下,对块元素设置display:inline- block属性无法实现inline-block的效果。这时块元素仅仅是被display:inline-block触发了layout,而它本就是行 布局,所以触发后,块元素依然还是行布局,而不会如Opera中块元素呈递为内联对象。

努力吧,为了媳妇儿,为了家。。。
原文地址:https://www.cnblogs.com/jlj9520/p/5057624.html