伪类与伪元素不同:

css伪类:link visited active first-child hover focus

css3伪类:nth-child() nth-last-child() first-of-type last-of-type nth-of-type() nth-last-of-type() :target :checked :enabled :empty :disable

伪元素:before after

如果伪元素只需要兼容webkit firefox opera 伪元素前最好用双冒号::,如果不得不兼容ie,用单冒号:

link是未点击时使用的样式,active是点击时使用的样式 visited是点击过后使用的样式。(a标签常用link active visited 这三个伪类)

hover是鼠标悬停在指定元素上使用的样式。focus是元素获得光标标点时使用的样式,通常用于文本的输入

小案例:利用伪元素来改变按钮背景颜色

p:hover:before{}给定位覆盖比如rgba(255,255,255,.2)如果覆盖白色半透明层会使其更亮。

覆盖同理覆盖黑色半透明层会使其更暗rgba(0,0,0,.2)

除了rgba 还有HSL    hsl(0,100%,100%) 色相 饱和度 亮度

目前css css3没有父元素选择器,后代选择器居多。

兄弟元素:拥有相同父级,且自身等级相同。

兄弟元素选择器:分两种 1.+  p +span 选择p后的第一个兄弟span

                                          2.~  p~span  选择p后所有的兄弟span

1.first-of-type:第一个eg:选中了 div里的第一个p,以及div之外的第一个p.

2.last-of-type(最后一个)

3.nth-of-type(number)  从上向下数 eg: nth-of-type(2) 选中第二个

4.ntn-last-of-type(number) 从下向上数 egnth-last-of-type(2) :倒数第二个 

5.first-child:第一个子元素且位置必须是第一个,会受到其它元素的位置影响 eg:p:first-child 

                   可能有多个值,当不同父级之下都有p且都在第一个

 

6.last-child

7.nth-child(number):

利用以上选择器做: 可以同时选中两行商品任何一个,这里用作清除margin

♥nth-child(n) nth-of-type nth-last-of-type 括号里面可以放n(全选),2n+1(奇数) 2n(偶数) 3n(3的倍数)

type与child,一般都可以,child更死性,type与nth之间有of,child与nth之间没有of,且-of-type找的可能是父级 child找的是子级

not()(否定选择器)括号内可以放类名或者id名也可放其它选择器:eg:div:not(.m){}  选择除了类名为m的div

                                                                                                              div.not(:last-child){}选择除了最后一个子元素div的其它div.

                                                                                                                          括号内用选择器的话,前面要加上冒号 :

 

 

关于字体的选择器:

first-letter:第一个字

first-line:第一行

::selection{} 鼠标选中的区域部分 比较特殊前面要有两个冒号

after 与 before是在指定元素的内容前后插入的行内元素,其有content属性必须写,可以给空字符串值。

给li before与after伪元素位置如下。

before: 出现的位置如下:

                    <li>(before) <a href=""></a>(after) </li>

              作用:做小黑线:

元素标签对伪元素的支持情况:双标签大多支持伪元素,单闭合标签不支持伪元素,比如img.input,input较特殊在有type radio或者checkbox时支持伪元素

before与after的妙用:

1.清除浮动 

不利用伪元素清除浮动:.clearfix{display:block;content:"";clear:both;}

利用伪元素(after)清除浮动:.clearfix:after{display:block;content:"";clear:both;visibility:hidden;height:0;}

2,装小图标或者覆盖原先小图标,position:absolute 再给其display后设置特定宽高进行覆盖,这样比多写个标签元素要好。