【CSS】选择器(基础选择器、复合选择器、属性匹配选择器、结构伪类选择器、伪元素选择器)

news2025/1/8 5:01:27

选择器

  • 引入方式
  • 基础选择器
  • 复合选择器
  • 属性匹配选择器
  • 结构伪类选择器
  • 伪元素选择器

引入方式

1:外联

<!-- css引入方式1:外联   外联与内嵌优先级相同,取决于加载顺序 -->

<link rel="stylesheet" type="text/css" href="./index.css">

2:内嵌

<!-- css引入方式2:内嵌(内部样式)   位于 head 标签内 -->

<style>
	.myclass{
	    background-color: pink;
	 }    
</style>

3:内联

<!-- css引入方式3:内联   优先级最高 -->

<div style="background-color: red;width: 100px;"></div>

基础选择器

id选择器类选择器标签选择器通配符选择器

<style>
        div{
        	/* 优先级提到最高(但同样可能会被覆盖): !important */
            background-color: green !important;  
        }

        /* 标签选择器 */
        nav{
            width: 100%;
            height: 75px;
            background-color: yellow;
        }
        
        /* id选择器 */
        #mynav{
            width: 200px;
            height: 200px;
            background-color: green;
        }
        
        /* 类选择器 */
        .myclass{
            background-color: pink;
        }

        /* 通配符选择器 */
        *{
            margin: 0;
            padding: 0;
        }

		/* 优先级:id选择器 > 类选择器 > 标签选择器 > 通配符选择器 */        

    </style>

复合选择器

后代选择器直系选择器并集选择器交集选择器兄弟选择器

<style>
        /* css选择器的权重计算: 内联(1000) > id(100)> class(10)> 标签(1)> *(0) */
        #page_header .left img{
            /* id为 page_header的标签下面的类为 left的标签下面的 img标签被选中 */
        }

        /* 后代选择器 */
        #page_header .mynav .left{  /* 100+10+10 */
        	/* 不一定是父子关系 */
            color: green;
        }

        /* 直系选择器 */
        #page_header>nav>.left{  /* 100+1+10 */
            /* 必须是父子关系 */
            color: red;
        }

        /* 并集选择器 */
        nav,li{
            /* 逗号(表示:和)*/
            font-size: 24px;
        }

        /* 交集选择器 */
        li.left{
            /* 紧挨在一起,中间无空格 */
            background-color: aquamarine;
        }
        
        /* ~所有弟弟  +紧邻的弟弟 */
		#bro+span {
			background-color: green;
		}
</style>

属性匹配选择器

^*$

<style>
        /* 全匹配 */
        div[class="yangshi"]{
            background-color: gold;
        }

        /* 开头匹配 */
        input[type^="t"] {
	        border: none;
	        border-bottom: 1px solid red;
        } 

        /* 结尾匹配 */
        input[type$="d"] {
	        border: none;
	        border-bottom: 1px solid red;
        }
        
        /* 包含 */
        input[type*="o"] {
	        border: none;
	        border-bottom: 1px solid red;
        } 
</style>

结构伪类选择器

:first-child:first-of-type

<style>
	#myDiv :first-child {
	 background-color: #84c284;
	}
	#myDiv span:first-of-type {
		background-color: #e6a9fc;
	}
	#myDiv2>:first-child {
		background-color: #7eb6ff;
	}
	#myDiv2>span:first-of-type {
		background-color: #ffe054;
	}
</style>
<div id="myDiv">
	<div>我是myDiv的第 1 个孩子div</div>
	<div id="myDiv_2Son">
		<p>我是myDiv_2Son的第 1 个孩子p</p>
		<span>我是myDiv_2Son的第 2 个孩子,第 1 个span</span>
	</div>
	<span>我是myDiv的第 3 个孩子,第 1 个span</span>
</div>
<div id="myDiv2">
	<div>我是myDiv2的第 1 个孩子div</div>
	<div id="myDiv2_2Son">
		<p>我是myDiv2_2Son的第 1 个孩子p</p>
		<span>我是myDiv2_2Son的第 2 个孩子,第 1 个span</span>
	</div>
	<span>我是myDiv2的第 3 个孩子,第 1 个span</span>
</div>

效果:
在这里插入图片描述

:nth-child(n):nth-of-type(n)n从1开始

<style>
	#myDiv :nth-child(2) {
		background-color: #84c284;
	}
	#myDiv p:nth-of-type(2) {
		background-color: #e6a9fc;
	}
