css style 多级情况下使用逗号,浏览器是如何解析的

刚在chromium下试了一下(我的系统是ubuntu 18.04),发现一个不能理解的现象
css的style下面几种定义
table tr th,td {
....
}

table tr th,table tr td {
....
}

table tr th,tr td {
....
}
的效果是一样的,想不明白,编程语言的语法不应该是明确的,不会产生歧义性的吗,为什么会出现如此诡异的兼容。

我实际的测验代码是:
table tr th,td {
word-wrap:break-word;
}

1个回答

你这里的td或者说th都是在table的节点下面才有,如果你换成接在其他标签节点上结果就不一样了。
th,td{}=th{}+td{}的效果,tr td则是tr节点下的td,不知道是不是你想知道的东西。

qq_37129624
ghq-yes 回复Vincent_Field: 第一级的样式运用在第一级,对他的下级是没有作用的(padding之类除外),反之同理。两个不同层级的标签的样式设置并没有什么直接的联系,你的问题是这个吗?
大约一年之前 回复
Vincent_Field
Vincent_Field 对啊,这是一个特例,如果把table tr td 之类的改为div或class,如果第一级和第三级出现了一样的class,按这个规则明显会有冲突啊,所以就想不明白浏览器为什么这样解析,是不是有我没知道的规则存在里面。
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问