CSS基础笔记-03选择器

CSS基础笔记系列

  • 《CSS基础笔记-01CSS概述》
  • 《CSS基础笔记-02动画》

前言

在前面两篇博客中,我实际上已经使用过了选择器。但到底什么是选择器、有什么作用,我反而不能表达出来。因此,决定记录了我的学习和思考。

什么是选择器

selector是css rule的第一个部分,用于匹配HTML元素,并使用规则中的属性样式化对应元素。

/* CSS syntax */
selector{property: value;
}

本文将结合具体的示例来展示:

<!DOCTYPE html>
<html lang="en"><head><meta charset="utf-8" /><title>Tao Te Ching</title><link rel="stylesheet" href="./style.css" />
</head><body><h1>第二章(治国)</h1><p class="special"><em>天下皆知美之为美,斯恶已</em>;皆知善之为善,斯不善已。</p><p>有无相生,难易相成,长短相形,高下相倾,音声相和,前后相随,恒也。</p><p>是以圣人处无为之事,行不言之教;万物作而弗始,生而弗有,为而弗恃,<strong>功成而弗居</strong>。夫唯弗居,是以不去。</p></body></html>

元素选择器

以HTML元素为作为selector。 也叫 标签选择器类型选择器

例如,以

作为选择器,那么所有的p标签都会应用这个样式。

h1 {color: blue;
}p {color: blueviolet;
}strong {color: red;
}em {color: gray;
}

在这里插入图片描述

类选择器

类选择器以一个句点(.)开头,会选择文档中应用了这个类的所有标签。例如,使用.highlight将指定的p标签高亮。
在这里插入图片描述

类选择器的组合使用:
在这里插入图片描述

ID选择器

