一、特殊选择器

1、* 用于匹配任何的标记

2、> 用于指定父子节点关系

3、E + F 毗邻元素选择器,匹配所有紧随E元素之后的同级元素F

4、E ~ F 匹配所有E元素之后的同级元素F

5、名称[表达式]

5.1 E[att] 匹配所有具有att属性的E元素([att]获取所有的定义了att的标签;E[att=val] 匹配所有att属性等于“val”的E元素;

5.2 [att=val] 获取所有定义了att属性并且属性值等于val的标签;

5.3 [att^=val]获取所有定义了att属性并且属性值以val开头的标签;

5.4 [att$=val]获取所有定义了att属性并且属性值以val结尾的标签;

5.5 [att*=val]获取所有定义了att属性并且属性值包含val字符的标签;

5.6 [att~=val]获取所有定义了att属性并且属性值包含val单词的标签;

5.7 [att|=val]获取所有定义了att属性并且属性值等于val或者以val-开头的标签。)

6、伪类/伪元素

6.1 css 伪类用于向某些选择器添加特殊的效果。css 伪元素用于将特殊的效果添加到某些选择器。

可以明确两点,第一两者都与选择器相关,第二就是添加一些“特殊”的效果。这里特殊指的是两者描述了其他 css 无法描述的东西。

伪类种类伪元素种类区别

这里用伪类 :first-child 和伪元素 :first-letter 来进行比较。

  1. p>i:first-child {color: red}
  2.  
  3. <p><i>first</i><i>second</i></p> //伪类 :first-child 添加样式到第一个子元素

如果我们不使用伪类,而希望达到上述效果,可以这样做:

  1. .first-child {color: red}<p><i class="first-child">first</i><i>second</i></p>

即我们给第一个子元素添加一个类,然后定义这个类的样式。那么我们接着看看为元素:

  1. :p:first-letter {color: red}<p>i am stephen lee.</p> //伪元素 :first-letter 添加样式到第一个字母

那么如果我们不使用伪元素,要达到上述效果,应该怎么做呢?

  1. .first-letter {color: red}
    <p><span class='first-letter'>i</span> am stephen lee.</p>

即我们给第一个字母添加一个 span,然后给 span 增加样式。

两者的区别已经出来了。那就是:

伪类的效果可以通过添加一个实际的类来达到,而伪元素的效果则需要通过添加一个实际的元素才能达到,这也是为什么他们一个称为伪类,一个称为伪元素的原因。

总结:

伪元素和伪类之所以这么容易混淆,是因为他们的效果类似而且写法相仿,但实际上 css3 为了区分两者,已经明确规定了伪类用一个冒号来表示,而伪元素则用两个冒号来表示。

:pseudo-classes::pseudo-elements但因为兼容性的问题,所以现在大部分还是统一的单冒号,但是抛开兼容性的问题,我们在书写时应该尽可能养成好习惯,区分两者。

简单的说呢:伪元素的权重比伪类高,比如一个容器的为元素和伪类都定义了同一属性,但值不一样,那么将采用伪元素的。 从规范的角度伪元素一个页面只使用一次,而伪类可以多次使用。伪元素产生新对象,在dom中看不到,但是可以操作;伪类是dom中一个元素的不同状态;

6.1 常用的伪类

6.1.1 a:hover,a:link,a:active,a:visited,:focus /*动态伪类*/

6.1.2 :disabled,:enabled,:checked,:read-only,:read-write /*UI状态伪类*/

6.1.2.1 :read-only 只读状态

6.1.2.2 :read-write 非只读状态

6.1.3 css3伪类

6.1.3.1 :nth-child(n)其父元素的第n个元素(如:p:nth-child(2){color:red;} p元素是其父元素的第2个元素的话字体颜色就是红色)

6.1.3.2 nth-last-child(n) 其父元素的倒数第n个元素

6.1.3.3 :nth-of-type(n) (如:p:nth-of-type(2){color:red;} p元素是其父元素的第2个p元素的话字体颜色就是红色)

