惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Stack Overflow Blog
Stack Overflow Blog
V2EX - 技术
V2EX - 技术
Microsoft Azure Blog
Microsoft Azure Blog
I
InfoQ
Blog — PlanetScale
Blog — PlanetScale
MyScale Blog
MyScale Blog
The Register - Security
The Register - Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Y
Y Combinator Blog
N
News and Events Feed by Topic
SecWiki News
SecWiki News
U
Unit 42
T
Threat Research - Cisco Blogs
TaoSecurity Blog
TaoSecurity Blog
Webroot Blog
Webroot Blog
GbyAI
GbyAI
C
Cyber Attacks, Cyber Crime and Cyber Security
V
Vulnerabilities – Threatpost
Vercel News
Vercel News
A
About on SuperTechFans
P
Proofpoint News Feed
F
Fortinet All Blogs
T
The Blog of Author Tim Ferriss
M
MIT News - Artificial intelligence
H
Hackread – Cybersecurity News, Data Breaches, AI and More
H
Hacker News: Front Page
云风的 BLOG
云风的 BLOG
Schneier on Security
Schneier on Security
阮一峰的网络日志
阮一峰的网络日志
H
Help Net Security
T
The Exploit Database - CXSecurity.com
K
Kaspersky official blog
Security Archives - TechRepublic
Security Archives - TechRepublic
P
Palo Alto Networks Blog
Help Net Security
Help Net Security
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
MongoDB | Blog
MongoDB | Blog
Jina AI
Jina AI
L
LangChain Blog
博客园 - 三生石上(FineUI控件)
爱范儿
爱范儿
The GitHub Blog
The GitHub Blog
aimingoo的专栏
aimingoo的专栏
Project Zero
Project Zero
Engineering at Meta
Engineering at Meta
S
Schneier on Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
B
Blog RSS Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC

qlAD 的技术笔记

2026 年 6 月 7 日 -- 我有社交恐惧症,恐惧外面到处雷电风雨声(大学生活记录) 手把手带你实现哈希表(C/C++ 数据结构) 手把手带你实现图结构(C/C++ 数据结构) 手把手带你实现二叉树(C/C++ 数据结构) 手把手带你实现栈和队列(C/C++ 数据结构) 手把手带你实现单/双链表(C/C++ 数据结构) 手把手带你实现动态数组(C/C++ 数据结构) 2026 年 1 月 2 日 -- 我不怕冷,因为我内心炽热 【2025 年度总结】(大学生活记录) 2025 年 12 月 2 日 -- 省电模式:大一 100 天耗电日志(大学生活记录) 蓝桥杯备赛第一期 —— 枚举与模拟 2025 年 11 月 3 日 -- 用爱发电、大爱无私(大学生活记录) 使用循环嵌套输出规则图形找规律讲解(嵌套循环-图形输出) 2025 年 10 月 1 日 -- 二字开头第一年的生日记录及感悟随笔(大学生活记录) Python 初级 04 -- 目前为止 Python 中你们做题可能会遇到的问题以及七七八八 2025 年 9 月 24 日 -- 开学后的第一课及军训汇演(大学生活记录) Python 初级 03 -- 程序设计的三种结构之选择结构和循环结构 Python 初级 02 -- 基础的数据类型和输入输出 2025 年 9 月 17 日 -- 大连 2025 国际大体联足球世界杯(大学生活记录) Python 初级 01 -- 初识编程、理解计算机语言及程序运行方式 适合大一新生学习编程的前一课 -- 编程先导(编程的本质) 2025 年 9 月 12 日 -- 三天军训感受以及一些七七八八(大学生活记录) 2025 年 9 月 9 日 -- 体检、军训前的准备(大学生活记录) 适合大一新生的计算机基础知识 -- 个人认为足够版 2025 年 9 月 7 日 -- 既来之、则安之(大学生活记录) C++ 程序的内存布局 —— 代码区、全局/静态区、栈区和堆区 联想小新 pro 16 2025 开箱记录:跳过联网、office 激活、更换 win 11 专业版 R 语言中的数学函数 计算机软件著作权申请过程记录 从聚类到回归:用 Python 解析鸢尾花数据集的完整数据科学流程 条件概率、全概率与贝叶斯公式 —— 一篇文章带你死磕概率公式 高中化学物质反应规则表 —— 方程式之间也有规律可循 集合元素性质、关系、子集公式、基本运算 —— 一篇文章带你全方面死磕集合 如何为你的项目选择合适的许可证 -- 全方位指南 解释 3:1 和 9:3:3:1 的详细来源 —— 建立减数分裂与孟德尔遗传学定律之间的联系 重新设置磁盘分区以及 Btrfs 子卷(subvolume)布局的无损方案 零基础实战:用 Docker 启动 dockermailserver 绕过 25 端口封锁搭建个人邮箱服务器 基于 GitHub Actions + OSS 的自托管 APT 仓库全面指南 如何在安装 Debian 时配置 Btrfs 子卷 | 详细分步指南 一个合格的个人网站站长应该知道哪些事? HTML 基础入门 —— 基本结构和语法 给博客添加一个文章数据统计的页面 Git 学习笔记(命令备忘表) Anki 牌组选项详细解释与设置 手动编译带有 KernelSU 的 OnePlus 6 内核 安卓类原生系统补全计划 —— PixelExperience(一加 OnePlus) 如何使用 use-sound 为 React 应用添加声音效果 标准化项目的 GitHub Flow 工作流 如何搭建设计自己的博客网站? 使用安知鱼主题同款的 Twikoo 评论组件 配置 GitHub Actions 实现自动化提交百度收录 第00期 | 环境搭建 & 递归 (一) | 基本数列递归 逐字符讲解 C 语言 HelloWorld 程序 2023 年回顾 🤟 Anki:记忆神器,助你高效学习 Gentoo 学习笔记 美化你的 PixelExperience OS Markdown 语法指南 搭建 OneDrive 目录索引 为什么用 65 表示大写字母 A
CSS 基础入门教程 —— 选择器、样式声明
qlAD · 2025-04-13 · via qlAD 的技术笔记

