你应该知道的30个css选择器

2020-05-08 08:53:54易采站长站整理

color: white;
list-style: none;
padding-left: 0;
}
li {
padding: 10px;
border-bottom: 1px solid black;
border-top: 1px solid #3c3c3c;
}

这个样式会设置一个背景,删除浏览器默认的ul的padding值,并定义边框给每一个li来提供一点深度。

如上图所示,唯一的问题是最上面的边框和最下面的边框看起来有点儿怪。让我们来使用:first-child和:last-child来解决这个问题。


li:first-child {
border-top: none;
}
li:last-child {
border-bottom: none;
}

看上图,解决了不是。

查看例子

兼容性

•IE9+
•Firefox
•Chrome
•Safari
•Opera
是滴,IE8支持 first-child 不过不支持last-child。

28. X:only-child


div p:only-child {
color: red;
}

实话说,你很可能会发现你不会经常使用 only-child伪类。尽管如此,它确实有用,你应该需要它。

它可以帮助你选择是父节点的独生子(没别的孩子啦)的元素。例如,使用上面的代码,只有是div的唯一子孩子的p段落才会定义其颜色为red。

让我们来假定下面的标记。


<div><p> My paragraph here. </p></div>
<div>
<p> Two paragraphs total. </p>
<p> Two paragraphs total. </p>
</div>

这样,第二个div的p标签的内容不会被选中。只有第一个div的p才会被选中。

查看例子

兼容性

•IE9+
•Firefox
•Chrome
•Safari
•Opera

29. X:only-of-type



li:only-of-type {
font-weight: bold;
}

这种结构的伪类有几种灰常聪明的用法。它可以选定在其父节点内没有兄弟节点的元素。例如,我们可以选择只有一个li作为其子孩子的ul。

首先,取决于你想怎样完成这一目标。你可以使用 ul li,不过,这回选择所有li元素。唯一的办法是使用only-of-type。


ul > li:only-of-type {
font-weight: bold;
}

查看例子

兼容性

•IE9+
•Firefox 3.5+
•Chrome
•Safari
•Opera

30. X:first-of-type

first-of-type 伪类可以让你选择该类型的第一个兄弟节点。

一个测试

为了更好地理解它,让我们来测试一下啊。拷贝下面的标记到你的编辑器。


<div>
<p> My paragraph here. </p>
<ul>
<li> List Item 1 </li>
<li> List Item 2 </li>
</ul>
<ul>
<li> List Item 3 </li>