ID选择器以一个句点(#)开头。在html中对指定的元素添加id属性,然后在css中添加对应id的样式。

在这里插入图片描述

属性选择器

用属性选择器来选中带有特定属性的元素。属性名放在[]中。

接下来通过一个无需列表来演示,属性选择器的使用:

<ul><li>第三章</li><li class="chapter4">第四章</li><li class="chapter4 chapter5">第五章</li><li class="chapter4chapter5">第六章</li></ul>
/* 将所有使用了class属性的元素的字体大小设置为20% */
[class]{font-size: 20%;
}/* 将所有含有class属性的li标签的字体大小设置为200% */
li[class]{font-size: 200%;
}/* 匹配仅有chapter4属性值的li标签*/
li[class="chapter4"]{background-color: red;
}/* 匹配只要有chapter4属性值的li标签*/
/* 当class属性有多个值时,每个值用空格分开 */
/* 说明:这个样式会覆盖上面的,因为本样式的权重值更大 */
li[class~="chapter4"]{background-color: yellow;
}

伪类选择器(pseudo-class)

用于选择处于特定状态的元素。

伪类就是开头为冒号的关键字:

selector:pseudo-class {property: value;
}

例如,我只想让article的第一个段落的文字字体加粗加大,无论任何时候都可以在article的最开始动态插入p标签且保持设置的特定样式始终有效,而不用再修改代码。

article p:first-child{font-size: 120%;font-weight: bold;
}

像常规的类一样,可以在选择器中将任意数量的伪类链在一起。

伪元素选择器(pseudo-elements)

伪元素是一个附加至选择器末的关键词,允许你对被选择元素的特定部分修改样式

selector::pseudo-element {property: value;
}

一个选择器中只能使用一个伪元素。伪元素必须紧跟在语句中的简单选择器/基础选择器之后。

/* 使用伪元素选择器,使段落的第一行文字总是被应用样式 */
/* 而不管屏幕的大小如何变化 */
article p::first-line{font-size: 120%;font-weight: bold;
}
/* 选择一个<article>元素里面的第一个<p>元素的第一行。 */
article p:first-child::first-line{font-size: 120%;font-weight: bold;
}
/* 在box类 前插入一个伪元素 */
.box::before {content: "hello";color: aqua;display: block;width: 100px;height: 100px;background-color: brown;border: 1px solid black;
}
/* 在box类 后插入一个伪元素 */
.box::after{content: "after usage";color: blue;
}

关系选择器(combinator)

后代选择器(descendant combinator)

用单个空格来组合两个或多个元素的选择器。

/* 匹配body中的article中的p标签 */
body article p

子代选择器(child combinator)

子代选择器是个大于号(>),只会在选择器选中直接子元素的时候匹配。继承关系上更远的后代则不会匹配。

<ul><li>Unordered item</li><li>Unordered item<ol><li>Item 1</li><li>Item 2</li></ol></li></ul>

ul>li {/* 非继承属性 */border: thick double #32a1ce;/* 继承属性 */color: red;
}

紧邻兄弟选择器(next-sibling combinator)

紧邻兄弟选择器(+)用来选中恰好处于另一个在继承关系上同级的元素旁边的元素。

<article><h1>一级标题</h1><p>第一段的内容</p><p>第二段的内容</p></article>
h1 + p {font-weight: bold;background-color: #333;color: #fff;padding: 2px;}

兄弟选择器(subsequent-sibling combinator)

使用(~)来选择任意兄弟元素。

<article><h1>一级标题</h1><p>第一段的内容</p><div>无效内容</div><p>第二段的内容</p></article>
h1 ~ p {font-weight: bold;background-color: #b03636;color: #fff;padding: 2px;
}

总结

本文学习了10种选择器,掌握它们的关键:一是先理解,二是多练;多使用才会积累更多的经验,多尝试不同的组合。单纯的去记,我是记不住的!!!另外,关于这篇文章的内容,等有空时录个视频,看起来就会更直观啦!关于cascading、specificity、 inheritanc还有点儿迷,明天再学习下。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件测试/测试开发丨Selenium 高级控件交互方法

一、使用场景 使用场景对应事件复制粘贴键盘事件拖动元素到某个位置鼠标事件鼠标悬停鼠标事件滚动到某个元素滚动事件使用触控笔点击触控笔事件&#xff08;了解即可&#xff09; www.selenium.dev/documentati… 二、ActionChains解析 实例化类ActionChains&#xff0c;参…

VLM,LLM等大模型如何应用于机器人控制(以强化学习为例)

VLM&#xff1a;视觉语义模型&#xff0c;准确识别图中有什么&#xff0c;处于什么状态&#xff0c;以及不同物体之间的关联。 LLM&#xff1a;语言大模型&#xff0c;可以针对当前的环境&#xff0c;自动生成可执行的任务&#xff0c;或者将人类指令重新分成可执行的子任务。…

MySQL之视图内连接、外连接、子查询

一、视图 1.1 含义 虚拟表&#xff0c;和普通表一样使用 视图&#xff08;view&#xff09;是一个虚拟表&#xff0c;其内容由查询定义。同真实的表一样&#xff0c;视图包含一系列带有名称的列和行数据。但是&#xff0c;数据库中只存放了视图的定义&#xff0c;而并没有存放…

函数图像化

函数图像化 在进行模型提取时&#xff0c;往往会需要选择拟合的函数&#xff0c;因此&#xff0c;了解函数的图像对于模型拟合提取有益&#xff0c;以下是常见的一些函数的曲线 1 二次函数 常见的耳二次函数曲线&#xff0c;转换x与y数量级差异仅一个数量级&#xff0c; 2 三…

使用EXCEL计算相关系数R和R方

对于EXCEL中的两列&#xff0c;一列是预测值&#xff0c;另一列是实测值 得到的R为0.73 R方就是R*R为0.49左右

element-ui table-自定义表格某列的表头样式或者功能

自带表格 自定义表格某列的表头样式或者功能 <el-table><el-table-column :prop"date">//自定义表身每行数据<template slot-scope"scope">{{scope.row[scope.column.label] - ? - : scope.row[scope.column.label]}}</template>…

NNDL总结

第四章 前馈神经网络 4.1 神经元 人工神经元&#xff0c;简称神经元&#xff0c;是构成神经网络的基本单元。 当>0时&#xff0c;为1&#xff0c;兴奋&#xff1b; 当<0时&#xff0c;为0&#xff0c;抑制。 激活函数的性质 1、连续可导的非线性函数。 2、激活函数及其导…

大型语言模型的幻觉问题

1.什么是大模型幻觉&#xff1f; 在语言模型的背景下&#xff0c;幻觉指的是一本正经的胡说八道&#xff1a;看似流畅自然的表述&#xff0c;实则不符合事实或者是错误的。 幻觉现象的存在严重影响LLM应用的可靠性&#xff0c;本文将探讨大型语言模型(LLMs)的幻觉问题&#x…

Python3 元组----20240105

Python 的元组与列表类似,不同之处在于元组的元素不能修改。 元组使用小括号 ( ),列表使用方括号 [ ]。 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。 >>> tup1 = (Google, Runoob, 1997, 2000) >>> tup2 = (1<

stm32引脚输入输出设置寄存器操作汇总

下图时正点原子i2c时使用的宏定义 下面的代码是对PA0-PH15的引进行了穷举法代码&#xff0c;使用的时候只需要拷贝三行相应的引脚即可。 //IO方向设置 #define IIC_SDA PAout(0) //SDA #define SDA_IN() {GPIOA->CRL&0XFFFFFFF0;GPIOA->CRL|(u32)8<<0…

CMU15-445-Spring-2023-Project #1 - Buffer Pool

在存储管理器中实现缓冲池。缓冲池负责将物理页从主内存来回移动到磁盘。它允许 DBMS 支持大于系统可用内存量的数据库。缓冲池的操作对系统中的其他部分是透明的。例如&#xff0c;系统使用page唯一标识符&#xff08;page_id_t&#xff09;向缓冲池请求一个页面&#xff0c;但…

面试十分钟不到就被赶出来了,问的问题有点变态

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到12月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…