『 前端三剑客 』:CSS选择器

news2025/4/18 18:09:03

文章目录

        • 一 . 基本语法
        • 二 . CSS 引入方式
          • 2.1 内部样式表
          • 2.2 内联样式表
          • 2.3 外部样式表
        • 三 . CSS选择器
          • 3.1 基础选择器
            • 1 . 标签选择器
            • 2 . 类选择器
            • 3 . id 选择器
            • 4 . 通配符选择器
          • 3.2 复合选择器
            • 5 . 后代选择器
            • 6 . 子代选择器
            • 7 . 并集选择器
            • 8 . 伪类选择器

上一篇文章我们介绍了 html 的常用标签及用法 , 这次我们来介绍 css 来对页面进行美化处理 css 全称 : 层叠样式表 (Cascading Style Sheets).

主要作用 : 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离.

一 . 基本语法

基本语法规则 : 选择器 + 若干语法声明

选择器决定针对谁修改 (找谁)

声明决定修改啥. (干啥)

声明的属性是键值对. 使用 ; 区分键值对, 使用 : 区分键和值.

<body>
    <style>
        /* 选择器 */
        p{
            /* 声明的属性 */
            color: red;
            font-size: 20px;
        }
    </style>
    <p>hello</p>
</body>

其中 , { } 里边的 css 属性 , 可以写一个或者多个 , 每一个属性都是一个键值对 , 键和值之间使用 ; 分割 , 键值对之间使用 ; 分割 , 每个键值对可以独占一行 ,也可以不独占 .

二 . CSS 引入方式

2.1 内部样式表

使用 style 标签直接将 css 写到 html 文件当中去的 , 此时的 style 标签可以放到任何位 置 , 但是一般建议放到 head 标签当中.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>css样式</title>
    <style>
        h1{
            color:pink;
            text-align: center;
        }
    </style>
</head>
<body>
    <h1>这是css中的内部样式表</h1>
</body>
</html>

展示的样式如下所示 :

image-20230401175309514

2.2 内联样式表

使用 style 属性, 针对特定的元素设置样式 , 此时不需要写选择器 ,直接书写键值对 , 样式仅对当前的元素生效 .

<div style="color:green">这是 css 中的内联样式表</div>

img

上述的两种引入方式虽然写法简单 ,优先级较高 , 但是只适合一些较为简单的样式 , css内容较多的时候并不推荐使用上述两种样式 , 我们在实际开发中 , 一般会使用外部样式 , 使得 html 和 css 分开, 相互并不影响 .

2.3 外部样式表

把 css 代码作为一个单独的 .css 文件 , 再通过 link 属性 , 让 html 引入该 css 文件 .

  • 创建一个 css 文件

img

  • 创建 一个 html 文件 , 并使用link标签引入 css 文件

image-20230401175412557

  • 显示效果如下

image-20230401175439487

  • 样式规范

    css 虽然不区分大小写 , 但是我们在在开发的时候统一使用小写字母 , 推荐使用展开分格 , 清晰明了

    三 . CSS选择器

选择器的功能 : 选中页面中指定的标签元素 , 我们在使用 css 设置样式的时候, 需要先选中单位 , 再针对单位进行行动 . CSS2标准中支持的选择器主要有以下几种

为了方便展示 , 下面案例中使用内部样式表

image-20230401175450310

3.1 基础选择器

由单个选择器构成的

1 . 标签选择器

格式 : 在{ } 前面写标签的名字,意味着会选中对当前页面中所有指定的标签

image-20230401175459017

可以对同一类的标签快速选择起来 ,但是针对标签相同的不能够进行特异化选择

2 . 类选择器

格式 : 可以自行创建 css 类, 从而手动指定哪些元素应用这个类,命名 . + 类名,引用时无需带 .

CSS所谓的类就是将一组 css 属性起了个名字 ,方便别的地方引用 , 与面向对象无关

我们可以查看示例 :

image-20230401175514203

一个类可以被一个元素引用 , 也可以被多个元素引用 , 一个元素可以引用一个类 ,也可以引用多个类

