在上一篇CSS3选择器的研究中列出了几乎所有的CSS3选择器,和伪类选择器,当是并没有做案例的研究,本想在那篇文章里面写,但想想如果把案例都写在那篇文章里面,对于查找来说就不是很方便,所有另开一篇来讲实例。

属性选择器

[title]:选择带有title属性的元素

  

[title='hello']:选择属性是title并且值是hello的元素

  

[title~='hello']:选择属性是title并且部分值是hello的元素,hello需要是单独的值,以空格分开

  
[title*='hello']:选择属性是title并且其中包含了hello的元素

  
[title|='hello']:选择属性是title并且值是以hello开头并且允许hello后面以-的任意字符

  
[title^='hello']:属性以hello开头的任意字符

  
[title$='hello']:属性以hello结束的任意字符

  
[title^='hello'][title$='.py']:选择属性以hello开头并且以.py结束的元素

  

连结符

h1~p:选择h1元素后面的所有同级p元素

  

p~p:选择p元素后面的所有同级p元素,除了第一个p元素

  

h1+p:选择h1元素后面的第一个同级p元素

  

如果span在第一个p标签前面是不行的,因为+是选择的第一个同级元素。如果你不想限制类型,只要选择第一个,那么可以这样。

  

伪类选择器

  nth系列,数字

nth-child():按照位置来算数

  

nth-of-type():按照类型来算数

  

nth-last-child():从末尾按照位置开始算

  
nth-last-of-type():从末尾按照类型来算数

  
通过(-n+number)来指定选择前几个元素

-n会向负数方向增加先从0开始,-1,-2,-3...

  

  

使用:nth-child(odd)或:nth-child(even)实现隔行变色。

  odd

  

even

   

单个选择

first-child:选择第一个元素,按位置

  
first-of-type:选择第一个元素,按类型

  

last-child:选择最后一个元素,按位置

  
last-of-type:选择最后一个元素,按类型

  

only-child:没有其他兄弟元素的时候会被选中

  
only-of-type:可以有兄弟元素但要类型不同

  
使用only-of-type可以让你从其他类型元素中挑选出一个元素来,反之only-child需要元素单独存在才行。这个肯定有大作用,待发现。

伪类

:target

  1.   通过:target来模拟点击事件
  2.   <a href="#a" id="a"></a>
  3.   利用target实现tab栏切换
  4.   使用target伪类,可以轻松地突出显示用户要阅读的评论

利用target制作的tab切换,当然它还是有很多缺陷的,不过大家可以通过它扩展扩展。

:empty
  选择没有子元素并且没有文本节点的元素

  利用:empty给默认提示。

  

  

  不过这个得注意一下,ul不能换行必须这样写<ul></ul>如果有换行就匹配不了了。其实购物车也可以利用这个来做默认提示。

:root
  选择根元素,在HTML中root永远是html元素

  

  和用html是一样的,其他用处暂时没想到。

:not
  参数支持传递一个元素甚至其他伪类选择器,但不支持传递连结符以及伪元素
  选择除了指定参数以外的任意元素

案例1:除了span

  

案例2:除了第一个元素

案例3:除了第一个和最后一个

还有其他妙用自行开发。

:optional

  选择不是必须填写的input元素

  也就是获取到input没有加required属性的元素

  

:required

  选择有加required属性的元素

  

:read-write

  获取可读写的input元素

  

:read-only

  获取只可读的input元素

  

:out-of-range

  当input元素的值是超出范围时,max和min限定的范围,注意类型要是number

  

:valid

  选择所有合法的输入,适用于表单元素有限制,如最小输入元素和属性的最大值,电子邮件具有合法的电子邮件,或者数值等数字字段。

  

案例1:我们可以利用它给输入错误的给个提示。

取个反就好,默认给它错误的颜色。

案例2:结合:not来使用

元素状态伪类

:checked
  当checkbox被选中时

  

:disabled
  当元素被禁用时

  

:enabled
  当元素没有被禁用时

  

伪元素

::first-line
  选择第一行文字

  

::first-letter
  选择第一个字

  

::after
  在元素末尾添加一个伪元素

  

::before
  在元素开头添加一个伪元素

  

我们在制作一些小图标时就完全可以使用::after和::before,就不必再使用其他标签了。

::selection
  应用到选中的文本上

  

合理利用这些选择器,可以帮你解决很多问题,目前还在研究中,本篇内容长期更新。

