我使用bootstrap。表td是通过bootstrap填充8px。但我只需要2px填充,所以我使用这个样式表来进行布局。
.table > thead > tr > th,
.table > tbody > tr > th,
.table > tfoot > tr > th,
.table > thead > tr > td,
.table > tbody > tr > td,
.table > tfoot > tr > td {
padding: 2px;
}
我想知道如何更轻松地选择td? 我强烈地更好奇地 一层一步。
.table > (thead, tbody, tfoot) > (td , th)
或者这个: *可以匹配多个图层吗?
.table > * > td
这是片段,任何帮助将不胜感激。提前谢谢!
table, td {
border: 1px solid;
}

<link rel="stylesheet" href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css">
<html>
<head>
<style>
.table > thead > tr > th,
.table > tbody > tr > th,
.table > tfoot > tr > th,
.table > thead > tr > td,
.table > tbody > tr > td,
.table > tfoot > tr > td {
padding: 1px;
}
</style>
</head>
<div class="container">
<table class="table">
<thead>
<tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
</thead>
<tbody>
<tr><td>1</td><td>2</td><td>3</td></tr>
<tr><td>4</td><td>5</td><td>6</td></tr>
</tbody>
</table>
</div>
</html>
&#13;
答案 0 :(得分:3)
在CSS选择器4中,有a functional pseudo-class :matches
,允许进行此类分组:
window
不幸的是,它目前仅适用于Safari(Chrome和Firefox也对其旧表单.table > *:matches(thead, tbody, tfoot) > tr > *:matches(th, td) { ... }
和:-webkit-any()
提供实验性支持,但它不是很有帮助。)
单个通用选择器:-moz-any()
无法匹配多个级别。它的意思是&#34;任何单个元素&#34;。但您可以按*
匹配任意元素的两个级别。
我建议使用hack来增加这样的特异性:
* > *
&#13;
.table > * > tr > *:not(#any-fictional-id) {
padding: 1px;
}
&#13;
<link rel="stylesheet" href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css">
<!-- whatever... -->
<div class="container">
<table class="table">
<thead>
<tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
</thead>
<tbody>
<tr><td>1</td><td>2</td><td>3</td></tr>
<tr><td>4</td><td>5</td><td>6</td></tr>
</tbody>
</table>
</div>
选择器具有其参数的特异性,在这种情况下,ID的特异性,肯定高于任何类的特异性。但如果有必要,您仍然可以使用:not()
覆盖它。您可以指定标记中实际不存在的任何虚构ID。
答案 1 :(得分:1)
使用选择器table.table > * > tr > th, table.table > * > tr > td
设置填充值
table, td {
border: 1px solid;
}
<link rel="stylesheet" href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css">
<html>
<head>
<style>
.table > * > tr > th, .table > * > tr > td {
padding: 1px !important;
}
</style>
</head>
<div class="container">
<table class="table">
<thead>
<tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
</thead>
<tbody>
<tr><td>1</td><td>2</td><td>3</td></tr>
<tr><td>4</td><td>5</td><td>6</td></tr>
</tbody>
</table>
</div>
</html>
答案 2 :(得分:1)
通常,这就是使用SCSS或LESS等CSS预处理器的原因。为了在更好的语法方面更能在功能上代表你的代码,即做更多的事情并少写。
您想要的SCSS版本是:
table {
thead, tbody, tfoot {
tr {
td, th {
padding: 2px;
}
}
}
}
答案 3 :(得分:0)
尝试:
.table>tbody>tr>td,
.table>tbody>tr>th,
.table>tfoot>tr>td,
.table>tfoot>tr>th,
.table>thead>tr>td,
.table>thead>tr>th{
border-top: 1px solid #e6e6e6
}
答案 4 :(得分:0)
试试这个
table, td {
border: 1px solid;
}
.table td {
padding:2px !important;
}
如果你想要&#34; th&#34;也有px填充
table, td {
border: 1px solid;
}
.table td, .table th {
padding:2px !important;
}
答案 5 :(得分:-1)
你可以这样试试
table td, table th {
border: 1px solid;
}