美文网首页
css入门基础2

css入门基础2

作者: 饥人谷_林嘉俊 | 来源:发表于2017-08-03 22:22 被阅读8次

    class 和 id 的使用场景?

    1. id 指定标签的唯一标识
      例如 <div id = "wrap">
      使用场景:
      ①根据提供的唯一id号,快速获取标签对象。如:document.getElementById(id),或者通过# id{ }控制样式
      ②用于充当label标签for属性的值:示例:<label for='userid'>用户名:</label>,表示单击此label标签时,id为userid的标签获得焦点。
      特性:id值在一个html内唯一
    2. class 指定标签的类名
      例如 <div class="wrap">
      使用场景:
      CSS操作,把一些特定样式放到一个class类中,需要此样式的标签,可以在添加此类。

    CSS选择器常见的有几种?

    image.png

    主要有这么几种常见的
    根据W3C文档的选择器大全
    http://www.w3school.com.cn/cssref/css_selectors.asp

    选择器的优先级是怎样的?对于复杂场景如何计算优先级?

    css 优先级一般情况可以用这个

    image.png

    面对复杂情况 有以下的几个概念
    若愚老师讲的 a b c d 概念相同
    选择器的优先权(取自css权威指南) 记录下 P70

    1. 内联样式表的权值最高 1000,加1,0,0,0;(a )

    2. ID 选择器的权值为 100,加0,1,0,0 ; ( b )

    3. Class 类选择器的权值为 10,加0,0,1,0 (包括伪类) ( c )

    4. HTML 标签选择器的权值为 1 ,加0,0,0,1(包括伪元素)( d )

    CSS 优先级法则:

    A 选择器都有一个权值,权值越大越优先,所以相加起来最大的就最优先了;

    B 当权值相等时,后出现的样式表设置要优于先出现的样式表设置;

    C 创作者的规则高于浏览者:即网页编写者设置的CSS 样式的优先权高于浏览器所设置的样式;

    D 继承的CSS 样式不如后来指定的CSS 样式;

    E 在同一组属性设置中标有“!important”规则的优先级最大;

    a:link, a:hover, a:active, a:visited 的顺序是怎样的? 为什么?

    http://www.cnblogs.com/x_wukong/archive/2013/10/03/3349976.html

    记录 在《css权威指南》一书中P80页

    未点击链接前,link伪类长期处于激活状态,鼠标悬停(或点击)时,a链接同时处于link和hover(或active)状态,由于它们特指度相同,
    在同时激活的情况下,后出现的伪类样式会覆盖前面的伪类样式,故link状态必须写在hover(或active)之前。
      再讨论hover和active的顺序,若把hover放在active后面,当点击链接一瞬,实际你在激活active状态的同时触发了hover伪类,hover在后面覆盖了active的颜色,所以无法看到active的颜色。故hover在active之前
      其次,若把visited放在hover后面,那已访问过的链接一直触发着visited伪类,会覆盖hover样式。
      最后,其实link、visited两个伪类之间顺序无所谓。(因为它俩不可能同时触发,即又未访问同时又已访问。)

    顺序: a:link , a:visited , a:hover , a: active

    以下选择器分别是什么意思?

    // #header{
    }
    控制id名为header的元素样式

    .header{
    }
    控制所有类名为header的元素样式

    .header .logo{
    }
    后代选择器,控制所有类名为header下的所有的类名为logo的元素样式
    .header.mobile{
    }
    类选择器,匹配class="header mobile"的元素
    .header p, .header h3{
    }
    多元素选择器,控制class="header"元素的所有后代元素标签为p元素和h3元素的样式

    // #header .nav>li{
    }
    多元素选择器,控制id="header"的元素的后代class="nav"元素的直接后代li元素的样式
    // #header a:hover{
    }
    伪类选择器,控制id="header"元素的后代a元素鼠标悬浮在其表面时的样式
    // #header .logo~p{
    }
    控制id="header"元素下的后代class="logo"的元素之后的同级元素p的样式
    // #header input[type="text"]{
    }
    控制id="header"元素下的后代元素属性带有和匹配[type="text"]的input标签的样式

    列出你知道的伪类选择器

    image.png
    image.png
    image.png

    div:first-child、div:first-of-type、div :first-child和div :first-of-type的作用和区别 (注意空格的作用)

    div:first-child 匹配父元素下,作为第一个子元素的div元素
    div:first-of-type 匹配父元素的子元素中,第一个div元素
    div :first-child 匹配所有div元素内所有元素中属于其父元素的首个子元素 div :first-of-type 匹配所有div元素内所有元素中属于其父元素的首个类型的子元素

    运行如下代码,解析下输出样式的原因

    image.png

    运行结果


    image.png

    .item1:first-child 匹配class="item1"的所有元素的父元素下的第一个元素,在这里父元素是class="ct"的div,这个div下的第一个元素是class="item1"的p标签,样式控制是字体变红,所以aa会变红,其他不变

    .item1:first-of-type 匹配class="item1"的元素的父元素下的所有相同样式的第一个元素,这里class="ct"的div下有p和h3两种元素,匹配相同样式的第一种,所有第一个p和第一个h3的样式改变,背景变蓝色

    记下比较容易忘记的选择器:

    image.png
    附上实验的例子
    http://js.jirengu.com/gaxeyeteku/2/edit

    相关文章

      网友评论

          本文标题:css入门基础2

          本文链接:https://www.haomeiwen.com/subject/kpmplxtx.html