cover

本篇将介绍 CSS 入门知识。

CSS 基础简介

会解答像这样的问题:怎样将文本设置为红色?怎样将内容显示在屏幕的特定位置?怎样用背景图片或颜色来装饰网页?还有一些高级的 CSS 特性,比如动画和响应式设计。

CSS 是什么

Cascading Style Sheets(层叠样式表)是一种样式表语言,和 HTML 类似,CSS 不是编程语言。它也不是标记语言,而是一门样式表语言。

用于描述 HTML 文档的外观和格式。它允许开发者控制网页的布局、颜色、字体等视觉效果。

CSS 与 HTML 和 JavaScript 一起构成了现代网页开发的三大支柱。

CSS 如何起作用

CSS 用于选择性地为 HTML 元素添加样式。所以就引出了选择器和样式的概念。

假设您有以下这段 HTML 代码:

您可以使用 CSS 选择器来选择该段落元素,并为其添加样式:

p {
  color: blue;
  font-size: 20px;
}

常见的选择器就是元素选择器,可以使用它来选择所有的某个元素。还可以使用类选择器和 ID 选择器来选择特定的元素。

样式就是一组声明块,每个声明由属性和属性值组成。属性是您想要设置的样式,属性值是您想要应用的样式。

纯 CSS 可以做到什么效果

单纯使用 CSS 就可以实现很多效果,比如:

  • 颜色和背景
  • 字体和文本
  • 布局
  • 动画
  • 响应式设计
  • 交互

CSS 资源网站

https://navnav.co

CSS 资源网站

https://uiverse.io/

CSS 资源网站

CSS 规则集详解

CSS 规则集是 CSS 的基本组成部分。它由选择器和声明块组成。

CSS 规则集详解

整个结构称为规则集(规则集通常简称为规则),注意各个部分的名称:

名称描述
选择器(Selector)HTML 元素名位于规则集的开头。它定义了需要添加样式的元素(本例中就是 <p> 元素)。要给不同的元素添加样式,只需要更改选择器。
声明(Declaration)它是一条单独的规则(如 color: red;)。用来指定为元素的哪个属性添加样式。
属性(Properties)它是为 HTML 元素添加样式的方式(本例中 color 就是 <p> 元素的属性)。在 CSS 中,你可以选择要在规则中影响的属性。
属性值(Property value)位于属性的右边,冒号后面即属性值。它从指定属性的可选值中选择一个值(例如,我们除了 red 之外还有很多属性值可以用于 color)。

