Css <;李>&书信电报;th>;文本对齐不一致
在IE、Edge和Safari中,一个Css <;李>&书信电报;th>;文本对齐不一致,css,html,cross-browser,Css,Html,Cross Browser,在IE、Edge和Safari中,一个的后代是中心对齐的 在Chrome、Firefox和Opera中,它是左对齐的 根据建议(斜体字): 用户代理应在其用户代理样式表中具有规则 匹配具有父节点且其计算值为 “text align”属性的初始值,其声明 块只包含一个设置“文本对齐”的声明 属性设置为值“center” 斜体部分指出,如果父元素的文本对齐属性未更改,则元素应居中 Chrome、Firefox和Opera中的后代的情况并非如此。我认为他们忽略了W3C的建议,对吗 (通过使用th{te
的后代是中心对齐的
在Chrome、Firefox和Opera中,它是左对齐的
根据建议(斜体字):
用户代理应在其用户代理样式表中具有规则
匹配具有父节点且其计算值为
“text align”属性的初始值,其声明
块只包含一个设置“文本对齐”的声明
属性设置为值“center”
斜体部分指出,如果父元素的文本对齐
属性未更改,则
元素应居中
Chrome、Firefox和Opera中
的后代的情况并非如此。我认为他们忽略了W3C的建议,对吗
(通过使用th{text align:center;}
,这个问题很容易解决,所以我不需要解决方案。)
编辑
我收到了一些关于这种行为的很好的解释,但答案并不令人满意——这并不是海报的错
我认为W3C的意图是
元素应该居中,除非它们包含或继承了不同的显式文本对齐
样式。由于隐式样式的复杂级联继承,
元素应该左对齐是没有意义的
这似乎取决于W3C在引用中所说的“它的初始值”是什么意思。
的文本对齐
属性的“初始值”是匹配父项
,这显然不同于文本对齐:初始
希望W3C将来能澄清这一点。同时,th{text align:center;}
解决了这个问题
示例:
th,td{
边框:1px实心#ddd;
}
这是一个Lorem Ipsum
测试
另一个标题
ABCDEFG HIJKLMNOP QRSTUV WXYZ
更多
不,他们没有忽略W3C。根据你问题中的引述
“文本对齐”属性的计算值为其初始值的父节点
但事实并非如此。文本对齐
的初始值为开始
,计算为开始
。但是
元素的样式为文本对齐:匹配父级
,由于
具有方向:ltr
,因此计算到左侧
。尽管start
的行为类似于left
,因为
也有方向:ltr
,但它们是不同的值。这就是为什么th
不居中的原因
注意start
和match parent
都是最近添加的。可能th
会集中在不支持它们的浏览器上
如果使用li{text align:initial;}
则thth
居中
th,td{
边框:1px实心#ddd;
}
李{
文本对齐:首字母;
}
这是一个Lorem Ipsum
测试
另一个标题
ABCDEFG HIJKLMNOP QRSTUV WXYZ
更多
您的问题是li
默认为text align:match parent
(至少在Firefox上是这样),这意味着li
是(如果方向为ltr
则为text align:right
)因此,如果您将li
更改为text align:initial
则th
将按预期工作
匹配父项
与“继承”类似,但“开始”和“结束”值是根据父对象的方向计算的,并替换为
适当的左或右值
th,
运输署{
边框:1px实心#ddd;
}
李{
文本对齐:首字母
}
这是一本关于同侧的书
试验
另一个标题
ABCDEFG HIJKLMNOP QRSTUV WXYZ
更多
那么,在W3C的建议中,这是否意味着“父节点”真的意味着“祖先节点”?@RickHitchcock Theli
具有text align:left
而不是initial
,而表
、tbody
和tr
继承了这一点。th
的父项是tr
。啊,这是有道理的。但是div
元素是否默认为text align:left
?它们的th
子体不是左对齐的。否,默认为text align:start
start
的行为类似于left
的方向:ltr
,但它是一个不同的值。这是否意味着IE、Edge和Safari是错误的?或者这是否意味着W3C的建议不明确?我认为match parent
与方向(左/右)有关,而不是与居中(?)有关。确切地说,值从左开始(text align:left)
如果ltr
或从右侧开始如果rtl
我认为initial
用于恢复默认属性,该属性可能已被CSS覆盖。为什么li
元素的text align:initial
与其默认值text align:match parent
不同?我创建了一个新的示例,以便您能够理解差异谢谢,我看到了差异,但我想我对initial
的解释是错误的。请参阅我的编辑。