你的元素居中对齐了吗?——关于 'text-align:center' 的问题

摘要:
简单查看后,我发现这是由“textalign:center”的兼容性造成的。在W3C CSS2.1规范的第16.2节中,详细描述了文本对齐:--------------------------------------------值:left | right | center | justify | inherit初始值:匿名值,取决于“direction”的值。如果“direction”为“ltr”,则为“left”;如果“direction”为“rtl”,则为“right”。在IE6/7和IE8混合模式中,文本对齐:中心也可以将块级元素居中。在其他浏览器中,text-align:center仅适用于内联内容。然而,IE6/IE7/IE8混合模式不支持此模式,因此“text-align:center;”也应设置父容器的。如果居中对齐的子元素行中的内容不需要居中对齐,则还需要设置“textalign:left”:XML/HTMLcode?

转自:http://bbs.csdn.net/topics/340170231

 昨天在论坛里溜达的时候,发现有同学遇到了居中的问题,页面在 IE 里居中对齐好好的,为什么在其他浏览器里面就不灵了呢?
    我曾经也在写一个 JS 日历的时候也被居中弄的焦头烂额,苦不堪言。想必不少人都遇到过这个问题吧。
    我大致看了一下,发现是 “text-align:center” 的兼容性引起的。下面就这个问题跟大家分享一点我的经验。
    先来看看 W3C 标准中是怎么说的。
    在W3C CSS2.1规范第16.2节 对text-align 有详细地描述: ------------------------------------------ 值: left | right | center | justify | inherit 初始值:匿名值,由'direction'的值而定,如果'direction'为'ltr'则为'left',如果'direction'为'rtl'则为'right'。 应用于: 块级元素,表格单元格,行内块元素 继承性: 是 计算后的值:初始值或指定值 ------------------------------------------
    这个特性描述了如何使一个块元素的行内内容对齐。
    注意一点,标准里说这个属性是用来对齐行内内容的,所以,应该对块级内容起作用。
    解释一下,行内内容是说由行内元素组成的内容,行内元素大家都知道吧,比如 SPAN 元素,IFRAME元素和元素样式的 ‘display : inline’ 的都是行内元素;块级内容跟则是由块级元素构成,DIV 是最常用的块级元素。块级元素和行内元素的区别是,块级元素会占一行显示,而行内元素可以在一行并排显示。
    这样,我们对这个特性的认识应该就清楚了。但是,问题来了,虽然标准里这么规定,那么是不是所有浏览器都遵守呢?答案是否定的。猜猜是哪个浏览器这么特立独行啊? IE!!
    IE6/7及IE8混杂模式中,text- align:center可以使块级元素也居中对齐。其他浏览器中,text-align:center仅作用于行内内容上。
    解决这个问题比较好的方式,就是为所有需要相对父容器居中对齐的块级元素设置“margin-left:auto; margin-right:auto”。但这个方式 IE6/IE7/IE8的混杂模式中不支持,所以还要设置父容器的 "text-align:center;"。
    若居中对齐的子元素内的行内内容不需要居中对齐,则还需要为其设置“text-align:left”:

XML/HTML code
 
?
1
2
3
4
5
6
7
8
9
10
<style>
   * { font-family:Consolas,Verdana,Arial; font-size:12px; }
   div, center { border:3px solid dimgray; padding:2px; }
   span { background:lightgrey; }
</style>
<div style="200px; text-align:center;">
   <div style="100px; margin:0 auto; text-align:left;">
       <span>text</span>
   </div>
</div>

免责声明:文章转载自《你的元素居中对齐了吗?——关于 'text-align:center' 的问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇问题:Swiper父容器隐藏时实例化组件,组件滑动失效CNN中的卷积下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

CSS实用的代码段

摘抄的一些代码还有自己总结的常用的代码~ 1>浏览器样式统一 1 *{ 2 margin:0px; 3 padding:0px; 4 } 浏览器样式统一 2>清除浮动的方法 3>跨浏览器设置透明度 1 .transparent{ 2 filter:alpha(opacity=50); /*IE*/ 3 -khtml...

微信小程序开发实战-天气小程序

园龄6年8个月了,还一篇文章都没写过,惭愧! 最近周末做了个天气预报小程序,在这里整理一下开发过程和注意点,给对小程序开发感兴趣的伙伴们提供点参考。 废话不多说,先上图最终效果: 下面进入正文: 第一步  准备 0. 把微信小程序开发文档过一遍。https://developers.weixin.qq.com/miniprogram/dev/framew...

4、HTML和CSS进阶知识

HTML和CSS进阶知识 一、HTML中常用的块元素(block)和行内元素(inline)   常见的块元素(block):p、h1--h6、div、ul、ol、dl、hr   常见的行内元素(inline):b、i、em、strong、small、sub、sup、a、span、br、   在css中,可以通过display属性实现block元素和inl...

CSS图片垂直居中方法

让div里面的多行文本垂直居中的方法: div{height:100px;100px;border:solid 1px red;text-align:center; display:table-cell;vertical-align:middle} 下面是网上好不容易找的多种办法: 看到问此问题的很多,所以花点时间整理下,欢迎大家提意见,做补充修改,谢谢...

CSS段落对齐方式

CSS段落对齐有两种方式:水平对齐和垂直对齐。 1.水平对齐: (1)、text-align:left; //左对齐 (2)、text-align:right; //右对齐 (3)、text-align:center; //居中对齐 (4)、text-align:justify; //两端对齐 2.垂直对齐: (1)、vertical-align:top;...

text-align=center 失效原因

text-align属性是针对 内联元素居中得属性设置,对于块状元素使用margin:0 auto;来控制居中; 笔者在设置一个h2标签时设置了text-align:center;但是却始终出现在中间偏左得位置,第一反应是可能样式冲突了,但是经过查找没有发现冲突,而且换了p标签也是不行,最终通过谷歌审查元素功能看到一个user agent style的属性...