OTA*_*TAR 750 css css-selectors
我有一个div包含几个ul标签的标签.
我ul只能为第一个标签设置CSS属性:
div ul:first-child {
background-color: #900;
}
Run Code Online (Sandbox Code Playgroud)
但是,我以下尝试为ul除第一个标记之外的其他标记设置CSS属性不起作用:
div ul:not:first-child {
background-color: #900;
}
div ul:not(:first-child) {
background-color: #900;
}
div ul:first-child:after {
background-color: #900;
}
Run Code Online (Sandbox Code Playgroud)
我怎么能写CSS:"每个元素,除了第一个"?
Jon*_*Jon 1286
一个您发布的版本的实际工作为所有现代浏览器(如CSS选择3级的支持):
div ul:not(:first-child) {
background-color: #900;
}
Run Code Online (Sandbox Code Playgroud)
如果您需要支持旧版浏览器,或者您受到:not选择器限制的阻碍(它只接受一个简单的选择器作为参数),那么您可以使用另一种技术:
定义一个比你想要的范围更大的规则,然后有条件地"撤销"它,将其范围限制为你想要的范围:
div ul {
background-color: #900; /* applies to every ul */
}
div ul:first-child {
background-color: transparent; /* limits the scope of the previous rule */
}
Run Code Online (Sandbox Code Playgroud)
限制范围时,请使用您正在设置的每个CSS属性的默认值.
Ale*_*inn 150
这个CSS2解决方案("任何一个ul接一个ul")也可以工作,并且得到更多浏览器的支持.
div ul + ul {
background-color: #900;
}
Run Code Online (Sandbox Code Playgroud)
与:not和不同:nth-sibling,IE7 +支持相邻的兄弟选择器.
如果在页面加载后有JavaScript更改这些属性,您应该查看IE7和IE8实现中的一些已知错误. 看到这个链接.
对于任何静态网页,这应该是完美的.
ed1*_*nh0 75
由于IE6-8:not不接受,我建议你:
div ul:nth-child(n+2) {
background-color: #900;
}
Run Code Online (Sandbox Code Playgroud)
所以,你选择的每一个ul在它的父元素除了第一个.
有关更多示例,请参阅Chris Coyer的"有用:n-child Recipes"一文.nth-child
wah*_*wan 48
您可以在“not()”伪类中使用“first-child”伪类。
div ul:not(:first-child){
background-color: #900;
}Run Code Online (Sandbox Code Playgroud)
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pseudo Classes</title>
</head>
<body>
<div>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Products</a></li>
</ul>
<ul>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
<ul>
<li><a href="#">Services</a></li>
<li><a href="#">Downloads</a></li>
</ul>
<ul>
<li><a href="#">Facebook</a></li>
<li><a href="#">Instagram</a></li>
</ul>
</div>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
替代方法,
div ul:not(:nth-child(1)){
background-color: #900;
}Run Code Online (Sandbox Code Playgroud)
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pseudo Classes</title>
</head>
<body>
<div>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Products</a></li>
</ul>
<ul>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
<ul>
<li><a href="#">Services</a></li>
<li><a href="#">Downloads</a></li>
</ul>
<ul>
<li><a href="#">Facebook</a></li>
<li><a href="#">Instagram</a></li>
</ul>
</div>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
使用“nth-of-type()”,它将选择其父元素的第 n 个元素。
div ul:not(:nth-of-type(1)){
background-color: #900;
}Run Code Online (Sandbox Code Playgroud)
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pseudo Classes</title>
</head>
<body>
<div>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Products</a></li>
</ul>
<ul>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
<ul>
<li><a href="#">Services</a></li>
<li><a href="#">Downloads</a></li>
</ul>
<ul>
<li><a href="#">Facebook</a></li>
<li><a href="#">Instagram</a></li>
</ul>
</div>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
使用“nth-last-child()”,它将选择从最后一个孩子开始计数的第n个孩子。如果有4个“ul”标签,可以这样写。
div ul:not(:nth-last-child(4)){
background-color: #900;
}Run Code Online (Sandbox Code Playgroud)
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pseudo Classes</title>
</head>
<body>
<div>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Products</a></li>
</ul>
<ul>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
<ul>
<li><a href="#">Services</a></li>
<li><a href="#">Downloads</a></li>
</ul>
<ul>
<li><a href="#">Facebook</a></li>
<li><a href="#">Instagram</a></li>
</ul>
</div>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
div ul:not(:nth-last-of-type(4)){
background-color: #900;
}Run Code Online (Sandbox Code Playgroud)
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pseudo Classes</title>
</head>
<body>
<div>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Products</a></li>
</ul>
<ul>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
<ul>
<li><a href="#">Services</a></li>
<li><a href="#">Downloads</a></li>
</ul>
<ul>
<li><a href="#">Facebook</a></li>
<li><a href="#">Instagram</a></li>
</ul>
</div>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
这些是处理此类情况的一些最佳方法。
Vin*_*oia 12
not(:first-child)似乎不再起作用了.至少使用最新版本的Chrome和Firefox.
相反,试试这个:
ul:not(:first-of-type) {}
Run Code Online (Sandbox Code Playgroud)
你可以:not像下面这样使用你的选择器,你可以在里面使用任何选择器:not()
any_CSS_selector:not(any_other_CSS_selector){
/*YOUR STYLE*/
}
Run Code Online (Sandbox Code Playgroud)
您也可以在
:not没有父选择器的情况下使用。
:not(:nth-child(2)){
/*YOUR STYLE*/
}
Run Code Online (Sandbox Code Playgroud)
更多例子
any_CSS_selector:not(:first-child){
/*YOUR STYLE*/
}
any_CSS_selector:not(:first-of-type){
/*YOUR STYLE*/
}
any_CSS_selector:not(:checked){
/*YOUR STYLE*/
}
any_CSS_selector:not(:last-child){
/*YOUR STYLE*/
}
any_CSS_selector:not(:last-of-type){
/*YOUR STYLE*/
}
any_CSS_selector:not(:first-of-type){
/*YOUR STYLE*/
}
any_CSS_selector:not(:nth-last-of-type(2)){
/*YOUR STYLE*/
}
any_CSS_selector:not(:nth-last-child(2)){
/*YOUR STYLE*/
}
any_CSS_selector:not(:nth-child(2)){
/*YOUR STYLE*/
}
Run Code Online (Sandbox Code Playgroud)
小智 5
You can use any selector with not
p:not(:first-child){}
p:not(:first-of-type){}
p:not(:checked){}
p:not(:last-child){}
p:not(:last-of-type){}
p:not(:first-of-type){}
p:not(:nth-last-of-type(2)){}
p:not(nth-last-child(2)){}
p:not(:nth-child(2)){}
Run Code Online (Sandbox Code Playgroud)