还需要注意一些语法规则:

  • 除了选择器部分,每个规则集都应该包含在成对的大括号里()。
  • 在每个声明里要用冒号(:)将属性与属性值分隔开。
  • 在每个规则集里要用分号(;)将各个声明分隔开。

不同的选择器

在 CSS 中有 5 种常见的选择器

  1. 元素选择器(也称作标签或类型选择器)
选择的内容示例结果
所有指定类型的 HTML 元素p {color:red;}所有的段落文字变成红色
  1. ID 选择器
选择的内容示例结果
具有特定 ID 的元素#my-id {color:red;}<p id="my-id"><a id="my-id"> 文字变成红色

单一 HTML 页面中,每个 ID 只对应一个元素,一个元素只对应一个 ID

  1. 类选择器
选择的内容示例结果
具有特定类的元素.my-class {color:red;}<p class="my-class"><a class="my-class"> 文字变成红色

单一页面中,一个类可以有多个实例

  1. 属性选择器
选择的内容示例结果
拥有特定属性的元素.img[src] {width:100px;}选择 <img src="myimage.png"> 但不是 <img>
  1. 伪类选择器
选择的内容示例结果
特定状态下的特定元素a:hover {color:red;}鼠标指针悬停在链接上时文字颜色变成红色

如何选择多个部分?

如果要同时选择多个部分,可以用逗号分隔选择器。

p,
li,
h1 {
  color: red;
}

上面的代码选择了三个元素:<p><li><h1>。它们都将被设置为红色。

伪类和伪元素

由于用户与网页互动,系统会应用以下伪类。

  1. :hover

如果用户使用鼠标或触控板等指针设备,并将其放在某个元素上,您可以使用 :hover 钩住该状态以应用样式。这是一种提示用户可以与元素互动的实用方法。

  1. :active

当用户在释放点击之前与元素进行积极互动(例如点击)时,系统会触发此状态。如果使用的是鼠标等指针设备,则此状态表示点击开始,但尚未释放。

  1. :link:visited

:link 伪类可应用于任何 <a> 元素,前提是该元素的 href 值尚未访问。:visited 则与 :link 相反

更多伪类参考:web.dev

伪元素就像添加或定位额外的元素一样,而无需添加更多 HTML。

  1. ::first-letter

如果您有一篇文章,并且希望首字母采用大号悬挂字母,就可以用 ::first-letter 伪元素

  1. ::selection

借助 ::selection 伪元素,您可以设置所选文本的外观样式。

  1. ::before::after

::before::after 伪元素会在元素内创建子元素

CSS 中的盒子模型

CSS 布局主要是基于盒子模型。每个在页面上占用空间的盒子都有类似的属性:

CSS 盒子模型

  • padding(内边距):是指内容周围的空间。
  • border(边框):是紧接着内边距的实线。
  • margin(外边距):是围绕元素边框外侧的空间。

CSS 盒子

假设您有以下这段 HTML 代码:

<p>I am a paragraph of text that has a few words in it.</p>

然后,为它编写以下 CSS:

p {
  width: 100px;
  height: 50px;
  padding: 20px;
  border: 1px solid;
}

内容最终的宽度为 142 像素,而非您指定的 100 像素

假设一个盒子的 CSS 如下:

.box {
  width: 350px;
  height: 150px;
  margin: 10px;
  padding: 25px;
  border: 5px solid black;
}

方框实际占用的空间宽为 410px(350 + 25 + 25 + 5 + 5),高为 210px(150 + 25 + 25 + 5 + 5)。

CSS 盒子大小

CSS 显示的所有内容都是一个方框,即使只是一些文本,或者有一个 border-radius 使其看起来像一个圆形。

CSS 盒子示例

常见的 CSS 属性

为了减少篇幅,详细的属性见 https://www.cainiaojc.com/css-reference/css-reference.html

CSS 基础属性

玩转盒模型

以下是 CSS 做出来的效果

参考

以上内容参考自: