网页制作免费教程站—个人网页 建站教程 建站资源 免费建站资源 个人网页制作教程 个人网页制作 ——网页制作与网页设计教程网

域名注册 - 虚拟主机 - 企业邮局 - 网页制作 - 网站推广 - 服务器租用
关键字: - 设置首页 - 加入收藏
业界新闻 建站指南 网页制作 动画制作 网页特效 网络编程 书籍教程 网页素材 视频教程
苏菜 豫菜 辽菜 滇菜 鄂菜 东北菜 客家菜 淮扬菜 海派菜
满汉全席 川菜 粤菜 湘菜 京菜 鲁菜 潮州菜 闽菜 火锅 徽菜 海鲜 浙菜 山珍

超值套餐A型

110M 送cn

超值套餐B型

220M 送cn

超值套餐C型

350M 送cn

超值套餐D型

450M 送cn

超值套餐E型

300M 送com

超值套餐F型

400M 送com

超值套餐G型

500M 送com

超值套餐H型

600M 送com


display:inline-block的深入理解


2007-3-13 12:54:43 来源:本站 评论:


在使用CSS实现表现的时候,会经常接触到display:inline-block这一属性,无论是初接触Web标准还是接触标准已久的朋友,大都会对这一属性感觉很迷惑和模糊。

display:inline-block

引用:
将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内,允许空格。

但对于这个属性不是所有浏览器都识别。

支持的浏览器有:Opera、Safari

但很遗憾,最流行的IE和Firefox却不支持这个属性(据说下一版本的Firefox将会支持display:inline-block)。不过Firefox下却有私有属性-moz-inline-box和inline-block形似,为什么是“形似”而不是“神似”呢?这是因为使用-moz-inline-box会带来很多意想不到的后遗症,比如使用这一属性后,text-align有时候就会有问题,还得改用Firefox的私有属性-moz-box-align来解决(谢谢aoao提供案例)。

建议:最好不要使用Firefox私有属性-moz-inline-box。

或许有朋友会对上面所说的IE也不支持display:inline-block属性,表示疑问或者反对。说:“我在IE中对a或者span等内联元素使用display:inline-block一直是有效的”。

其实不然,在IE中对内联元素使用display:inline-block,IE是不识别的,但使用display:inline-block在IE下会触发layout(如果你对layout感觉到陌生,可以参看old9翻译的《On having 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;...}


上一篇:已到尽头
相关文章
·暂无
正在读取…
我也评两句

   


最新虚拟主机分类
个人经典型 企业商务型
精品论坛型
PHPWind论坛型 Discuz论坛型
精品网店型
Shopex网店型 ecshop网店型
CMS专用型
Dedecms专用型 php168专用型
Phpcms专用型  
Flash Remoting虚拟主机
ColdFusion,BlueDragon虚拟主机
DotNetNuke虚拟主机