6.1.3.4 :first-child 其父元素的第一个元素

6.1.3.5 :last-child 其父元素的最后一个元素

6.1.3.6 nth-last-of-type(n) (如:p:nth-last-of-type(2){color:red;} p元素是其父元素的倒数2个p元素的话字体颜色就是红色)

6.1.3.7 :first-of-type 其父元素的第一个p元素

6.1.3.8 :last-of-type 其父元素的最后一个p元素

6.1.4 :not() /*否定伪类选择器*/ (如:p:not(.a){color:red;})

6.2 常用的伪元素

 6.2.1 :before,::after

  1. <style type="text/css">
  2. p::before
  3. {
  4. content:"台词:";
  5. }
  6. </style>
  7. </head>
  8. <body>
  9. <p>我是唐老鸭。</p>
  10. <p>我住在 Duckburg。</p>
  11. <p><b>注释:</b>对于在 IE8 中工作的 :before,必须声明 DOCTYPE。</p>
  12. </body>

6.2.2 ::first-letter

  1. <style type="text/css">
  2. p::first-letter
  3. {
  4. color:red;
  5. }
  6. </style>
  7. </head>
  8. <body>
  9. <p>我是唐老鸭。</p>
  10. <p>我住在 Duckburg。</p>
  11. <p><b>注释:</b>对于在 IE8 中工作的 :before,必须声明 DOCTYPE。</p>
  12. </body>

6.2.3 ::first-line

  1. <style type="text/css">
  2. p::first-line
  3. {
  4. color:red;
  5. }
  6. </style>
  7. </head>
  8. <body>
  9. <p>我是唐老鸭。</p>
  10. <p>我住在 Duckburg。</p>
  11. <p><b>注释:</b>对于在 IE8 中工作的 :before,必须声明 DOCTYPE。注释:</b>对于在 IE8 中工作的 :before,必须声明 DOCTYPE。注释:</b>对于在 IE8 中工作的 :before,必须声明 DOCTYPE。注释:</b>对于在 IE8 中工作的 :before,必须声明 DOCTYPE。</p>
  12. </body>

6.2.4 ::selection

  1. <style type="text/css">
  2. ::selection
  3. {
  4. color:red;
  5. background-color:#00F;
  6. }
  7. </style>
  8. </head>
  9. <body>
  10. <p>我是唐老鸭。</p>
  11. <p>我住在 Duckburg。</p>
  12. <p><b>注释:</b>对于在 IE8 中工作的 :before,必须声明 DOCTYPE。注释:</b>对于在 IE8 中工作的 :before,必须声明 DOCTYPE。注释:</b>对于在 IE8 中工作的 :before,必须声明 DOCTYPE。注释:</b>对于在 IE8 中工作的 :before,必须声明 DOCTYPE。</p>
  13. </body>

二、CSS权重

