diff --git a/source/_posts/CSS.md b/source/_posts/CSS.md index 49fed93..76428ae 100644 --- a/source/_posts/CSS.md +++ b/source/_posts/CSS.md @@ -5,5 +5,195 @@ author: 文永达 top_img: https://gcore.jsdelivr.net/gh/volantis-x/cdn-wallpaper/abstract/67239FBB-E15D-4F4F-8EE8-0F1C9F3C4E7C.jpeg --- +# 选择器与属性 + +## 基本语法结构 + +CSS的规则通常长这样: +```css +选择器 { + 属性: 值; +} +``` + +## 元素选择器 + +举个例子,如果我们想把网页上所有的`

`标题变成红色: + +```css +h1 { + color: red; +} +``` + +- `h1` 是 **选择器**(选中所有 h1 标签)。 +- `color` 是 **属性**(我们要改颜色)。 +- `red` 是 **值**(改成红色)。 + +这叫 **元素选择器**,因为它选中了所有叫 `h1` 的元素。没问题,我们继续!🚀 + +为了确保你完全掌握了刚才的逻辑,我先揭晓一下刚才小练习的答案。要把 `

` 标签的文字变成蓝色,代码是这样的: + +CSS + +假设你的 HTML 里有这样一个段落标签: + +```html +

我是一个普通的段落。

+``` + +如果想把这个段落的文字颜色改成 **蓝色 (blue)** + +```css +p { + color: blue; +} +``` + +很简单对吧?这叫 **元素选择器**,因为它选中了所有叫 `p` 的元素。 + +------ + +🔥 进阶:如何只选中“某一个”? + +在实际做网页时,我们通常不希望**所有**的段落都长得一样。比如,你可能希望有一个段落是特别的“警告信息”。 + +这时候,我们需要给 HTML 标签起个“名字”或者贴个“标签”。 + +1. **类 (Class)**: + - **作用**:就像给一群人穿上同样的制服。多个元素可以共用同一个 class。 + - **CSS 写法**:用 `.` (小圆点) 开头。 +2. **ID**: + - **作用**:就像身份证号。整个页面里,一个 ID 只能给一个元素用,是唯一的。 + - **CSS 写法**:用 `#` (井号) 开头。 + +## 类选择器 + +假设我们的 HTML 代码是这样的: + +```html +

注意:这是一个警告!

+ +

我只是一个路人甲。

+``` + +如果我们只想选中那个带有 `alert` 类的段落,把它的颜色变成 **红色 (red)**,CSS 选择器应该怎么写? + +**提示**:记得 Class 选择器要用 `.` 开头哦。 + +```css +.alert { + color: red; +} +``` + +## ID 选择器 + +比 Class 更“独一无二”的:**ID**。 + +在 CSS 里,我们要用 **井号 (#)** 来代表 ID。 + +```html +

欢迎来到我的主页

+``` + +如果我们想把这个标题的 **字体大小 (font-size)** 设置为 **40px**,你应该怎么写这段 CSS? + +**提示**:记得 ID 要用 `#` 开头哦。 + +```css +#main-title { + font-size: 40px; +} +``` + +## 后代选择器 (Descendant Selector) + +**根据“位置”来选元素**。 + +有时候,你不想选中“所有的 `a` 标签”,你只想选中“侧边栏 (Sidebar) 里的 `a` 标签”。这就需要用到**后代选择器**。 + +**语法规则**: 我们在两个选择器之间加一个 **空格 (Space)**,表示“里面的”意思。 + +```css +/* 选中所有在 div 里面的 p 标签 */ +div p { + color: green; +} +``` + +- `div` 是父元素(外面的)。 + +- `p` 是子元素(里面的)。 + +- 中间的**空格**很关键! + +假设我们有下面这段 HTML,里面有两个链接,但我们只想修改在 `.nav` 里面的那个链接: + +```html + + +我是普通链接 +``` + +选中 **`.nav` 里面的 `a` 标签**,并把它的颜色改成 **橙色 (orange)**。 + +**提示**:记得利用空格来表示层级关系哦! + +```css +.nav a { + color: orange; +} +``` + +## 伪类 (Pseudo-classes) + +现在你已经能控制元素“静止”时的样子了,接下来我们要让网页变得更有**互动感**。我们要学习的是 **伪类 (Pseudo-classes)**。 + +最常用的一个伪类是 `:hover`。 + +- **作用**:它是指“当鼠标**悬停**在元素上时”的那个瞬间。 +- **语法**:在选择器后面紧跟着写 `:hover` (注意:冒号前面**不能**有空格)。 + +```css +/* 例子:所有按钮在鼠标放上去时,背景变黑 */ +button:hover { + background-color: black; +} +``` + +```html + + +我是普通链接 +``` + +要求: 当鼠标**悬停**在 `.nav` 里面的 `a` 标签上时,把它的**文字颜色**变成 **绿色 (green)**。 + +**提示**:你需要把刚才学的“后代选择器”和现在的“伪类”结合起来写哦! + +```css +.nav a:hover { + color: green; +} +``` + +# 盒模型 + +既然你已经学会了怎么给元素“上色”,接下来我们要学怎么控制它们的“身材”和“距离”。 + +在 CSS 的世界里,**所有的元素(无论是图片、段落还是标题)本质上都是一个矩形的盒子**。 + +我们要控制这个盒子,主要靠这四个属性(由内向外): + +1. **内容 (Content)**:盒子的核心,就是文字或图片本身。 +2. **内边距 (Padding)**:内容和边框之间的空间。就像快递盒子里的气泡膜,保护内容不紧贴着纸箱壁。 +3. **边框 (Border)**:盒子的边缘。 +4. **外边距 (Margin)**:盒子和其他盒子之间的距离。就像人与人之间的社交距离。 + ## CSS Text(文本)