css3阶段总结

最近学习进度缓慢,为啥,行动力不强,另外就是老师讲课风格不咋地,导致我很难有耐心,复习下去

总之各种原因,其实无所谓了,路仍然要前行

我觉得吧,前端不难,就是比较繁琐,另外一个老师真的很重要

w3c的文档,没事看看

http://www.w3school.com.cn/css3/index.asp

我心中的老师就是说话比较柔和, 用非常轻松的语气就讲明白了,比如石川,别的老师我真的很无语,又不是搞传销,说那么大声干嘛,说那么多, 还讲的不彻底,真的很无语

慕课讲的不错,可惜价格太高!

行,我们重新复习一下下,以便我们继续前行

CSS选择器
CSS3选择器规范地址:       https://www.w3.org/TR/2011/REC-css3-selectors-20110929/
CSS3选择最新选择器规范:  https://www.w3.org/TR/selectors 

!---问题---!
    1.css的全称是什么?
    2.样式表的组成
    3.浏览器读取编译css的顺序?

1.基本选择器
    /*通配符选择器*/      * { margin: 0; padding: 0; border: none; }
    /*元素选择器*/       body { background: #eee; }
    /*类选择器*/        .list { list-style: square; }
    /*ID选择器*/       #list { width: 500px; margin: 0 auto; }
    /*后代选择器*/       .list li { margin-top: 10px; background: #abcdef; }



2.基本选择器扩展
    /*子元素选择器*/      #wrap > .inner {color: pink;}
                也可称为直接后代选择器,此类选择器只能匹配到直接后代,不能匹配到深层次的后代元素
    /*相邻兄弟选择器*/ #wrap #first + .inner {color: #f00;}
                它只会匹配紧跟着的兄弟元素
    /*通用兄弟选择器*/ #wrap #first ~ div { border: 1px solid;}
                它会匹配所有的兄弟元素(不需要紧跟)
    /*选择器分组*/       h1,h2,h3{color: pink;}  
                此处的逗号我们称之为结合符


3.属性选择器
    /*存在和值属性选择器*/   
        [attr]:该选择器选择包含 attr 属性的所有元素,不论 attr 的值为何。
        [attr=val]:该选择器仅选择 attr 属性被赋值为 val 的所有元素。
        [attr~=val]:表示带有以 attr 命名的属性的元素,并且该属性是一个以空格作为分隔的值列表,其中至少一个值为val。

    /*子串值属性选择器*/
         [attr|=val] : 选择attr属性的值是val(包括val)或以val-开头的元素。
         [attr^=val] : 选择attr属性的值以val开头(包括val)的元素。
         [attr$=val] : 选择attr属性的值以val结尾(包括val)的元素。
         [attr*=val] : 选择attr属性的值中包含字符串val的元素。



4.伪类与伪元素选择器
    /*链接伪类*/        注意:link,:visited,:target是作用于链接元素的!
            :link       表示作为超链接,并指向一个未访问的地址的所有锚
            :visited    表示作为超链接,并指向一个已访问的地址的所有锚

            :target     代表一个特殊的元素,它的id是URI的片段标识符(对锚点有效果)
    /*动态伪类*/        注意:hover,:active基本可以作用于所有的元素!
            :hover      表示悬浮到元素上
            :active     表示匹配被用户激活的元素(点击按住时

            由于a标签的:link和:visited可以覆盖了所有a标签的状态,所以当:link,:visited,:hover,:active同时出现在a标签
            身上时 :link和:visited不能放在最后!!!

            隐私与:visited选择器
                只有下列的属性才能被应用到已访问链接:
                    color
                    background-color
                    border-color


 /*表单相关伪类*/
            :enabled    匹配可编辑的表单
            :disable    匹配被禁用的表单
            :checked    匹配被选中的表单
            :focus      匹配获焦的表单

    /*结构性伪类*/
            index的值从1开始计数!!!!
            index可以为变量n(只能是n)
            index可以为even odd
                #wrap ele:nth-child(index)      表示匹配#wrap中第index的子元素 这个子元素必须是ele
                #wrap ele:nth-of-type(index)    表示匹配#wrap中第index的ele子元素
                除此之外:nth-child和:nth-of-type有一个很重要的区别!!
                        nth-of-type以元素为中心!!!

            :nth-child(index)系列         
                :first-child
                :last-child
                :nth-last-child(index)
                :only-child (相对于:first-child:last-child 或者 :nth-child(1):nth-last-child(1))
            :nth-of-type(index)系列
                :first-of-type
                :last-of-type
                :nth-last-type(index)
                :only-of-type   (相对于:first-of-type:last-of-type 或者 :nth-of-type(1):nth-last-of-type(1))

            :not        
            :empty(内容必须是空的,有空格都不行,有attr没关系)
    /*伪元素*/
            ::after (清空浮动)
            ::before
(清楚塌陷问题)
            ::firstLetter
            ::firstLine
            ::selection(鼠标选择的片段)


5.css声明的优先级
    选择器的特殊性
        选择器的特殊性由选择器本身的组件确定,特殊性值表述为4个部分,如    0,0,0,0
        一个选择器的具体特殊性如下确定:
               1.对于选择器中给定的ID属性值,加 0,1,0,0
               2.对于选择器中给定的各个类属性属性选择,或伪类,加 0,0,1,0
               3.对于选择器中的给定的各个元素和伪元素,加0,0,0,1
               4.通配符选择器的特殊性为0,0,0,0
               5.结合符对选择器特殊性没有一点贡献
               6.内联声明的特殊性都是1,0,0,0
               7.继承没有特殊性

            特殊性 1,0,0,0 大于所有以0开头的特殊性(不进位)
            选择器的特殊性最终都会授予给其对应的声明
            如果多个规则与同一个元素匹配,而且有些声明互相冲突时,特殊性越大的越占优势

            注意:id选择器和属性选择器
                  div[id="test"](0,0,1,1) 和 #test(0,1,0,0)   
    重要声明
        有时某个声明比较重要,超过了所有其他声明,css2.1就称之为重要声明
        并允许在这些声明的结束分号之前插入  !important  来标志
        必须要准确的放置  !important 否则声明无效。
        !important 总是要放在声明的最后,即分号的前面

         标志为 !important的声明并没有特殊的特殊性值,不过要与非重要声明分开考虑。
         实际上所有的重要声明会被浏览器分为一组,重要声明的冲突会在其内部解决
         非重要声明也会被分为一组,非重要声明的冲突也会在其内部解决
         如果一个重要声明与非重要声明冲突,胜出的总是重要声明
    继承
        继承没有特殊性,甚至连0特殊性都没有
        0特殊性要比无特殊性来的强
    来源
        css样式的来源大致有三种
          创作人员
          读者
          用户代理   

        权重:
           读者的重要声明
           创作人员的重要声明
           创作人员的正常声明
           读者的正常声明
           用户代理的声明
    层叠
        1.找出所有相关的规则,这些规则都包含一个选择器
        2.计算声明的优先级
                   先按来源排序
                   在按选择器的特殊性排序
                   最终按顺序


 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值