CSS常用选择器

411 阅读5分钟

CSS常用的选择器

  • CSS选择器决定了将规则应用到哪个(些)元素上
  • 3种基本选择器
    • 元素选择器
    • 类选择器
    • ID 选择器
  • 除此之外 CSS 还提供了大量的选择器

CSS 选择器用于 “查找”(或选取)要设置样式的 HTML 元素。 我们可以将 CSS 选择器分为五类:

1、元素选择器

书写格式:元素名{声明块}

例:

<style>
    h1{color:red;}
</style>
控制页面上所有h1元素

2、类选择器

书写格式:.类名{声明块}

例:

<head>
    <style>
        .title{font-size:40px;}
    </style>
</head>
<body>
    <h1 class="title">
        类选择器
    </h1>
</body>

取类名:(在开始标记里通过class取类名)

1、不能是纯数字或数字开头

2、望名知意

驼峰命名法

例:footerTopLeft(从第二个单词开始首字母大写)

蛇形命名法

例:footer_top

匈牙利命名法

例:footer-top

一个元素可以有多个类名,类名与类名之间用空格隔开

3、ID选择器

一个元素只能有一个id,在页面上如果id名已经出现过一次,就不能在出现

书写格式:#id名{声明块}

例:

<head>
    <style>
        #one{boder:1px solid red;}
    </style>
</head>
<body>
    <h1 id="one">
        ID选择器
    </h1>
</body>

4、通配符选择器 “*”

匹配页面上所有的元素

书写格式:*{声明块}

例:

* {
    padding: 0%;
    margin: 0%;
}
表示页面上所有的 paddingmargin都为0

5、属性选择器

书写格式:[属性名+属性值]{声明块}或者[属性名]{声明块}

前者更精确

例:

[target="_self"]

<html>
    <head>
        <style>
            [target]{
                color:red;
            }
        </style>
    </head>
    <body>
        <a target="_self" href="#">属性选择器[target]的标记</a>
    </body>
</html>
选取所有带有 target="_self" 属性的元素字体为 red 红色 

[target]

<html>
    <head>
        <style>
            [target]{
                color:red;
            }
        </style>
    </head>
    <body>
        <a href="http://www.disney.com" target="_blank">disney.com</a>
        <a href="http://www.wikipedia.org" target="_top">wikipedia.org</a>
        <a target href="#">属性选择器[target]的标记</a>
    </body>
</html>
指选择所有带有 target 属性的元素字体为 red 红色.

[target="_blank"]

<html>
    <head>
        <style>
            [target=_blank]{
                color:gray;
            }
        </style>
    </head>
    <body>
        <a target="_blank" href="#">属性选择器[target=_blank]选择的标记</a>
        <a href="http://www.disney.com" target="_blank">disney.com</a>
    </body>
</html>
选取所有带有 target="_blank" 属性的元素字体为 gray 

更多属性选择器:www.w3school.com.cn/css/css_att…

6、伪类选择器

相同子元素应用不同的样式,

书写格式:元素:{选择器}

first-child 和 last-child 是常用的,表示第一个和最后一个子元素。

:first-child (父元素下的第一个子元素)

例:

div>p:first-child{
  color: pink;
}
选中div下面的第一个元素

:last-child(父元素下的最后一个子元素))

例:

div>p:last-child{
​
  color: royalblue;
​
}
选中div下面的最后一个元素

:nth-child() (匹配父元素的第N个子元素)

适用于父元素中的子元素都相同

1.括号里面直接写数字

数字是几就匹配父元素下的第几个儿子

例:

p:nth-child(2){
background-color: aqua;
}
匹配p元素的父元素下面的第二个儿子(括号里是几就是第几个儿子)

2.括号里面写odd或even

odd:奇数(1.3.5.7.9...)

even:偶数(2.4.6.8...)

3.括号里面写公式 an+b

a或b可以为0,n=0,1,2,3.......

如:3n 3n+1

例:

<div>
    <p>伪类选择器01</p>
    <p>伪类选择器02</p>
    <p>伪类选择器03</p>
    <p>伪类选择器04</p>
    <p>伪类选择器05</p>
