页面中元素一般分为两种:块级元素,行内元素(内联元素),即然分为两种元素,那么他们之间必然有区别:
1.块级元素总是独自占一行,前面和后面就好像有个换行符,内联元素总是和其它的内联兄弟占一行
2.块级元素可以设置宽和高度值,内联元素就不行了,他们的宽和高总是随着自身的内容自动扩大和缩小
3.块级元素的margin和padding都正常,内联元素左右maring和左右padding正常,上下不正常不识别,也就是说不能通过margin-top和padding-top来改变行高
关于第3点补充下:
行内元素margin和padding左右间距在各个浏览器中解析的都完整,上下间距那就是杯具,各个浏览器解析还不一样,设置个背景貌似人家又认了,但是他周围的元素当他设置的上下间距不存在,所以在以后的项目中,不给行内元素设置上下的margin和padding了
总结:想让自己独占一行就会块级元素(div,dl,dt,dd,ul,li...),想让元素和其它元素在一行就用行内元素(span,a,img),他们之间可以通过样式来转换disply:block;display:inline;
还有一个属性:
display:inline-block;
将对象呈递为内联元素,与其它的元素同处一行,但是内部又呈现出块级元素,也就是可以设置宽和度,打破了块级元素和内联元素的区别,此属性,IE8,FF3,其它的标准浏览器都识别,IE6,IE7,FF2不识别此属性,但是在IE6,7下面使用又好像识别了,是因为他触发了IE的haslayout,(类似于zoom:1),所以从表现上来说他们支持这个属性.(可以拿块级元素来试验,块级元素使用了这个属性就没有相应的功能了),FF2{display:moz-inline-box}//有可能会导致文本对齐问题
如果块状元素(div..)表现这种属性,与外部沟通是内联,内部又是块状的可以这样设置(display:inline;zooom:1)或 div{display:inline-block;//先触发layout}div{display:inline;}这两个顺序不能颠倒了,不然就失效了
好吧,就谈这里把,下面列举下普通的行内元素和块元素:
块级元素列表
定义地址定义表格标题定义列表中定义条目-
定义列表中的项目定义一个框架集创建 HTML 表单
定义最大的标题
定义副标题
定义标题
定义标题
定义标题
定义最小的标题
创建一条水平线
元素为 fieldset 元素定义标题
标签定义列表项目为那些不支持框架的浏览器显示文本,于 frameset 元素内部
定义在脚本未被执行时的替代内容- 定义有序列表
- 定义无序列表
标签定义段落
定义预格式化的文本
标签定义表格的表头定义表格中的行
行内元素列表标签可定义锚
表示一个缩写形式
定义只取首字母缩写
字体加粗
可覆盖默认的文本方向
大号字体加粗
换行
引用进行定义
定义计算机代码文本
定义一个定义项目
定义为强调的内容
斜体文本效果
向网页中嵌入一幅图像
输入框
定义键盘文本
标签为 input 元素定义标注(标记)
定义短的引用
定义样本文本
创建单选或多选菜单
呈现小号字体效果
组合文档中的行内元素
语气更强的强调的内容
定义下标文本
定义上标文本
多行的文本输入控件
打字机或者等宽的文本效果
定义变量