某人

此前素未谋面、此后遥遥无期

0%

块级元素与行内元素

了解html

  • W3C:万维网联盟-World Wide Web Consortium,创建于1994年
  • HTML:超级文本标记语言-HyperText Markup Language
  • XHTML:可扩展超文本标记语言-Extensible HyperText Markup Language,XHTML 的目标是为取代 HTML
  • DHTML:是动态HTML - Dynamic HTML,它不是 W3C 标准
  • HTML5:万维网的核心语言,是超文本标记语言-html的第五次重大修改,是一项推荐标准

元素的基本定义

块级元素与块元素

  • **块级元素(block-level elements)**:那些视觉上会被格式化成块状的元素,通俗一点来说就是那些会换新行的元素。display 属性值为:block, list-item, table 值都可以将一个元素设置成块级元素。
  • 块元素:display属性值为block的元素,是块级元素的一个子集。

行内级元素与行内元素

  • **行内级元素(inline-level elements)**:行内级元素是那些不会为自身内容形成新的块,而让内容分布在同一行中的元素。display 属性的:inline, inline-table, inline-block 值都可以将一个元素设置成行内级元素。

  • 行内元素:display属性为inline的元素,是行内级元素的一个子集

置换元素与非置换元素

  • **置换元素(replaced element)**:一个内容 不受CSS视觉格式化模型控制,CSS渲染模型并不考虑对此内容的渲染,且元素本身一般拥有固有尺寸(宽度,高度,宽高比)的元素,被称之为置换元素。这类元素,浏览器根据元素的标签和属性,来决定元素的具体显示内容。常见的置换元素有这些:img,input,textarea,select,button等,而某些元素像是audio或canvas只有在特殊情況下才是置換元素。

  • **非置换元素(non-replaced element)**:w3c并没有给出明确的非置换元素的解释,但能确定的是除置换元素之外,所有的元素都是非置换元素。

行内级非置换元素和行内级置换元素

  • 行内级非置换元素:宽度与高度的设置对于行内级非置换元素时不适用的,例如span,a
  • 行内级置换元素:置换元素一般都是一般拥有固有尺寸(宽度,高度,宽高比)的元素,因此对于置换元素在不设宽度和高度的情况下,元素宽高度等于元素自身固有尺寸。而且其遵循的特点如下:

  1. 若宽高的计算值都为 auto 且元素有固有高度,则 height 的使用值为该固有高度

    如表单元素input

  2. 若宽度的计算值为 auto 且元素有固有宽度,则 width 的使用值为该固有宽度

    如表单元素input

  3. 若宽度的计算值为 auto 且高度有 非auto 的计算值,并且元素有固有宽高比,则 width 的使用值为 高度使用值 * 固有宽高比;

    如img元素

  4. 若高度的计算值为 auto 且上述条件完全不符,则 height 的使用值不能大于150px,且宽度不能大于长方形高度的2倍。

    如iframe元素


元素列表

块元素(block element)

标签 描述
<address> 定义文档作者或拥有者的联系信息
<caption> 定义表格标题
<blockquote> 块引用
<dd> 定义列表中定义条目
<div> 定义文档中的分区或节
<dl> 定义列表
<dt> 定义列表中的项目
<fieldset> 定义一个框架集
<form> 创建 HTML 表单
<h1> 定义最大的标题
<h2> 定义副标题
<h3> 定义标题
<h4> 定义标题
<h5> 定义标题
<h6> 定义最小的标题
<hr> 创建一条水平线
<legend> 元素为 fieldset 元素定义标题
<li> 标签定义列表项目
<noframes> 为那些不支持框架的浏览器显示文本,于 frameset 元素内部
<noscript> 为定义在脚本未被执行时的替代内容
<ol> 定义有序列表
<ul> 定义无序列表
<p> 标签定义段落
<pre> 定义预格式化的文本
<table> 标签定义 HTML 表格
<tbody> 标签表格主体(正文)
<td> 表格中的标准单元格
<tfoot> 定义表格的页脚(脚注或表注)
<th> 定义表头单元格
<thead> 标签定义表格的表头
<tr> 定义表格中的行
<header> 区段头或页头
<footer> 区段尾或页尾。
<section> 一个页面区段。
<article> 定义文章。

内联元素(inline element)

标签 描述
<a> 超链接/锚点
<acronym > 定义只取首字母缩写
<b> 字体加粗
<bdo> 可覆盖默认的文本方向
<big > 大字体
<br> 换行
<cite> 引用进行定义
<code> 计定义计算机代码文本
<dfn> 定义一个定义项目
<em > 强调
<font> 字体设定(不推荐)
< i > 斜体文本效果
<img > 向网页中嵌入一幅图像
<input > 输入框
<kbd > 定义键盘文
< label > 标签为 input 元素定义标注(标记)
< q> 短引用
< s> 中划线(不推荐)
< samp> 定义范例计算机代码
<select > 创建单选或多选菜单
<small > 小字体文本
<span > 组合文档中的行内元素
<strike > 中划线
<strong > 语气更强的强调的内容
<sub> 下标
<sup> 上标
<textarea > 多行文本输入框
< tt> 打字机或者等宽的文本效果
<u > 下划线
<var> 定义变量

可变元素

可变元素 为根据上下文语境决定该元素为块元素或者内联元素。

标签 描述
<applet > java applet
<button > 按钮
<del > 删除文本
<iframe > 创建包含另外一个文档的内联框架(即行内框架)
<ins > 标签定义已经被插入文档中的文本
<map > 客户端图像映射(即热区)
<object > object对象
<script > 客户端脚本

注:此处只包含部分标签分类,而”块级“在新的 HTML5 元素中暂时无明确定义

块元素与内联元素的基本特点

块元素特点:

  1. 每个块级元素都从新的一行开始,并且其后的元素也另起一行。
  2. 元素的高度、宽度、行高以及顶和底边距都可设置。
  3. 元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。
  4. 它可以容纳内联元素和其他块元素

内联元素特点:

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

对行内元素,需要注意如下:

  1. 设置宽度width 无效。
  2. 设置高度height 无效,可以通过line-height来设置。
  3. 设置margin 只有左右margin有效,上下无效。
  4. 设置padding 只有左右padding有效,上下则无效。注意元素范围是增大了,但是对元素周围的内容是没影响的。

注:行内各别元素除外如类似img元素

参考链接

  1. w3c常见的块状元素与内联元素
  2. 关于元素高度与宽度的讨论
  3. MDN-置換元素
  4. w3c视觉格式化模型
  5. w3c视觉布局模型细节
  6. MDN-块级元素
  7. MDN-视觉格式化模型