</div>
p:nth-child(3n+1){
    color: brown;
}
匹配上面伪类选择器01,伪类选择器04

:nth-of-type() (匹配父元素中指定类型元素的第N个子元素)

1.括号里面直接写数字

数字是几就匹配父元素下指定类型的第几个儿子

例:

p:nth-of-type(2){
    background-color: aqua;
}
匹配p元素的父元素下面的第二个p元素(括号里是几就是第几个指定类型的子元素)

2.括号里面写odd或even

odd:奇数(1.3.5.7.9...)

even:偶数(2.4.6.8...)

3.括号里面写公式 an+b

a或b可以为0,n=0,1,2,3.......

如:3n 3n+1

a 标签配套的伪类选择器

优先级顺序 lv love=>hate

  • :link 访问前(当 href 的属性值为空时不生效)
  • :visited 访问后
  • :hover 鼠标移入时
  • :active 访问点击时

例:

<style>
    /* 访问前 */
    a:link {
        color: red;
    }
​
    /* 访问后 */
    a:visited {
        color: darkgrey;
    }
​
    /* 鼠标移入时 */
    a:hover {
        color: aqua;
    }
​
    /* 访问点击时 */
    a:active {
        color: blue;
    }
</style><body>
    <a href="#">a 标签配套的伪类选择器</a>
</body>

更多伪类选择器地址:developer.mozilla.org/zh-CN/docs/…

7、伪元素选择器

书写格式:元素名后面跟双冒号或者单冒号都可,为了和伪类区分,最好用双冒号

::before 在之前

::after 在之后

::firet-letter 控制首字母/或第一个中文字(的颜色或效果)

::firet-line 控制第一行的颜色或效果

::selection 控制用户选中的内容的背景色或字体颜色

例:

<style>
    /* 在P元素内最前面加 content 及内容的样式*/
    p::before {
        content: "在之前";
        color: orange;
        font-size: 20px;
    }
​
    /* 在P元素内最后面加content 及内容的样式*/
    p::after {
        content: "在之后";
        color: red;
    }
​
    /* 首字母 */
    p::first-letter {
        font-size: 30px;
        color: orchid;
    }
​
    /* 第一行 */
    p::first-line {
        font-size: 14px;
        color: seagreen;
    }
​
    /* 用户选中的内容 */
    p::selection {
        background-color: slategrey;
        color: aliceblue;
    }
</style>
<body>
    <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae ipsa veniam odit corrupti voluptate amet, fugiat
        quam aspernatur ad expedita ut numquam quasi sed aperiam iste. Debitis expedita incidunt ab.</p>
</body>

元素名::before{content:"在之前";color:red;}

元素名::after{content:"在之后";}

上面两个声明块里必须有content,用来添加内容(也可不加,但一定要有),还可设置添加内容的样式,添加的内容是作为选中元素的子元素)

8、子级选择器

书写格式:父元素>子元素{声明块}

选择某一个元素下的对应子元素,可以进行连续选择

例:

<style>
    .offspring>a {
            color: red;
            font-size: 20px;
            text-decoration: none;
        }
</style><body>
    <div class="offspring">
        <a href="#">自己选择器01</a>
        <div>
            <p>Lorme</p>
        </div>
    </div>
    <a href="#">超链接</a>
</body>

继承:

子元素会继承父元素的一些样式,一般文本类的样式会被继承

9、后代选择器

书写格式:祖先元素(空格)后代元素{声明块}

例:

<style>
    .offspring p {
            color: red;
            font-size: 20px;
            font-weight: bold;
        }
</style><body>
    <div class="offspring">
        <section>
            <p>后代选择器</p>
        </section>
    </div>
</body>

10、并集选择器 “,”

通过逗号同时选择多个选择器的内容

例:

<style>
    .offspring>a,p {
            color: red;
            font-size: 20px;
            font-weight: bold;
            text-decoration: none;
        }
</style>

<body>
    <div class="offspring">
        <a href="#">并集选择器01</a>
        <div>
            <p>并集选择器02</p>
        </div>
    </div>
    <a href="#">超链接</a>
</body>