CSS基础-选择器(一)

news/2024/10/8 13:30:57 标签: css, 前端

1、CSS简介

CSS(层叠样式表)是一种文本标记语言,是修饰 HTML 和 XML 的标记语言。

2、CSS引入方式

2.1 行内样式(内嵌样式)

在标签中写入style="名值对"的形式,多个名值对之间使用;隔开,但是这种方法不太适合于属性过多的标签中,样式不能复用,不便于维护。

<p style="css">font-size: 20px;color: black">CSS</p>
2.2 内部样式

将CSS样式从HTML标签中分离出来,可以在同一HTML文件中多次利用,一般写入head内。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>css">
        p {
            font-size: 40px;
            color: red;
        }
    </style>
</head>

<body>
    <p>CSS</p>
    <p>CSS</p>
</body>

</html>

2.3 外部样式

将CSS样式写入独立的文件中,HTML文件中需要使用时,导入链接,使得不同HTML文件样式可以复用;

用户浏览网页时CSS样式文件会被暂时缓存,继续浏览其他网页时会优先使用缓存中的文件。避免重复下载,大大提高了网页的加载效率。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>行内样式</title>
</head>

<body>
    <p style="css">font-size: 20px;color: red">CSS</p>
</body>

</html>
2.4 优先级

行内样式 > 外部样式表 = 内部样式表,同级别或同一样式表中后面的样式会覆盖前面的样式。

3、CSS选择器

3.1 通配选择器

选择所有元素。

<style>css">
    * {
        font-size: 30px;
        color: blue;
    }
</style>
3.2 类选择器

根据元素的class值,选中某些元素。

<style>css">
    .title {
        color: green;
        font-size: 50px;
    }
    .other {
        color: rgb(134, 144, 112);
        font-size: 30px;
    }
</style>
3.3 ID选择器

根据元素的ID值精准选取元素。元素的id不能包含空格。

<style>css">
    #top1 {
        color: green;
        font-size: 30px;
    }
    #top2 {
        color: rgb(74, 18, 194);
        font-size: 30px;
    }
</style>
3.4 交集选择器

选中同时符合多个条件的元素。

<style>css">
    span.other {
        font-size: 15px;
        color: bisque;
    }
</style>
3.5 并集选择器

选中多个选择器对应的元素,又称为分组选择器。

3.6 后代选择器

选中指定元素中,符合要求的后代元素。(只选择后代元素)

<style>css">
    ul li {
        color: red;
    }

    ol li span {
        color: red;
    }

    .zu1 li {
        color: aqua;
    }
</style>
3.7 子代选择器

选中指定元素中符合要求的子元素。(只选择子元素)

<style>css">
    ol>li {
        color: red;
    }
</style>
3.8 兄弟选择器
3.8.1 相邻兄弟选择器

选中指定元素后,紧紧相邻的兄弟元素。

<style>css">
    div+li {
        color: aqua;
    }
</style>
3.8.2 通用兄弟选择器

选中指定元素后所有符合条件的元素。

<style>css">
    div~li {
        font-size: 40px;
    }
</style>
3.9 属性选择器

语法:

  • 1、[属性名]:选中具有某个属性的元素;
  • 2、[属性名=属性值]:选中属性名具有指定值的元素;
  • 3、[属性名=^属性值]:选中属性值以指定值开头的元素;
  • 4、[属性名=$属性值]:选中属性值以指定值结尾的元素;
  • 5、[属性名=*属性值]:选中属性值包含指定值的元素。

4、伪类选择器

伪类选择器通常用于根据元素的状态或位置来更改样式,而不是根据其固有的类或ID。它们以冒号开头(:),后面跟着伪类的名称。

4.1 动态伪类

伪类选择器是一种特殊的CSS选择器。它允许在不改变HTML结构的情况下,根据用户的动作来更改样式。

<style>css">
    /* 正常显示标签属性 */
    a:link {
        color: red;
    }

    /* 访问过的标签属性 */
    a:visited {
        color: yellow;
    }

    /* 鼠标悬浮标签属性 */
    a:hover {
        color: blue;

    }

    /* 标签激活属性 */
    a:active {
        color: green;
    }

    /* 聚焦标签属性 */
    select:focus {
        color: red;
    }
</style>
4.2 结构伪类

结构伪类选择器根据元素在结构树中的位置来选定元素。

4.2.1 一般结构伪类
<style>css">
    /* 选择所有div第一个子类元素为p标签的元素 */
    /* div>p:first-child {
        color: red;
    } */
    /* 选择所有div最后一个子类元素为p标签的元素 */
    /* div>p:last-child {
        color: red;
    } */
    /* 选择所有div奇数个子类元素为p标签的元素 */
    /* div>p:nth-child(2n+1) {
        color: red;
    } */
    /* 选择div同类元素的第一个子类元素 */
    /* div>p:first-of-type {
        color: red;
    } */
    /* 选择div同类元素的最后一个子类元素 */
    /* div>p:last-of-type {
        color: red;
    } */
    /* 选择div同类元素的偶数子类元素 */
    div>p:nth-of-type(2n) {
        color: red;
    }
</style>
4.2.2 特殊结构伪类(了解即可)
  • :nth-last-child(n) 所有兄弟元素中的倒数第n个
  • :nth-last-of-type(n) 所有同类型兄弟元素中的倒数第n个
  • :only-child 选择没有兄弟的元素
  • :root 根元素
  • :empty 内容空的元素(空格也不能有)
4.3 否定伪类

选中排除某些属性的元素。

<style>css">
    /* 选中div除了第一个子类元素 */
    /* div>p:not(:first-child) {
        color: red;
    } */
    /* 选中div除了属性名class为last的元素 */
    div>p:not([class="last"]) {
        color: aqua;
    }
</style>
4.4 UI伪类

应用在带框、按钮、表单等可视、可交互的元素上

<style>css">
    /* 被选中的元素 */
    input:checked {
        width: 100px;
        height: 100px;
    }
    /* 不可修改的元素 */
    input:disabled {
        width: 100px;
        height: 100px;
    }
    /* 可修改的元素 */
    input:enabled {
        background-color: antiquewhite;
    }
</style>
4.5 目标伪类

选中锚点指向的元素。

<style>css">
    div {
        width: 600px;
        height: 500px;
        background-color: antiquewhite;
    }
    
    div:target {
        background-color: red;
    }
</style>
4.6 语言伪类

根据标记语言选取元素。

<style>css">
    /* 选择所有语言为en的元素,只要标记为en即可 */
    :lang(en) {
        color: red;
    }
    /* 默认语言为中文 */
    :lang(zh-CN) {
        color: green;
    }
</style>

5、伪元素选择器

伪元素选择器也是CSS中的一种特殊类型的选择器,它们用于选取和操作页面中不是实际DOM元素的部分。伪元素选择器以两个冒号开头(::),后面跟伪元素的名称。

<style>css">
    /* 选中第一个文字 */
    div::first-letter {
        color: red;
        font-size: 20px;
    }

    /* 选中第一行文字 */
    div::first-line {
        color: rgb(72, 0, 255);
    }

    /* 被选中的元素 */
    div::selection {
        color: aqua;
    }

    /* 输入框内的提示文字 */
    input::placeholder {
        color: green;
    }

    /* 元素之前的字符 */
    p::before {
        content: "*";
    }

    /* 元素之后的字符 */
    p::after {
        content: ".";
    }
</style>

相关代码地址:https://gitee.com/justinc666/front-end/tree/master/CSS/CSS选择器


http://www.niftyadmin.cn/n/5694215.html

相关文章

Python知识点:运用Python工具,如何使用BERT进行句子嵌入

开篇&#xff0c;先说一个好消息&#xff0c;截止到2025年1月1日前&#xff0c;翻到文末找到我&#xff0c;赠送定制版的开题报告和任务书&#xff0c;先到先得&#xff01;过期不候&#xff01; 如何使用Python的BERT进行句子嵌入 BERT&#xff08;Bidirectional Encoder Rep…

【高阶数据结构】二叉树进阶探秘:AVL树的平衡机制与实现详解

高阶数据结构相关知识点可以通过点击以下链接进行学习一起加油&#xff01;二叉搜索树 大家好&#xff0c;这里是店小二&#xff01;今天我们将深入探讨高阶数据结构中的AVL树。AVL树是一种自平衡的二叉搜索树&#xff0c;可以看作是对传统二叉搜索树的优化版本。如果你对数据结…

自动驾驶系列—揭秘毫米波雷达:自动驾驶的眼睛如何看穿复杂环境?

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

C++ 语言特性21 - 别名模板

一&#xff1a;概述 别名模板是 C11 引入的&#xff0c;用于为一个模板类型定义别名&#xff0c;从而简化复杂的模板类型定义。它结合了 using 关键字&#xff0c;可以对模板类型进行重新命名&#xff0c;使代码更加简洁和可读。 1. 作用 定义模板类型的别名。简化复杂的模板类…

Chromium 关闭 Google Chrome 后继续运行后台应用功能分析c++

此功能允许关闭 Google Chrome 后继续运行后台&#xff0c;控制此功能的开关是 // Set to true if background mode is enabled on this browser. //更改此值可以修改默认开启关闭 inline constexpr char kBackgroundModeEnabled[] "background_mode.enabled"; …

一文讲清楚退耦电容的位置摆放及其过孔设计

文章目录 一、电容的基础知识二、滤波、去耦和旁路的区别三、电源退耦时电容摆放及过孔设计&#xff1a;1&#xff0e;对电容位置摆放的要求&#xff1a;2&#xff0e;过孔设计常见错误分析3&#xff0e;降低过孔引入的寄生电感4&#xff0e;分析盘中孔工艺 四、结论 在PCBlayo…

微信公众号菜单栏----第⑦篇

如果你是新手小白&#xff0c;请从微信公众号开发第一篇看起&#xff1a;微信公众号开发-接口配置信息&#xff08;第①篇&#xff09;_微信公众号 接口配置信息怎么设置-CSDN博客 代码&#xff1a; <?php// 获取菜单配置数据$menuConfig array(button > array(array(…

传统流程图和N-S流程图的区别

传统流程图和N-S流程图在表示算法和逻辑结构时有不同的特点和用途。以下是它们的主要区别&#xff1a; ### 传统流程图 1. **符号多样**&#xff1a;传统流程图使用多种几何形状表示不同的操作类型&#xff0c;如椭圆表示开始和结束&#xff0c;平行四边形表示输入输出&#…