新增一个将字体设置为 30px 的 font类 ,并应用于 第二个 div ,css中文意义中的层叠即多种样式叠加上去的。

image-20230401175525506

3 . id 选择器

html 中的每个元素都可以设置一个唯一的 id , 作为元素的身份标识 , 给元素安排完 id 后 , 就可以通过 id 来选择对应的元素了

格式 : 使用 # 开头作为 id 选择器 , 值与html中某个元素的 id 值相同 , html 中 元素 的 Id 值不用带 #

image-20230401175533680

唯一标识 : 一个id 对应一个id 选择器

4 . 通配符选择器

对页面中的所有标签使用 , 通过 * 定义选取所有的标签

image-20230401175559237

基础选择器总结 :

作用特点
标签选择器能选出所有相同的标签不能差异化选择
类选择器能够选出一个或多个标签根据需求选择, 最灵活,最常用
id 选择器能够选中一个标签同一个id在一个HTML中只能出现一次
通配符选择器选中所有标签特殊情况下使用
3.2 复合选择器
5 . 后代选择器

把多个基础的选择器进行组合 , 标签,类,id选择器的组合

后代不一定指的儿子 , 也可以是孙子,

<body>
    <style>
        /* ul 中的 li 标签及其子代*/
        ul li{
            color:gray;
        }
        /* ol标签中的li标签中a标签 */
        ol li a{
            color:red;
            font-size: 20px;
        }
    </style>
  <!-- 有序列表 -->
  <ol>
    <li>aa</li>
    <li>bb</li>
    <li>cc</li>
    <li><a href="#">ddd</a></li>
</ol>
<!-- 无序列表 -->
<ul>
    <li>aa</li>
    <li>bb</li>
    <li>cc</li>
</ul>
</body>

image-20230310110801641

复合选择器可以是任何选择器的组合 ,可以是类选择器和id选择器

  /* 同上 */
.one li a{
          color:red;
          font-size: 20px;
        }
    </style>
  <!-- 有序列表 -->
  <ol class="one">
    <li>aa</li>
    <li>bb</li>
    <li>cc</li>
    <li><a href="#">ddd</a></li>
</ol>
6 . 子代选择器

与后代选择器一致 , 但是只能选择器子代标签, 不选择孙子元素

 <style>
      /* 后代选择器写法 */
        .two a{
            color:red
        }
        /* 子代选择器的写法 */
        .two>a{
            color:gold;
        }
 </style>
 <div class="two">
        <a href="#">链接1</a>
        <p><a href="#">链接2</a></p>
   </div>
    

后代选择器的写法会将链接 1,2 都选中, 而子代选择器的写法只会选中链接1

7 . 并集选择器

多组选择器 , 应用了同样的样式 , 通过逗号分割等多个元素 , 表示同时选中元素 1 和元素2

 /* 并集选择器 */
 <style>
 div,ol{
    color:blue;
}
 </style>
 
 <div>这是第一个div </div>
  <ol class="one">
    <li>aa</li>
    <li>bb</li>
    <li>cc</li>
    <li><a href="#">ddd</a></li>
</ol>
        

image-20230310112555534

8 . 伪类选择器

前边介绍的选择器都是针对某一类的元素 ,而伪类选择器是针对选中的某个 元素的某种状态 . 主要包括以下这几种 .

a:link 选择未被访问过的链接

a:visited 选择已经被访问过的链接

a:hover 选择鼠标指针悬停上的链接