</style>
<div id="myDiv">
	<div>我是myDiv的第 1 个孩子div</div>
	<div>我是myDiv的第 2 个孩子div</div>
	<div id="myDiv_3Son">
		<span>我是myDiv_3Son的第 1 个孩子span</span>
		<p>我是myDiv_3Son的第 2 个孩子,第 1 个p</p>
		<p>我是myDiv_3Son的第 3 个孩子,第 2 个p</p>
	</div>
	<p>我是myDiv的第 4 个孩子,第 1 个p</p>
	<p>我是myDiv的第 5 个孩子,第 2 个p</p>
</div>

效果:
在这里插入图片描述

:nth-child(公式)

<style>
	/* 选择div标签的奇数个 odd */
	div:nth-child(2n-1){
		background-color: #ecff7f;
	}
	/* 选择div标签的偶数个 even */
	div:nth-child(2n){
		background-color: #7e9aff;
	}
	/* 选择li标签的3的倍数个 */
	li:nth-child(3n){
		background-color: #ecff7f;
	}
	/* 选择li标签的第5个之后的标签(包括第5个) */
	li:nth-child(n+5){
		color: deeppink;
	}
	/* 选择li标签的第2个之前的标签(包括第2个) */
	li:nth-child(-n+2){
		color: #0fa612;
	}
</style>
<div>我是第 1 个</div>
<div>我是第 2 个</div>
<div>我是第 3 个</div>
<div>我是第 4 个</div>
<ul>
	<li>1</li>
	<li>2</li>
	<li>3</li>
	<li>4</li>
	<li>5</li>
	<li>6</li>
</ul>

效果:
在这里插入图片描述

:last-child:last-of-type

<style>
	#myDiv :last-child {
	 background-color: #84c284;
	}
	#myDiv p:last-of-type {
		background-color: #e6a9fc;
	}
</style>
<div id="myDiv">
	<div id="myDiv_1Son">
	<p>我是myDiv_1Son的第 1 个孩子,第 1 个p</p>
		<p>我是myDiv_1Son的第 2 个孩子,第 2 个p</p>
		<span>我是myDiv_1Son的第 3 个孩子span</span>
	</div>
	<p>我是myDiv的第 2 个孩子,第 1 个p</p>
	<p>我是myDiv的第 3 个孩子,第 2 个p</p>
	<div>我是myDiv的第 4 个孩子</div>
</div>

效果:
在这里插入图片描述

:only-child:only-of-type

<style>
	#myDiv :only-child {
		background-color: #84c284;
	}
	#myDiv p:only-of-type {
		background-color: #e6a9fc;
	}
</style>
<div id="myDiv">
	<div id="myDiv_1Son">
		<div>我是myDiv_2Son唯一的孩子</div>
	</div>
	<div>我是myDiv的第 3 个孩子div</div>
	<p>我是myDiv的第 4 个孩子,唯一的p</p>
</div>

效果:
在这里插入图片描述

:not()

<style>
	#myDiv :not(:nth-child(2)) {
		background-color: #84c284;
	}
	#myDiv2 :not(p) {
		background-color: #e6a9fc;
	}
</style>
<div id="myDiv">
	<div>我是第 1 个孩子div</div>
	<p>我是第 2 个孩子p</p>
	<div>我是第 3 个孩子div</div>
</div>
<div id="myDiv2">
	<div>div</div>
	<p>p</p>
</div>

效果:
在这里插入图片描述

:hover:link:visited:active:focus:checked:disabled

一个冒号代表伪类,伪类是基于当前元素的某种状态

<style>
	/*注意: :visited 应该在 :link 之后,:hover 必须位于 :link 和 :visited 之后, :active必须位于 :hover之后*/
	a:link{
		background-color: pink;
	}
	/* :link :visited 未访问时和已访问时 */
	a:visited{
		background-color: #546aff;
	}
	/* :hover 鼠标悬停在上面时 */
	a:hover{ 
		background-color: #e31dff;
	}
	/* :active 被激活时 */
	a:active{ 
		background-color: #22a200;
	}
	/* :focus 拥有焦点时 */
	input[type="text"]:focus{
		background-color: #93f879;
	}
	/* :checked 处于选中状态时 */
	input[type="checkbox"]:checked{
		width: 30px;
		height: 30px;
	}
	/* :disabled 处于禁用状态时 */
	button:disabled{
		background-color: #fffb00;
	}