CSS3选择器的研究,案例的更多相关文章

  1. CSS3 选择器——笔记+实战案例(基本选择器、组合选择器、属性选择器、伪类选择器)

    使用CSS3 选择器——笔记 CSS通过选择器控制HTML元素,CSS选择器对网页对象可以实现一对一.一对多或者多对一的匹配. 一.CSS3选择器分类 CSS选择器在CSS2.1选择器的基础上新增了属 ...

  2. CSS3选择器的研究

    属性选择器 [title]:选择带有title属性的元素 [title='hello']:选择属性是title并且值是hello的元素 [title~='hello']:选择属性是title并且部分值 ...

  3. 《图解CSS3:核心技术与案例实战》

    <图解CSS3:核心技术与案例实战> 基本信息 作者: 大漠 丛书名: Web开发技术丛书 出版社:机械工业出版社 ISBN:9787111469209 上架时间:2014-7-2 出版日 ...

  4. CSS3选择器归类整理

    CSS3选择器归类整理(附CSS优先级要点) CSS是用于网页设计可用的最强大的工具之一.使用它我们可以在几分钟内改变一个网站的界面,而不用改变页面的标签.在深入研究CSS选择器之前,我们应该先搞懂C ...

  5. 总结30个CSS3选择器

    或许大家平时总是在用的选择器都是:#id  .class  以及标签选择器.可是这些还远远不够,为了在开发中更加得心应手,本文总结了30个CSS3选择器,希望对大家有所帮助. 1 *:通用选择器 ;; ...

  6. 总结30个CSS3选择器(转载)

    或许大家平时总是在用的选择器都是:#id  .class  以及标签选择器.可是这些还远远不够,为了在开发中更加得心应手,本文总结了30个CSS3选择器,希望对大家有所帮助. 1 *:通用选择器 * ...

  7. CSS3 选择器——属性选择器

    上一节在<CSS3选择器——基本选择器>中主要介绍了CSS3选择器的第一部分,这节主要和大家一起来学习CSS3选择器的第二部分——属性选择器.属性选择器早在CSS2中就被引入了,其主要作用 ...

  8. css3 选择器(三)

    接css3选择器(一) 接css3 选择器(二) 这篇和前两篇内容相关性不大,主要是涉及到一些css3的状态选择器,所以标题从一开始. 一.[:enabled]选择器 一看这个属性就知道是专为表单元素 ...

  9. CSS3选择器介绍

    1.css3属性选择器 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

随机推荐

  1. 详细!交叉编译时 note: the mangling of 'va_list' has changed in GCC 4.4解决办法

    为什么要在标题前面加了详细两个字,就是为了吸引看文章的你还有写文章的我这种小白,我是从坑里面爬出来了. 废话少说.... 问题就是这样子了,至于解决办法,在网上搜索了很久,大多数以一段英文作为解决办法 ...

  2. json排序 摘自百度

    var sortBy = function (filed, rev, primer) {    rev = (rev) ? -1 : 1;    return function (a, b) {    ...

  3. 开源的EtherCAT Master简介

    EtherCAT的主站开发是基于EtherCAT机器人控制系统的开发中非常重要的环节.目前常见开源的主站代码为的RT-LAB开发的SOEM (Simple OpenSource EtherCAT Ma ...

  4. 实现IBatisNet的Dialect分页

    Hibernate有其独有的Dialect,对不同的数据库实现sql的分页. 用过MyBatis for Java,它可以拦截SQL语句,通过Interceptor对原始的sql语句进行修改,也就是可 ...

  5. ORACLE10g创建表空间,角色与授权

    创建基础表空间,创建用户,授权. -- CREATE TABLESPACE CREATE TABLESPACE TS_JK_LAB_BASIC DATAFILE 'D:\TOOLS\ORACLE\PR ...

  6. array new 与 array deletedelete

    以前在看C++书和上C++课的时候可以看到 delete[] pointer; 的用法,而大多数对于这个用法没有具体的解释,多是看到: 有一个delete运算符的特殊语法,可以释放动态分配的数组内存: ...

  7. C#实现 word、pdf、ppt 转为图片

    office word文档.pdf文档.powerpoint幻灯片是非常常用的文档类型,在现实中经常有需求需要将它们转换成图片 -- 即将word.pdf.ppt文档的每一页转换成一张对应的图片,就像 ...

  8. Web端导出CSV

    前端导出文件大部分还是通过服务器端的方式生成文件,然后传递到客户端.但很多情况下当我们导出CSV时并不需要后端参与,甚至没有后端. 做过WebGIS的同学经常会碰到这种场景,用户的兴趣点数据以csv文 ...

  9. 作业三:PSP记录个人项目耗时情况

    PSP2.1        Personal Software Process Stages Time Planning  计划    20min              Estimate 估计开发 ...

  10. kafka的一些认识

    原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com   近来无事研究了一下kafka,并且用golang连接kafka做了producer和consumer的简单测试 ...