块级元素和行内元素相关问题
最近实习接触到前端的东西,以后想要往这个方向发展,把自己入门过程中遇到的一些问题都记录下来。方便以后回来看。
问题:
块级元素有哪些?行内元素有哪些?
参考来源:
http://www.cnblogs.com/Jackie0714/p/4923639.html
http://blog.csdn.net/zyy88886666/article/details/53448131
1.关于行内元素和块状元素的说明
1.1 CSS规范规定
每一个网页元素都有一个display属性,用于确定该元素的类型,每一个元素都有默认的display属性值
div元素,它的默认display属性值为“block”,称为“块级”元素(block-level);
而span元素的默认display属性值为“inline”,称为“行内”元素。
div这样的块级元素,就会自动占据一定矩形空间,可以通过设置高度、宽度、内外边距等属性,来调整的这个
矩形的样子;与之相反,像“span”“a”这样的行内元素,则没有自己的独立空间,它是依附于其他块级元素存在的,因此,对行
内元素设置高度、宽度、内外边距等属性,都是无效的。
1.2 改变类型
但可以使用css中display属性改变生成框的类型,这意味着,通过将display属性设置为block,可以让行内元素表现得像块级元素一样
还可以通过把display设置为none,让生成的元素根本没有框。这样的话,该框及其所有内容就不再显示,不占用文档的空间。
块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来的。
1.2 排列方式
行内框在一行中水平布置,可以通过水平内间距、边框和外边距调整它们的间距。但是,垂直内边距、边框和外边距不影响内行框的高度。
有一行形成的水平框成为行框的告诉总是足以容纳它包含的所有行内框。
2.行内、块状元素区别:
(1).块级元素会独占一行,其宽度自动填满其父元素宽度行内元素不会独占一行,相邻的行内元素会排列在同一行里,知道一行排不下,才会换行,其宽度随元 素的内容而变化
(2).一般情况下,块级元素可以设置 width, height属性,行内元素设置width, height无效
(注意:块级元素即使设置了宽度,仍然是独占一行的)
(3).块级元素可以设置margin 和 padding.
行内元素的水平方向的padding-left,padding-right,margin-left,margin-right 都产生边距效果,但 是竖直方向的padding-top,padding-bottom,margin-top,margin-bottom都不会产生边距效果。(水平方 向有效,竖直方向无效)
3.行内、块状元素:
块元素(block element)
<address>定义地址
<div>定义文档中的分区或节
<div>定义文档中的分区或节<dl>定义列表
<dt>定义列表中的项目
<dd>定义列表中定义条目
<ol>定义有序列表
<ul>定义无序列表
<li>标签定义列表项目
<form>创建 HTML 表单
<h1-h6> 定义的标题
<hr>创建一条水平线
<p>标签定义段落
<pre>定义预格式化的文本
<table>标签定义 HTML 表格
<caption>定义表格标题
<tbody>标签表格主体(正文)
<thead>标签定义表格的表头
<th>定义表头单元格
<tr>定义表格中的行
<td>表格中的标准单元格
内联元素(inline element)
<span>组合文档中的行内元素
<label>标签为
<input> 元素定义标注(标记)
<input>输入框
<select>创建单选或多选菜单
<textarea>多行的文本输入控件
<a>标签可定义锚
<abbr>表示一个缩写形式
<acronym>定义只取首字母缩写
<b>字体加粗
<em>定义为强调的内容
<i>斜体文本效果
<strong>语气更强的强调的内容
<cite>引用进行定义
<q>定义短的引用
<bdo>可覆盖默认的文本方向
<br>换行
<code>定义计算机代码文本
<dfn>定义一个定义项目
<img>向网页中嵌入一幅图像
<kbd>定义键盘文本
<samp>定义样本文本
<small>呈现小号字体效果
<sub>定义下标文本
<sup>定义上标文本
<tt>打字机或者等宽的文本效果
<var>定义变量可变元素
可变元素为根据上下文语境决定该元素为块元素或者内联元素。
< applet> - java applet
<button >- 按钮
< del> - 删除文本
<iframe> - inline frame
< ins >- 插入的文本
<map >- 图片区块(map)
< object >- object对象
< script> - 客户端脚本
<button >- 按钮
< del> - 删除文本
<iframe> - inline frame
< ins >- 插入的文本
<map >- 图片区块(map)
< object >- object对象
< script> - 客户端脚本
另外HTML5增加了8个语义(semantic)元素,都是块级元素
header,section,footer,aside,nav,main,article,figure