What exactly does this CSS selector with a comma match?

╄→гoц情女王★ 提交于 2021-02-17 05:06:58

问题


I have a question about CSS selectors.

In my CSS file I have the following code:

.table_legenda th, td {
    text-align: left;
    vertical-align: top;
    font-weight: bold;
    color: #76818a;
    border-bottom: 1px solid #76818a;
    border-left: 1px solid #76818a;
    white-space: nowrap;
    overflow: hidden;
}

Exactly what elements does that select?

I thought that it should select all the th and td elements inside a table having the class table_legenda.

However, when I test it, the style also gets applied to td elements inside other tables that do not have the table_legenda class (but do have another class).

Why does that happen? What am I missing?


回答1:


You are misunderstanding the precedence of the comma.

.table_legenda th, td {}

is equivalent to:

.table_legenda th {}
td {}

and not to:

.table_legenda th {}
.table_legenda td {}

You need to specify the complete selector each time you have a comma:

.table_legenda th,
.table_legenda td {}

A preprocessing tool such as SASS can give you alternative syntax:

.table_legenda {
    th, td {}
}



回答2:


it selects tr inside table_legenda class , and in addition to that, all td.

The selector you want is

.table_legenda th, .table_legenda td

In this one, it selects all the th inside .table_legenda and all td inside .table_legenda




回答3:


The , means selecting another attribute so what you should do is:

.table_legenda th,.table_legenda td {
text-align: left;
vertical-align: top;
font-weight: bold;
color: #76818a;
border-bottom: 1px solid #76818a;
border-left: 1px solid #76818a;
white-space: nowrap;
overflow: hidden;
}


来源:https://stackoverflow.com/questions/27315401/what-exactly-does-this-css-selector-with-a-comma-match

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!