</style>
<a href="./7.定位.html">超链接</a>
<input type="text">
<input type="checkbox">
<button disabled>按钮</button>

效果:
在这里插入图片描述

伪元素选择器

::before::after::selection::first-line::first-letter::placeholder

两个冒号代表伪元素,伪元素是对元素中的特定内容进行操作

<style>
	/* ::after 在选定元素的内容前插入内容 */
	#myDiv::before{
		content: "啦啦啦啦"; /* ::after ::before必须设置content属性,用来设置伪元素的内容,如果没有内容则引号留白即可 */
		color: #e10730;
	}
	/* ::before 在选定元素的内容后插入内容 */
	#myDiv::after{
		content: "嘻嘻嘻嘻";
		color: #0fa612;
	}
	/* ::selection 选定元素中被鼠标拖选中的文本样式 */
	p::selection{
		background-color: #dfff1e;
	}
	/* ::first-letter 选定元素的段落中首字母样式 */
	p::first-letter{
		font-size: 50px;
		font-weight: 700;
	}
	/* ::first-line 选定元素的第一行文本样式 */
	textarea::first-line{
		color: #e10730;
		text-decoration: line-through;
	}
	/* ::placeholder 选定元素的占位符文本的样式,通常用于 input 和 textarea 元素 */
	input::placeholder {
		text-align: center;
		color: red;
	}
</style>
<div id="myDiv">
	<span>文字</span>
	<div>文字</div>
</div>
<p>可能产生即从次你说说对决是的上的点击菜单扫判搜索</p>
<textarea rows="5" cols="10">可能产生即从次你说说能产生即从次你说说对决是的上的点击菜单搜索</textarea>
<input type="text" placeholder="哈哈哈">

效果:
在这里插入图片描述

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

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

相关文章

箭头检测系统源码分享

箭头检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

子查询优化

MySQL学习大纲 我的数据库学习大纲 1、什么是子查询&#xff1a; 1.MySQL 从 4.1 版本开始支持子查询&#xff0c;使用子查询可以进行 SELECT 语句的嵌套查询&#xff0c;即一个 SELECT 查询的结果作为另一个 SELECT 语句的条件。子查询可以一次性完成很多逻辑上需要多个步骤才…

二分+构造,CF 1063C - Dwarves, Hats and Extrasensory Abilities

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1063C - Dwarves, Hats and Extrasensory Abilities 二、解题报告 1、思路…

AtCoder ABC370 A-D题解

比赛链接:ABC370 AT 上 400 分寄。 Problem A: Code #include <bits/stdc.h> using namespace std; int main(){int L,R;cin>>L>>R;if(LR)cout<<"Invalid"<<endl;else if(L1)cout<<"YES"<<endl;elsecout<…

【数据结构】经典题

所以&#xff0c;语句 x; 的语句频度为&#xff1a;n(n1)(n2&#xff09;/6 选C 临时变量 t&#xff1a;只使用了一个额外的变量来存储交换的值。 没有使用额外的数组&#xff1a;所有的操作都是在原数组 a 上进行的。 因此&#xff0c;算法的空间复杂度是常数级别的&#xff0…

定位HardFault

一、HardFault定义 STM32出现HardFault_Handler硬件错误的原因主要有两个方面&#xff1a; 1、内存溢出或者访问越界。&#xff08;包括使用野指针&#xff09; 2、堆栈溢出。 二、定位HardFault步骤 1. 判断所使用堆栈&#xff1a; 发生异常之后可首先查看LR寄存器中的值…

十五,Spring Boot 整合连接数据库(详细配置)

十五&#xff0c;Spring Boot 整合连接数据库(详细配置) 文章目录 十五&#xff0c;Spring Boot 整合连接数据库(详细配置)最后&#xff1a; JDBC HikariDataSource(Spring Boot内置的数据库) HikariDataSource: 目前市面上非常优秀的数据源&#xff0c;是 Spring Boot2默认数…

gcc/g++的使用:

目录 (1). 程序的翻译过程 预处理&#xff1a; gcc -E 源文件 编译&#xff1a; gcc -S 源文件 汇编&#xff1a;gcc -c 源文件 连接&#xff1a; (2) 语言的自举(也叫 编译器的自举)&#xff1a; (3). 查看可执行程序在连接时依赖的库: ldd 可执行程序的名字 。 (4). …