a:active 选择活动链接(鼠标按下了但是未弹起

<body>
    <style>
        a:link{
            color:black;
            text-decoration: none;
        }
        a:visited{
            color:green;
        }
        a:hover{
            color:red;
        
        }
        a:active{
            color: blue;
        }
    </style>   
   <a href="https://www.baidu.com">这是一个超链接标签</a>
</body>

上述示例在鼠标进行不同的活动时u,就会显示不同的颜色

上述代码显示效果如下:

image-20230313083858894

复合选择器总结:


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/630432.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ProGuard 进阶系列(一): 运行源代码

在前面的文章深入 Android 混淆实践&#xff1a;ProGuard 通关秘籍和深入 Android 混淆实践&#xff1a;多模块打包爬坑之旅中&#xff0c;已经讲到了如何在 Android 中使用 ProGuard&#xff0c;以及如何自定义实现混淆规则的生成。为了更深入地理解 ProGuard 的细节&#xff…

Python3数据分析与挖掘建模(11)复合分析-分组分析与实现示例

1. 分组分析 1.1 概述 分组与钻取是数据分析中常用的技术&#xff0c;用于对数据进行聚合和细分分析。它可以帮助我们从整体数据中获取特定维度的汇总信息&#xff0c;并进一步钻取到更详细的子集数据中进行深入分析。 分组&#xff08;Grouping&#xff09;是指根据某个或多…

chatgpt赋能python:Python怎么写绝对值

Python怎么写绝对值 在Python编程语言中&#xff0c;有很多常用函数。其中包括求绝对值的函数。在这篇文章中&#xff0c;我们将介绍如何在Python中使用绝对值函数&#xff0c;并提供一些示例。 什么是绝对值函数&#xff1f; 绝对值函数是一个数学中常用的函数&#xff0c;…

WPF开发txt阅读器4:字体控件绑定

文章目录 控件折叠字体尺寸绑定选择字体字体的中文名称 txt阅读器系列&#xff1a; 需求分析和文件读写目录提取类&#x1f48e;列表控件与目录 控件折叠 作为一个txt阅读器&#xff0c;至少能够设置文字字体、尺寸&#xff0c;段落行间距等&#xff0c;还得有护眼模式等一系…

2023 年最新版Java面试题及答案整理(完整版,超详细)

程序员一步入中年&#xff0c;不知不觉便会被铺天盖地的“危机感”上身&#xff0c;曾经的那个少年已经不在&#xff0c;时间就是这样公平。就算你能发明Java语言&#xff0c;随着时间的推移&#xff0c;你注定还是要成为慢慢变蔫的茄子&#xff0c;缓缓变黑的葡萄。 看着金九…

支付宝商家多个账号下的账单管理工具配置指南

大家好&#xff0c;我是小悟 阅读这篇文章之前&#xff0c;结合这篇【有了这个工具&#xff0c;支付宝商家多个账号下的账单管理更方便了】干货食用更佳。 商户管理 这里录入的是商家应用相关信息 商户名称&#xff1a;应用id所属的应用名称。 应用id&#xff1a;支付宝开放…

Django新手必看:如何创建应用和定义数据表。(详细讲解)

Django新手必看&#xff1a;如何创建应用和定义数据表。 1. Django创建应用1.1 创建应用1.2 应用的添加 2. Django ORM2.1 定义数据表2.2 定义项目数据表2.3 通用字段选项2.4 外键使用2.5 应用数据库迁移 &#x1f3d8;️&#x1f3d8;️个人简介&#xff1a;以山河作礼。 &…

json-server操作restful

1.安装Node.js 默认已经内置npm&#xff0c;下载对应软件包直接安装即可。nodejs的官网 命令 描述 指令解释npm -v查看版本npm install <模块名>安装模块npm list查看所有全局安装的模块npm list -g查看某个模块的版本号npm install --save <模块名>在package.js…

【大模型】开源大模型汇总以及微调策略

目录 前言LLaMAstanford AlpacaGuanacoVicunaChinese-LLaMA-AlpacaChinese-VicunaLuotuo-Chinese FalconOpenBuddy-Falcon ChatGLM && VisualGLMMOSSAquilaPandaGPTTigerBot模型微调策略LoRAQLORAP-tuningv2 前言 自从ChatGPT出世以来&#xff0c;各个大厂/研究院都纷…

Hugging News #0609: 最新代码生成模型 StarCoder+ 和 StarChat Beta 重磅发布!

每一周&#xff0c;我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新&#xff0c;包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等&#xff0c;我们将其称之为「Hugging News」&#xff0c;本期 Hugging News 有哪些有趣的消息…

SG90舵机介绍

SG90舵机简介 SG90舵机是一种位置&#xff08;角度&#xff09;伺服的驱动器&#xff0c;适用于那些需要角度不断变化并可以保持的控制系统。在机器人机电控制系统中&#xff0c;舵机控制效果是性能的重要影响因素。舵机可以在微机电系统和航模中作为基本的输出执行机构&#x…

耗时一个月,整理了这份大厂Java面试 / 学习指南,共计1500+ 题全面解析

程序员一步入中年&#xff0c;不知不觉便会被铺天盖地的“危机感”上身&#xff0c;曾经的那个少年已经不在&#xff0c;时间就是这样公平。就算你能发明 Java 语言&#xff0c;随着时间的推移&#xff0c;你注定还是要成为慢慢变蔫的茄子&#xff0c;缓缓变黑的葡萄。 看着金…

AI不能做什么?

什么是非人工智能 每个行业都需要的 3 种人为驱动的决策能力 布兰代斯马歇尔 支持统计数据的研究报告预计高度依赖AI的未来。 • 2018年,麦肯锡全球研究院发布了一份《工作未来报告》,估计到2030年,全球将有4亿人被AI系统、工具和平台取代。 • 2023年3月,高盛发布了其《全球经…

Typora安装使用

Typora安装使用 1、概述 因为本人电脑是Mac笔记本&#xff0c;所以本文介绍下Mac M1芯片下Typora的安装使用以及在线插件的安装。 2、安装Typora 下载Typora 1.5.8&#xff1a;下载 Typora 1.5.8 - 马可菠萝 完成安装。 自定义下载喜欢的主题&#xff1a;点击文件->偏好…

day10——线性回归的改进之岭回归

线性回归的改进之岭回归 一、过拟合和欠拟合二、正则化类别三、岭回归四、实操&#xff1a;波士顿房价预测 一、过拟合和欠拟合 1&#xff0c;欠拟合 如下所示&#xff0c;机器学习到的天鹅特征太少了&#xff0c;导致区分标准太粗糙&#xff0c;不能准确识别出天鹅。 2&…

asp.net归宿管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net归宿管理系统 是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver2008&#xff0c;使用c#语言开发 asp.net归宿管理系统VS开发sqlserver数…

Android垃圾分类助手APP(Java+Android Studio+SQLite)

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;69垃圾 获取完整源码源文件说明文档报告数据库文件等 开发运行环境 开发语言&#xff1a;Java 开发工具&#xff1a;Android Studio 模拟器&#xff1a;雷电模拟器9 数据库&#xff1a;SQLite 使用的核心类及组件 Activ…

广告数仓:采集通道创建

系列文章目录 广告数仓&#xff1a;采集通道创建 文章目录 系列文章目录前言一、环境和模拟数据准备1.hadoop集群2.mysql安装3.生成曝光测试数据 二、广告管理平台数据采集1.安装DataX2.上传脚本生成器3.生成传输脚本4.编写全量传输脚本 三、曝光点击检测数据采集1.安装Zookee…

CentOS6.10上离线安装ClickHouse19.9.5.36并修改默认数据存储目录

背景 在一台装有 CentOS6.10 操作系统的主机上安装 ClickHouse &#xff08;其实本来计划是先安装 Docker &#xff0c;然后在 Docker 中快速启动 ClickHouse 的&#xff0c;但是由于 CentOS6 对 Docker 支持不好&#xff0c;就直接在系统上装 ClickHouse 吧&#xff09;&…

jvm 命令和工具, jvm 堆 内存泄露 fullgc

目录 堆太大? 堆内存分析工具 MAT JProfiler ZProfiler - 线上的mat - 已进化为Grace EagleEye-MProf - 命令行 jhat jvisual 问题 w使用JProfiler和MAT打开内存超大的hprof文件时报错的解决方案_hprof太大_CoderBruis的博客-CSDN博客 很简单,把jvm参数调整下,设置小…