HTML布局之块级元素和行内元素

HTML布局之块级元素和行内元素

1.1布局之CSS display属性
display属性规定元素应该生成的框的类型。
语法
1、常用
display:inline;
将元素设置为内联对象。对其设置属性height和width是没有用的,致使它变宽变大的原因是内部元素的‘宽高+padding‘。display:inline,能够修复著名的IE双倍浮动边界问题。
display:block;
将元素设置为块对象。可以对其设置宽高,但是它的实际宽高是‘本身宽高+padding‘。
display:inline-block;
将元素设置为兼顾了两者的对象,既像行内元素一样流动布局,又像block元素一样有自己的padding margin等。
display:none;
删除元素本该显示的空间,使生成的元素不显示,不占用文档中的空间。但如果使用CSS visibility属性设置为visibility: hidden的话,元素占据的空间是会保留的。
注意:CSS visibility属性指定是否显示一个元素生成的元素框。这意味着元素仍占据其本来的空间,不过可以完全不可见。
2、其他
display:list-item; 元素会作为列表显示。
display:run-in; 元素会根据上下文作为块级元素或内联元素显示。
display:compact; SS 中有值 compact,不过由于缺乏广泛支持,已经从 CSS2.1 中删除。
display:marker; SS 中有值 marker,不过由于缺乏广泛支持,已经从 CSS2.1 中删除。
display:table; 元素会作为块级表格来显示(类似table),表格前后带有换行符。
display:inline-table; 元素会作为内联表格来显示(类似table),表格前后没有换行符。
display:table-row-group; 元素会作为一个或多个行的分组来显示(类似tbody)。
display:table-header-group; 元素会作为一个或多个行的分组来显示(类似thead)。
display:table-footer-group; 元素会作为一个或多个行的分组来显示(类似tfoot)。
display:table-row;此元素会作为一个表格行显示(类似 tr )。
display:table-column-group;此元素会作为一个或多个列的分组来显示(类似 colgroup )。
display:table-column; 元素会作为一个单元格列显示(类似 col )。
display:table-cell; 元素会作为一个表格单元格显示(类似 td 和 th)。
display:table-caption; 元素会作为一个表格标题显示(类似 caption)。
1.2 块级元素和内联元素
块元素(block element)一般是其他元素的容器元素,能容纳其他块元素或内联元素。内联元素(inline element)也叫内嵌元素或行内元素,一般都是基于语义级(semantic)的基本元素。内联元素只能容纳文本或者其他内联元素。
通过修改属性display的值,可以改变元素的类型。
1.2.1块级元素
“块级元素”对应的属性值是block,会生成一个元素框,(默认地)它会填充其父级元素的内容,旁边不能有其他元素。换句话说,他在元素框之前和之后生成了“分隔”符。
块级元素的特点:
1、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。
2、每个块级元素总是从新的一行开始,并且其后的元素也另起一行。
3、盒子模型涉及的所有属性都可以被修改。如元素的高度、宽度、行高以及顶和底边距都可设置。
4、可以容纳内联元素和其他块元素。
注意:没有CSS的作用,块元素会顺序以每次另起一行的方式一直往下排。而有了CSS后,便可以改变这种html默认的布局模式,把块元素摆放到想要的位置上。
1.2.2内联元素
“内联元素”对应的属性值是inline。一个行内元素只占据它对应标签的边框所包含的空间。即元素的宽和高是随标签里的内容而变化。并且内联元素是在一个文本行内生成元素框,而不会打断这行文本,不会在它本身之前或之后生成“分隔符”,所以可以出现在另一个元素的内容中,而不会破坏其显示。
内联元素的特点:
1、在块级元素里,且只会占据自己内容部分的空间。
2、行内元素在同一行,不能在前后元素之间生成空行。
3、元素的高度、宽度、行高及顶部和底部边距不可设置。
4、只能容纳文本或者其他内联元素。
1.2.3块元素与内联元素的区别
1、格式区别
块元素,总是在新行上开始;内联元素,和其他元素都在一行上。
2、内容区别
内联元素,只能容纳文本或者其他内联元素;块元素,能容纳其他块元素或内联元素。这种结构上的包含继承区别可以使块级元素创建比行内元素更”大型“的结构。
3、属性区别
块元素中高度,行高以及顶和底边距都可控制;内联元素中高,行高及顶和底边距不可改变。
注意:上述区别,指的是默认情况下的,不包括CSS的刻意控制。也就是说当使用css控制时,块元素和内联元素的属性差异会越来越小。
1.3可变元素
可变元素是根据上下文关系确定该元素是块元素或者内联元素。可变元素还是属于上述两种元素类别,一旦上下文关系确定了类别,就要遵循块元素或者内联元素的规则限制。

附:html中的块元素(block element)和内联元素(inline element)分类明细

块级元素列表
<address> 定义地址
<caption> 定义表格标题
<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> 定义表格中的行

行内元素列表
<a> 标签可定义锚
<abbr> 表示一个缩写形式
<acronym> 定义只取首字母缩写
<b> 字体加粗
<bdo> 可覆盖默认的文本方向
<big> 大号字体加粗
<br> 换行
<cite> 引用进行定义
<code> 定义计算机代码文本
<dfn> 定义一个定义项目
<em> 定义为强调的内容
<i> 斜体文本效果
<img> 向网页中嵌入一幅图像
<input> 输入框
<kbd> 定义键盘文本
<label> 标签为 input 元素定义标注(标记)
<q> 定义短的引用
<samp> 定义样本文本
<select> 创建单选或多选菜单
<small> 呈现小号字体效果
<span> 组合文档中的行内元素
<strong> 语气更强的强调的内容
<sub> 定义下标文本
<sup> 定义上标文本
<textarea> 多行的文本输入控件
<tt> 打字机或者等宽的文本效果
<var> 定义变量

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

猜你喜欢

转载自wsj123.iteye.com/blog/2297366
今日推荐