• 块级元素和行内元素以及display中block、inline和inline-block的区别


    块元素又名块级元素(block element),和其对应的是内联元素(inline element),都是html规范中的概念。块元素和内联元素的基本差异是块元素一般都从新行开始,相邻的块级元素将会在不同行显示。而当加入了css控制以后,块元素和内联元素的这种属性差异就不成为差异了。比如,我们完全可以把内联元素加上display:block这样的属性,让它也有每次都从新行开始的属性,即成为块元素同样我们可以把块元素加上display:inline这样的属性,让它也在一行上排列。

    block元素的特点

    ①总是在新行上开始;
    ②高度,行高以及外边距和内边距都可控制;
    ③宽度缺省是它的容器的100%,除非设定一个宽度。
    ④它可以容纳内联元素和其他块元素

    inline元素的特点

    ①和其他元素都在一行上;
    ②高,行高及外边距和内边距不可改变;
    ③宽度就是它的文字或图片的宽度,不可改变
    ④内联元素只能容纳文本或者其他内联元素

    常见块元素(block element)

    ◎ address - 地址
    ◎ blockquote - 块引用
    ◎ center - 居中对齐块
    ◎ dir - 目录列表
    ◎ div - 常用块级容器,也是css layout的主要标签
    ◎ dl - 定义列表
    ◎ fieldset - form控制组
    ◎ form - 交互表单
    ◎ h1 - 大标题
    ◎ h2 - 副标题
    ◎ h3 - 3级标题
    ◎ h4 - 4级标题
    ◎ h5 - 5级标题
    ◎ h6 - 6级标题
    ◎ hr - 水平分隔线
    ◎ isindex - input prompt
    ◎ menu -菜单列表
    ◎ noframes - frames可选内容,(对于不支持frame的浏览器显示此区块内容)
    ◎ noscript - 可选脚本内容(对于不支持script的浏览器显示此内容)
    ◎ ol - 排序表单
    ◎ p - 段落
    ◎ pre - 格式化文本
    ◎ table - 表格
    ◎ ul - 非排序列表(无序列表)

    常见内联元素(inline element)

    ◎ a - 锚点
    ◎ abbr - 缩写
    ◎ acronym - 首字
    ◎ b - 粗体(不推荐)
    ◎ bdo - bidi override
    ◎ big - 大字体
    ◎ br - 换行
    ◎ cite - 引用
    ◎ code - 计算机代码(在引用源码的时候需要)
    ◎ dfn - 定义字段
    ◎ em - 强调
    ◎ font - 字体设定(不推荐)
    ◎ i - 斜体
    ◎ img - 图片
    ◎ input - 输入框
    ◎ kbd - 定义键盘文本
    ◎ label - 表格标签
    ◎ q - 短引用
    ◎ s - 中划线(不推荐)
    ◎ samp - 定义范例计算机代码
    ◎ select - 项目选择
    ◎ small - 小字体文本
    ◎ span - 常用内联容器,定义文本内区块
    ◎strike - 中划线
    ◎ strong - 粗体强调
    ◎ sub - 下标
    ◎ sup - 上标
    ◎ textarea - 多行文本输入框
    ◎ tt - 电传文本
    ◎ u - 下划线
    ◎ var - 定义变量

    可变元素

    可变元素由上下文语境来决定是块元素还是内联元素  。
    ◎applet - java applet
    ◎button - 按钮
    ◎del - 删除文本
    ◎iframe - inline frame
    ◎ins - 插入的文本
    ◎map - 图片区块(map)
    ◎object - object对象
    ◎script - 客户端脚本
     
     
     

    display:inline、block、inline-block的区别

    display:block就是将元素显示为块级元素.

      block元素的特点是:
      总是在新行上开始;
      高度,行高以及顶和底边距都可控制;
      宽度缺省是它的容器的100%,除非设定一个宽度
      <div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子。

    display:inline就是将元素显示为行内元素.

      inline元素的特点是:
      和其他元素都在一行上;
      高,行高及顶和底边距不可改变;
      宽度就是它的文字或图片的宽度,不可改变。
      <span>, <a>, <label>, <input>, <img>, <strong> 和<em>是inline元素的例子。

      inline和block可以控制一个元素的行宽高等特性,需要切换的情况如下:

      让一个inline元素从新行开始;
      让块元素和其他元素保持在一行上;
      控制inline元素的宽度(对导航条特别有用);
      控制inline元素的高度;
      无须设定宽度即可为一个块元素设定与文字同宽的背景色。

    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中块元素呈递为内联对象。

      IE下块元素如何实现display:inline-block的效果?

      有两种方法:
      1、先使用display:inline-block属性触发块元素,然后再定义display:inline,让块元素呈递为内联对象(两个display要先后放在两个CSS声明中才有效果,这是IE的一个经典bug,如果先定义了display:inline-block,然后再将display设回inline或block,layout不会消失)。代码如下(...为省略的其他属性内容):

      div {display:inline-block;...}
      div {display:inline;}

      2、直接让块元素设置为内联对象呈递(设置属性display:inline),然后触发块元素的layout(如:zoom:1等)。代码如下:

      div {display:inline; zoom:1;...}

     
  • 相关阅读:
    PHP语句、函数及字符串处理
    JAVA代码 运算符
    utf-8
    ascii码对照表
    什么是数组
    教你如何---构建良好的windows程序(初学者必看) (转)
    代码
    Android课程---Android Studio简单设置
    Android课程---Android Studio使用小技巧:提取方法代码片段
    Android课程---Android Studio的一些小技巧
  • 原文地址:https://www.cnblogs.com/dorra/p/7616089.html
Copyright © 2020-2023  润新知