1、权重列表

  1. <style>
  2. /*A>B>C>D>0*/
  3. .main-content{color:#666;}/*0*/
  4. h3{color:#f00;}/*D*/
  5. .h3{color:#0f0;}/*C*/
  6. .main-content h3{color:#00f;}/*CD*/
  7. .main-content .h3{color:#0ff;}/*CC*/
  8. #h3{color:#ff0;}/*B*/
  9. </style>
  10. </head>
  11. <body>
  12. <div class="main-content">
  13. <h3 class="h3" id="h3">你好</h3>
  14. </div>
  15. </body>

三、CSS3新增属性

1、定义文本样式

1.1 文字阴影text-shadow

  1. <style>
  2. p
  3. {
  4. font-size:60px;
  5. font-weight:900;
  6. color:#999;
  7. text-shadow:5px 5px 5px #333,/*水平位移、垂直位移、模糊半径、颜色*/
  8. -15px 15px 5px #333,
  9. -15px -15px 5px #333;
  10. }
  11. </style>
  12. </head>
  13. <body>
  14. <p>HTML5+CSS3</p>
  15. </body>

1.2 文字缩进text-indent

1.3 文本换行

  1. <style>
  2. p
  3. {
  4. width:100px;
  5. border:solid 1px red;
  6. word-wrap:break-word;/*断单词*/
  7. word-break:break-all;/*断字符*/
  8. white-space:nowrap;/*强制在一行内显示所有文本*/
  9. }
  10. </style>
  11. </head>
  12. <body>
  13. <p>中英混对萨排的时候English English English English English</p>
  14. </body>

1.4 文本溢出

  1. <style type="text/css">
  2. div
  3. {
  4. width:200px;
  5. white-space:nowrap;
  6. border:solid 1px red;
  7. text-overflow:clip;/*不显示省略标记,而是简单的裁切掉*/
  8. text-overflow:ellipsis;/*当对象内文本溢出时显示省略标记*/
  9. overflow:hidden;
  10. }
  11. </style>
  12. </head>
  13.  
  14. <body>
  15. <div>的撒打算打算打算大神大神大神大神大神</div>
  16. </body>

1.5 圆角 border-radius

1.6 阴影 box-shadow

1.7 背景图片铺满 background-size:cover

1.8 transform

  1. <style type="text/css">
  2. #d1
  3. {
  4. width:100px;
  5. height:100px;
  6. background-color:#00F;
  7. }
  8. #d1:hover
  9. {
  10. transform:rotate(40deg) scale(1.2);/*顺时针旋转40度,放大1.2倍*/
  11. transform:translate(40px,40px);/*水平偏移40px,垂直偏移40px*/
  12. transform:skew(30deg,-10deg);/*水平倾斜30度,垂直倾斜10度*/
  13. }
  14. </style>
  15. </head>
  16.  
  17. <body>
  18. <div id="d1"></div>
  19. </body>

1.9 平滑过渡 transition

  1. <style type="text/css">
  2. #d1
  3. {
  4. width:100px;
  5. height:100px;
  6. background-color:#00F;
  7. }
  8. #d1:hover
  9. {
  10. background-color:#F00;
  11. transition:background-color 1s ease-in;/*过渡的属性,如果是所有的则是all,经历的时间,过渡效果*/
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <div id="d1"></div>
  17. </body>

2.0 更复杂的动画 animation

  1. <style type="text/css">
  2. #d1
  3. {
  4. magin:0px auto;
  5. width:959px;
  6. height:613px;
  7. background-image:url("11.jpg");
  8. animation:x-spin 20s infinite linear;/*动画名称,经历时间,播放次数(为infinite则一直播放),播放方式*/
  9. }
  10. @-webkit-keyframes x-spin
  11. {
  12. 0%{
  13. transform:rotateX(0deg);/*沿x轴开始旋转*/
  14. }
  15. 50%{
  16. transform:rotateX(180deg);/*沿x轴旋转180*/
  17. }
  18. 10%{
  19. transform:rotateX(360deg);/*沿x轴旋转360*/
  20. }
  21. }
  22. </style>
  23. </head>
  24. <body>
  25. <div id="d1"></div>
  26. </body>
  1. <style type="text/css">
  2. #d1
  3. {
  4. width:100px;
  5. height:100px;
  6. background:red;
  7. position:relative;
  8. animation:mymove 5s infinite;
  9. }
  10.  
  11. @keyframes mymove
  12. {
  13. from {left:0px;}
  14. to {left:200px;}
  15. }
  16. </style>
  17. </head>
  18. <body>
  19. <div id="d1"></div>
  20. </body>

2.1 渐变

  1. <style type="text/css">
  2. #d1
  3. {
  4. height:200px;
  5. width:400px;
  6. border:solid 1px red;
  7. /*线性渐变,开始位置,结束位置,开始的颜色,结束的颜色,色标(色标位置,色标颜色,可以有多个色标,色标即是颜色过渡点)*/
  8. //background:-webkit-gradient(linear,left top,left bottom,from(blue),to(red),color-stop(0.4,#fff),color-stop(0.6,#fff));
  9. /*径向渐变,内圆圆心位置,内圆半径,外圆圆心半径,外圆半径,开始颜色,结束颜色,色标*/
  10. background:-webkit-gradient(radial, center center, 0, center center, 460, from(blue), to(red),color-stop(0.6,#fff));
  11. }
  12.  
  13. </style>
  14. </head>
  15. <body>
  16. <div id="d1"></div>
  17. </body>

2.2 响应式布局

  1. <style type="text/css">
  2. /*屏幕宽度大于900的时候*/
  3. *
  4. {
  5. padding:0px;
  6. margin:0px;
  7. font-family:"微软雅黑";
  8. }
  9. #header
  10. {
  11. height:100px;
  12. border:solid 1px red;
  13. margin:0px auto;
  14. }
  15. #main
  16. {
  17. margin:10px auto;
  18. height:400px;
  19. }
  20. #footer
  21. {
  22. margin:0px auto;
  23. height:100px;
  24. border:solid 1px red;
  25. }
  26. @media screen and (min-width:900px)
  27. {
  28. #header,#footer
  29. {
  30. width:800px;
  31. }
  32. #main
  33. {
  34. width:800px;
  35. height:400px;;
  36. }
  37. #main-left
  38. {
  39. width:200px;
  40. height:400px;
  41. border:solid 1px red;
  42. float:left;
  43. }
  44. #main-center
  45. {
  46. width:394px;
  47. height:400px;
  48. border:solid 1px red;
  49. float:left;
  50. }
  51. #main-right
  52. {
  53. width:200px;
  54. height:400px;
  55. border:solid 1px red;
  56. float:left;
  57. }
  58. }
  59. @media screen and (min-width:600px) and (max-width:900px)
  60. {
  61. #header,#footer
  62. {
  63. width:600px;
  64. }
  65. #main
  66. {
  67. width:600px;
  68. height:400px;;
  69. }
  70. #main-left
  71. {
  72. width:200px;
  73. height:400px;
  74. border:solid 1px red;
  75. float:left;
  76. }
  77. #main-center
  78. {
  79. width:396px;
  80. height:400px;
  81. border:solid 1px red;
  82. float:left;
  83. }
  84. #main-right
  85. {
  86. display:none;
  87. }
  88. }
  89. @media screen and (max-width:600px)
  90. {
  91. #header,#footer
  92. {
  93. width:300px;
  94. }
  95. #main
  96. {
  97. width:300px;
  98. height:400px;;
  99. }
  100. #main-left
  101. {
  102. display:none;
  103. }
  104. #main-center
  105. {
  106. width:300px;
  107. height:400px;
  108. border:solid 1px red;
  109. }
  110. #main-right
  111. {
  112. display:none;
  113. }
  114. }
  115. </style>
  116. </head>
  117. <body>
  118. <div id="header">头部</div>
  119. <div id="main">
  120. <div id="main-left">主题-左边</div>
  121. <div id="main-center">主题-中间</div>
  122. <div id="main-right">主题-右边</div>
  123. </div>
  124. <div id="footer"></div>
  125. </body>

CSS你可能还不知道的一些知识点的更多相关文章

  1. JS你可能还不知道的一些知识点(一)

    js程序是用Unicode字符集编写的, 2.转义字符:反斜线 1 2 3 4 function Test(){   var s='you\'re right,it can\'t be a quote ...

  2. html你可能还不知道的一些知识点

    一.标签语义化 html标签语义化是让大家直观的认识标签和属性的用途和作用,好处最主要的是对搜索引擎友好. Eg: 1.如果你想在页面中突出"奥巴马"这三个字,让搜索引擎重视它,如 ...

  3. [转载]或许您还不知道的八款Android开源游戏引擎

    或许您还不知道的八款Android开源游戏引擎         分类:             技术文章              2010-08-04 20:27     17430人阅读     ...

  4. redis-cli中那些或许我们还不知道的一些实用小功能

    玩过redis的朋友都知道,redis中有一个叫做redis-cli的小工具,我们可以利用它在test和develop环境下进行高效的模拟测试,然而在现实环境中, 我们只知道直接键入redis-cli ...

  5. 或许您还不知道的八款Android开源游戏引擎

    很多初学Android游戏开发的朋友,往往会显得有些无所适从,他们常常不知道该从何处入手,每当遇到自己无法解决的难题时,又往往会一边羡慕于iPhone下有诸如Cocos2d-iphone之类的免费游戏 ...

  6. css文本换行你所不知道的技巧

    前言:这是最近翻译的一篇文章 我在header标签开头忘里边加入一个span标签的时候,有一点小问题.我总是想确保在span标签之前能够换行.明确地讲,在标签前边加入<br> 并没有什么错 ...

  7. jdk1.8新特性,还不知道的朋友还不看看,1.9都快出来了

    一.接口的默认方法 Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下:代码如下:interface Formula {     ...

  8. iPhone 上你可能还不知道的小技巧

    用了这么久的 iPhone,这些技巧你可能都还不知道哦. 1.怎么用耳机切歌? 将耳机的话筒部位的中间(平时暂停用的,按一下)连按两下 即可. 连按两下,下一首. 连按三下,上一首. 2.摇一摇,相当 ...

  9. 你可能还不知道的关于JavaScript类型的细节?

    类型 七种类型: Undefined Null Boolean String Number Symbol Object Undefined.Null 阅读问题:为什么有的编程规范要求使用void 0 ...

随机推荐

  1. 微信小程序开发教程

    9月21日晚发布的微信公众平台·小程序内侧邀请,微信应用号(小程序,「应用号」的新称呼)终于来了!目前还处于内测阶段,微信只邀请了部分企业参与封测.想必大家都关心应用号的最终形态到底是什么样子? 怎样 ...

  2. poi读取excel模板,填充内容并导出,支持导出2007支持公式自动计算

    /** * 版权所有(C) 2016 * @author www.xiongge.club * @date 2016-12-7 上午10:03:29 */ package xlsx; /** * @C ...

  3. 301和302 Http状态有啥区别?

    301和302 Http状态有啥区别? 301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于: 301 redirect: 301 代表永久性转移(Permanently ...

  4. ArcGIS Engine开发之图形查询

    图形查询是以用户通过鼠标操作生成的图形几何体为输入条件进行查询的查询,其查询结果为该几何体空间范围内的所有要素.常用的查询方式包括点选.线选.多边形选择.圆形选择和矩形选择等. 相关类与接口 图像查询 ...

  5. 案例借鉴 | 某通讯巨头的IT建设方案

    成都联通作为合并重组后的中国联通在成都的分支机构,拥有基础扎实的通信网络和当前最先进技术的WCDMA网络.随着3G和4G业务的发展领先,成都联通凭借其出色的网络能力和服务,在用户中赢得了口碑. 在IT ...

  6. 移动信息化不能延续PC时代的痛

    当下,随着移动时代的到来,手机功能逐步完善,各个行业针对这一现象纷纷制定了相应的营销计划,于是霎时间兴起了一股网上订票/网上订饭/网上预约的热潮. 而对于IT行业,成为企业信息化最火的代名词莫过于移动 ...

  7. sqoop:Failed to download file from http://hdp01:8080/resources//oracle-jdbc-driver.jar due to HTTP error: HTTP Error 404: Not Found

    环境:ambari2.3,centos7,sqoop1.4.6 问题描述:通过ambari安装了sqoop,又添加了oracle驱动配置,如下: 保存配置后,重启sqoop报错:http://hdp0 ...

  8. Linux初识二

    1. Linux上常用的文件管理命令及使用 (1) CP命令:复制文件或文件夹语法格式 cp [OPTION]... [-T] SOURCE DEST // 单源复制 cp [OPTION]... S ...

  9. Bootsrap基本应用

    Bootsrap 用法: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  10. java util 下的concurrent包

    ------------------------------------------java util 下的concurrent包--------并发包--------------------.jav ...