常见的行内元素:
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 – 下划线
常用的行内元素要记住:a、span、img、input、lable、select、strong、textarea
常见的块级元素:
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 – 无序列表
常用的块级元素要记住:div、h1~h6、dl、ul、ol
行内元素与块级元素有什么不同?
区别一:
块级:块级元素会独占一行,默认情况下宽度自动填满其父元素宽度
行内:行内元素不会独占一行,相邻的行内元素会排在同一行。其宽度随内容的变化而变化。
区别二:
块级:块级元素可以设置宽高
行内:行内元素不可以设置宽高
区别三:
块级:块级元素可以设置margin,padding
行内:行内元素水平方向的margin-left; margin-right; padding-left; padding-right;可以生效。但是竖直方向的margin-bottom; margin-top; padding-top; padding-bottom;却不能生效。
区别四:
块级:块级元素可以容纳行内元素和其他块元素
行内:行内元素只能容纳文本或者其他内联元素
至于为什么width属性对行内元素无效,可以参阅CSS2标准中关于width的定义
要解决行内元素宽度的问题,我们介绍一个属性,inline-block
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;…}
下面附一张inline-block的支持情况
[caption id=”attachment_156” align=”aligncenter” width=”625”] CSS inline-blockd 的游览器支持情况[/caption]