C语言 | Leetcode C语言题解之第414题第三大的数

题目&#xff1a; 题解&#xff1a; int cmp(const void *a, const void *b) {return *(int*)a < *(int*)b; }int thirdMax(int* nums, int numsSize){qsort(nums, numsSize, sizeof(nums[0]), cmp);int diff 0;for (int i 1; i < numsSize; i) {if (nums[i] ! nums[i…

体感魂斗罗-开篇

文章目录 前言新的目标Flag 前言 黑神话悟空大火&#xff0c;9月14&#xff0c;周鸿祎在抖音平台分享了360团队用两天的业余时间将《黑神话&#xff1a;悟空》爆改为体感游戏的过程&#xff0c;通过身体动作来控制游戏中的角色&#xff0c;实现更加自然和直观的操作方式。 把…

【秋招笔试-支持在线评测】8.28华为秋招(已改编)-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 大厂实习经历 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 华为专栏传送🚪 -> 🧷华为春秋招笔试 目前今年秋招的笔…

Golang | Leetcode Golang题解之第414题第三大的数

题目&#xff1a; 题解&#xff1a; func thirdMax(nums []int) int {var a, b, c *intfor _, num : range nums {num : numif a nil || num > *a {a, b, c &num, a, b} else if *a > num && (b nil || num > *b) {b, c &num, b} else if b ! ni…

直播标准权威发布,阿里云RTS获首批卓越级评估认证

近期举办的2024“可信云大会”上&#xff0c;中国信通院正式发布了2024年上半年音视频领域最新评估结果。阿里云超低延时直播&#xff0c;以首批卓越级&#xff0c;通过中国信通院超低延时直播性能及服务质量分级测试。 标准发布&#xff0c;权威量化直播体验质量 从直播元年发…

如何通过 4 种方法恢复 Mac 上删除/未保存的 Excel 文件

您花了数小时在 MacBook 上处理 Excel 工作簿&#xff0c;但现在它不见了。或者&#xff0c;当您退出 Excel 文件时&#xff0c;您无意中选择了“不保存”。这是否意味着您的所有努力都白费了&#xff1f;本文系统地解释了如何在 Mac 上恢复丢失的 Excel 文件。使用我们的 4 种…

Unity项目的脚本继承关系

1.Unity项目的脚本继承关系包括四层&#xff1a;自己的脚本、MonoBehaviour、Behaviour、Component、Object。 2.通过F12跳转可以查看各继承类中的方法和属性&#xff0c;如MonoBehaviour类中主要包括协程和相关API。 3.Component类中包含组件的只读属性、消息发送等API&…

实景三维助力工程建设项目智慧选址

随着科技的不断进步&#xff0c;实景三维技术已经成为城市规划和工程建设中不可或缺的一部分。它通过高精度的地理信息数据&#xff0c;为工程建设项目提供了智慧选址的新思路。 1. 实景三维技术简介 实景三维技术&#xff0c;是一种利用遥感、地理信息系统&#xff08;GIS&a…

linux环境编程

linux一切皆文件&#xff08;除了网口&#xff09; 内核链表&#xff1a;通过内核链表进行管理&#xff0c;所有一切皆文件 系统io&#xff08;open&#xff0c;read&#xff0c;close&#xff09; open 查看命令&#xff1a;man 2 open 头文件&#xff1a; #include <s…

【入门】配置 Java 应用程序的完整指南

前言&#xff1a; Java 是一种广泛使用的编程语言&#xff0c;具备跨平台的特性&#xff0c;使得其应用程序可以在多种环境中高效运行。本文将介绍如何将 Java 应用程序从开发环境部署到生产环境&#xff0c;确保其能够稳定、稳定地运行运行。 确定运行环境 Java程序可以运行…

vue 案例使用

el-switch 按键的使用 <el-switchclass"switchStyle" v-model"boolValue" :active-value"1" :inactive-value"0" active-text"ON" inactive-text"OFF" active-color"#13ce66" inactive-color&qu…

基于 PyQt5 和 OpenCV 进行图像处理操作的GUI工具初版

为了实现一个基于 PyQt5 和 OpenCV 的图形用户界面&#xff08;GUI&#xff09;&#xff0c;要求如下&#xff1a; 左边显示加载的图片。 中间提供各种对图片进行处理的操作方法&#xff08;如灰度化、模糊处理等&#xff09;。 右边显示处理后的效果图。 接下来我将详细讲解如…