选择器基础

选择器

CSS主要是由两部分构成:

  1. 选择器:找到页面中指定的标签
  2. css样式代码:样式之间需要分号隔开

对于选择器来说,丰富选择器的写法,可以精确找到页面中的某些标签

选择器

标签选择器

  • 通过标签名找到满足条件的标签,没有自动范围,找到页面中所有的标签

  • 语法:

    标签名{
        css代码
    }
    

类选择器

  • 通过标签上class名找到对应的标签,标签上的class名可以相同,可以提取公共样式。同一个标签可以作用多个class选择器的样式

  • 语法:

    .class名{
        css代码
    }
    

id选择器

  • 通过标签上id名找到对应的标签,id是唯一,只能找到页面中唯一的标签

  • id命名规则:

    • 是以数字、字母、_和-构成
    • 不能以数字开头,不能包含特殊的符号
  • 语法:

    #id名{
        css代码
    }
    

后代选择器(派生选择器)

  • 找到某个标签里面的所有的后代,会找到儿子、孙子等等

  • 中间使用空格隔开

  • 语法:

    找到class名为box的标签里面的所有后代p标签
    .box  p{
        
    }
    

子元素选择器

  • 找到某个标签里面的满足条件的直接子元素,只找儿子,不找孙子

  • 中间使用>隔开

  • 语法

    找到class名为box的标签里面的直接子元素p标签
    .box > p{
    
    }
    

兄弟选择器

相邻兄弟选择器
  • 找到页面中满足条件的标签后面相邻的第一个兄弟标签

  • 中间使用+隔开

  • 语法:

    找到class名为box的标签后面相邻的第一个兄弟p标签
    .box + p{
        
    }
    
后续兄弟选择器
  • 找到页面中满足条件的标签后面所有的兄弟标签

  • 中间使用 ~隔开

  • 语法:

    找到class名为box标签后面所有兄弟p标签
    .box ~p{
        
    }
    

组合选择器(选择器分组)

  • 将多种选择器组合在一起作用相同的样式

  • 中间使用逗号给开

  • 语法:

    h1,p,span,label{
    	color:red;
    }
    等价于
    h1{
        color:red;
    }
    p{
        color:red;
    }
    span{
        color:red;
    }
    label{
        color:red;
    }
    

属性选择器

  • 通过标签上的属性找到对应的标签
选择器描述
[属性名]用于选取带有指定属性的元素。
[属性名=属性值]用于选取带有指定属性和值的元素。(精确匹配)
[属性名*=属性值]匹配属性值中包含指定值的某个元素。(模糊匹配)
[属性名~=属性值]用于选取属性值中包含指定词汇的元素。
`[属性名=属性值]`
[属性名^=属性值]匹配属性值以指定值开头的每个元素。
[属性名$=属性值]匹配属性值以指定值结尾的每个元素。
  • 模糊匹配可以用于提取公共样式

伪类选择器

  • 给浏览器上的标签添加一些功能性的内容或者效果
选择器描述
:link向未被访问过的超链接添加的样式
:visited向访问过的超链接添加的样式
:hover鼠标移入元素上时,添加的样式
:active向被激活的元素添加的样式
:focus向拥有键盘输入的焦点的元素添加的样式
  • 注意:
    • :link:visited是超链接特有的
    • :hover必须放在:link:visited之后,:active必须放在:hover之后,顺序:L-V-H-A

伪元素选择器

  • 指可以在标签的开头或结尾添加一块渲染区域,该区域可以添加样式
  • 选择器:
    • ::first-letter:找到标签中第一个字符的区域,添加样式
    • ::first-line: 找到标签内第一行内容的区域,添加样式
    • ::before:在标签的内容之前添加一块渲染区域,该区域可以添加内容和样式
    • ::after:在标签的内容之后添加一块渲染区域,该区域可以添加内容和样式
  • 注意:
    • ::before::after需要配合content:"";一起使用
    • ::before::after渲染的是一个行内元素,如果需要设置宽高,转为inline-block或block

通配符选择器

  • 找到页面中所有的标签

  • 语法:

    *{
        css代码
    }
    

选择器的分类

  • 基础选择器:id选择器、类选择器、标签选择器、属性选择器、伪类选择器、伪元素选择器、通配符选择器
  • 复合(组合)选择器:后代选择器、子元素选择器、兄弟选择器(相邻兄弟选择器、后续兄弟选择器)

选择器的权重(优先级)

  1. 相同选择器,内联权重最大,内部和外部采用就近原则
  2. 基础选择器的权重的大小:id选择器>类选择器(属性选择器)>标签选择>通配符选择器 > 继承
  3. 组合选择器权重需要计算,将所有选择器叠加进行对比

选择器权重的计算方式

加法运算
  • 内联样式的权重为1000

  • id选择器的权重为100

  • 类(属性)选择器的权重为10

  • 标签选择器的权重为1

  • 继承的样式的权重为0

    将所有的选择器的权重值进行相加,对比大小,值达权重更高

    注意:不满足满10进1的规则

4个0

(0,0,0,0)

第一个0:代表是否由内联的样式,如果有则为1,无则为0

第二个0:代表id选择器的个数

第三个0:代表类(属性)选择器的个数

第四个0:代表标签选择器的个数

从第一个0开始对比,值大的权重更高,如果值相同,对比第二个0,依次类推。如果最后一个0都相等,后面的样式层叠前面的样式。

css的继承

继承更多出现编程语言中,js学习继承,父级元素的样式子元素可以作用

css中很多属性,有些可以被继承,有些不可以继承,需要手动设置

继承分为两种:

  • 自动继承:子元素可以自动从父元素上继承的样式
  • 手动继承:子元素不能自动从父元素上继承的样式,需要手动设置继承。 inherit 从父元素上继承css属性的样式

可以被自动继承的css属性

  • font系列的样式可以被自动继承
    • font-size
    • font-family
    • font-weight
    • font-style
  • 文本样式可以被自动继承
    • color
    • text-align
    • line-height
    • text-decoration
    • letter-spacing
    • word-spacing
    • text-indent
    • text-transform
  • list-style li标签可以从ol或者ul上自动继承
  • 鼠标的样式可以被自动继承
    • cursor pointer抓手

不可以被自动继承css属性

  • width、height、border、padding、margin、background等

说明:本笔记主要根据网络视频教程整理,看再多也没大用,最重要的是多动手多动手~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值