总结30个CSS3选择器

时间:2017-05-08

当使用.clear-fix技巧时许多属性都是第一次被使用到里面的。

.clearfix:after {
    content: "";
    display: block;
    clear: both;
    visibility: hidden;
    font-size: 0;
    height: 0;
  }
 
.clearfix { 
   *display: inline-block; 
   _height: 1%;
}

上面这段代码会在目标标签后面补上一段空白,然后将它清除。这个方法你一定得放你的聚宝盆里面。特别是当overflow:hidden方法不顶用的时候,这招就特别管用了。  

根据CSS3标准规定,可以使用两个冒号::。然后为了兼容性,浏览器也会接受一个冒号的写法。其实在这个情况下,用一个冒号还是比较明智的。

19 selector:hover  : 伪类选择器

div:hover {
  background: #e3e3e3;
}

不用说,大家肯定知道它。官方的说法是user action pseudo class.听起来有点儿迷糊,其实还好。如果想在用户鼠标飘过的地方涂点儿彩,那这个伪类写法可以办到。  

注意:旧版本的IE只会对加在锚点a标签上的:hover伪类起作用。  

通常大家在鼠标飘过锚点链接时候加下边框的时候用到它。

a:hover {
 border-bottom: 1px solid black;
}

专家提示:border-bottom:1px solid black;比text-decoration:underline;要好看很多。

20 selector1:not(selector2) : 伪类选择器

div:not(#container) {
   color: blue;
}

取反伪类是相当有用的,假设我们要把除id为container之外的所有div标签都选中。那上面那么代码就可以做到。  

或者说我想选中所有出段落标签之外的所有标签

:not(p) {
  color: green;
}

21 selector::pseudoElement : 伪类选择器

p::first-line {
  font-weight: bold;
  font-size:1.2em;
}

我们可以使用::来选中某标签的部分内容,如第一段,或者是第一个字。但是记得必须使用在块式标签上才起作用。  

伪标签是由两个冒号 :: 组成的  

定位第一个字:

p::first-letter {
   float: left;
   font-size: 2em;
   font-weight: bold;
   font-family: cursive;
   padding-right: 2px;
}

上面这段代码会找到页面上所有段落,并且指定为每一段的第一个字。

它通常在一些新闻报刊内容的重点突出会使用到。

定位某段的第一行

p::first-line {
   font-weight: bold;
   font-size: 1.2em;
}

跟::first-line相似,会选中段落的第一行  

为了兼容性,之前旧版浏览器也会兼容单冒号的写法,例如:first-line,:first-letter,:before,:after.但是这个兼容对新介绍的特性不起作用。

22 selector:nth-child(n) : 伪类选择器

li:nth-child(3) {
   color: red;
}

还记得我们面对如何取到堆叠式标签的第几个元素时无处下手的时光么,有了nth-child那日子就一去不复返了。  

请注意nth-child接受一个整形参数,然后它不是从0开始的。如果你想获取第二个元素那么你传的值就是li:nth-child(2).  

我们甚至可以获取到由变量名定义的个数个子标签。例如我们可以用li:nth-child(4n)去每隔3个元素获取一次标签。

23 selector:nth-last-child(n) : 伪类选择器

li:nth-last-child(2) {
   color: red;
}

假设你在一个ul标签中有N多的元素,而你只想获取最后三个元素,甚至是这样li:nth-child(397),你可以用nth-last-child伪类去代替它。

24 selectorX:nth-of-type(n) : 伪类选择器

ul:nth-of-type(3) {
   border: 1px solid black;
}

曾几何时,我们不想去选择子节点,而是想根据元素的类型来进行选择。  

想象一下有5个ul标签。如果你只想对其中的第三个进行修饰,而且你也不想使用id属性,那你就可以使用nth-of-type(n)伪类来实现了,上面的那个代码,只有第三个ul标签会被设置边框。

25 selector:nth-last-of-type(n) : 伪类选择器  

ul:nth-last-of-type(3) {
   border: 1px solid black;
}

同样,也可以类似的使用nth-last-of-type来倒序的获取标签。

26 selector:first-child : 伪类选择器

ul li:first-child {
   border-top: none;
}

这个结构性的伪类可以选择到第一个子标签,你会经常使用它来取出第一个和最后一个的边框。  

假设有个列表,每个标签都有上下边框,那么效果就是第一个和最后一个就会看起来有点奇怪。这时候就可以使用这个伪类来处理这种情况了。

27 selector:last-child : 伪类选择器

ul > li:last-child {
   color: green;
}

跟first-child相反,last-child取的是父标签的最后一个标签。  

例如  

  • 共4页:
  • 上一页
  • 3/4
  • 下一页
  • 上一篇:深入理解css中vertical-align属性 下一篇:CSS实现Tab布局的简单实例(必看)

    相关文章

    最新文章