使用display:inline-block居中没有宽度的元素

(编辑:jimmy 日期: 2024/10/31 浏览:2)

在一个元素内居中另一个元素有时候会很困难.对于常规,静态定位的元素,可以让他向左或向右浮动,或者使用text-align属性让他在父元素内居左,居中或居右.还可以利用自动外边距(margin:0 auto;)来居中元素.这些方法的问题在于,要居中的元素必须是有宽度的.像这里用于构成菜单的html列表,他可能是根据数据库信息动态生成的,或者说将来有可能手工编辑,总之你不可能提前设定他的宽度.

在display属性的值中,inline-block具有一些特殊的混合行为.正如他的名字所暗示的,它具有块级元素的特点,也有行内元素的行为.从块级元素角度来说,可以为他设定外边距和内边距,也可以通过它简便而有效的包围其他块级元素.从行内元素角度看,他会收缩包裹自己的内容,而不是扩展填充父元素.换句话说,inline-block元素的宽度始终等于其内容宽度.这种元素还有一个特点,就是可以包围浮动元素.不过,这种元素也有一个问题,既不能给他的外边距设定auto值--而这恰恰又是在更大的容器内居中元素的最简单方法.

解决方案就是为要居中元素的父元素应用text-align:center,为要居中的元素设定display:inline-block.这样设定就可以得到我们想要的结果:没有宽度的元素也能在其父元素内居中.

一句话新闻

高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。