0%

CSS 伪类详解:UI 伪类与结构化伪类的用法与实战

CSS 伪类(Pseudo-class)是一种特殊的选择符,用于选择处于特定状态或具有特定结构关系的元素—— 它们无需在 HTML 中添加实际的 classid,而是通过元素的 “动态状态”(如鼠标悬停)或 “结构位置”(如列表第 3 项)来定位元素。伪类极大地扩展了 CSS 的选择能力,是实现交互效果和结构化样式的核心工具。从 “核心概念→分类详解→实战场景→注意事项” 四个维度,全面讲解伪类的使用方法与进阶技巧。

伪类核心概念

1. 伪类的语法

伪类以冒号 : 开头,紧跟伪类名称,语法格式如下:

1
2
3
4
5
6
7
8
9
/* 基础语法:选择符 + 伪类 */
选择符:伪类名称 {
属性: 值;
}

/* 示例:为 hover 状态的 <a> 标签设置样式 */
a:hover {
color: red;
}

2. 伪类的核心特点

  • 无实际 class:伪类不依赖 HTML 中的 class 属性,而是基于元素的 “状态” 或 “结构” 动态生效;
  • 动态性:UI 伪类(如 :hover)会随用户操作(如鼠标移动)实时切换样式;
  • 结构性:结构化伪类(如 :nth-child)仅依赖 HTML 结构(如元素在父容器中的位置),与用户操作无关;
  • 可叠加使用:多个伪类可叠加(如 a:link:hover,表示 “未点击的链接被悬停时”)。

UI 伪类:基于元素状态的样式

UI 伪类(UI Pseudo-classes)用于选择处于特定交互状态的元素,核心场景是响应用户操作(如点击、悬停、聚焦),最典型的应用是链接样式控制。

1. 链接相关的 UI 伪类

链接(<a> 标签)是 UI 伪类最常用的场景,4 个伪类分别对应链接的不同生命周期状态,必须按固定顺序书写linkvisitedhoveractive),否则样式可能失效。

阅读全文 »

next主题修改侧边栏icon

next主题中使用的是由 Font Awesome提供的图标,对于国内应用的图标基本都不支持。为了实现侧边栏小图标的展示,只能自己来设置样式了。

iconfont来下载自己需要的icon,选择svg格式下载,并将文件保存在source\images目录下。

next主题提供了自定义样式的口子,在next下的_config.yml配置文件中有custom_file_path,可以用来进行自定义配置

1
2
3
4
5
6
7
8
9
10
11
custom_file_path:
#head: source/_data/head.swig
#header: source/_data/header.swig
#sidebar: source/_data/sidebar.swig
#postMeta: source/_data/post-meta.swig
#postBodyEnd: source/_data/post-body-end.swig
#footer: source/_data/footer.swig
#bodyEnd: source/_data/body-end.swig
#variable: source/_data/variables.styl
#mixin: source/_data/mixins.styl
style: source/_data/styles.styl

把style的注释放开,然后在对应目录下创建对应的styles.styl

阅读全文 »

MySQL 修改自增 ID 初始值:方法与注意事项

自增 ID(AUTO_INCREMENT)是 MySQL 中常用的主键生成方式,默认从 1 开始递增。但在迁移数据、同步历史记录等场景下,可能需要修改自增 ID 的初始值。本文详细讲解如何查询和修改自增 ID,以及操作时的关键注意事项。

查询当前自增 ID 值

在修改自增 ID 前,需先确认表当前的自增计数器值,可通过以下方式查询:

方法 1:SHOW TABLE STATUS

1
2
-- 查看指定表的自增ID当前值
SHOW TABLE STATUS LIKE '表名';
  • 结果中 Auto_increment 字段的值即为下一个将要生成的自增 ID(例如该值为 100,则下次插入的 ID 为 100)。

方法 2:查询系统表(information_schema

1
2
3
4
5
-- 从系统表中获取自增ID信息
SELECT AUTO_INCREMENT
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = '数据库名'
AND TABLE_NAME = '表名';
  • 该方法更适合在脚本中动态获取自增 ID 值。

修改自增 ID 初始值

使用 ALTER TABLE 语句可直接修改自增 ID 的初始值,语法如下:

1
2
-- 将表的自增ID初始值设置为 N(下次插入的ID将从 N 开始)
ALTER TABLE 表名 AUTO_INCREMENT = N;

示例:

阅读全文 »

Pygame 安装指南(Python 3.x)

Pygame 是一款用于游戏开发的 Python 库,支持图形渲染、音频处理、输入响应等功能。以下是针对 Python 3.x 版本的详细安装步骤:

使用 pip 安装(推荐)

Pygame 已发布到 PyPI 仓库,可直接通过 Python 包管理工具 pip 安装,步骤如下:

打开终端 / 命令提示符

  • Windows:按下 Win + R,输入 cmd 打开命令提示符。
  • macOS/Linux:打开终端(Terminal)。

执行安装命令

由于使用 Python 3.x,建议明确使用 pip3 以避免与 Python 2.x 的 pip 混淆:

1
pip3 install pygame
阅读全文 »

Python 异常处理详解(Python 3.x)

异常处理是编程中应对错误的重要机制,Python 提供了灵活的异常处理语法,通过 tryexceptelsefinally 等关键字实现对错误的捕获、处理和资源清理。本文将详细介绍 Python 异常处理的基本用法、手动抛异常及常见场景。

基本异常处理结构

Python 异常处理的核心语法是 try...except,用于捕获并处理程序运行中可能出现的错误。

基础结构:try...except

1
2
3
4
5
6
try:
# 可能发生异常的代码块
result = 1 / 0 # 除数为 0,会触发 ZeroDivisionError
except ZeroDivisionError as e:
# 捕获特定异常并处理
print(f"发生错误:{e}") # 输出:发生错误:division by zero

说明

  • try 块:包含可能触发异常的代码。
  • except 块:指定要捕获的异常类型,as e 用于获取异常对象(包含错误信息)。
  • try 块中无异常,except 块不执行;若发生指定类型的异常,跳至 except 块处理。

捕获多种异常

可使用多个 except 块处理不同类型的异常,或在一个 except 中捕获多个异常:

1
2
3
4
5
6
7
8
9
10
try:
num = int(input("请输入一个整数:"))
result = 10 / num
except ValueError:
print("输入错误:请输入有效的整数")
except ZeroDivisionError:
print("计算错误:除数不能为 0")
except (TypeError, OverflowError):
# 同时捕获多种异常(用元组包裹)
print("其他类型错误")

执行逻辑

  • 程序按顺序检查 except 块,匹配到第一个对应异常类型后执行,不再检查后续块。
  • 建议先捕获具体异常(如 ValueError),再捕获通用异常(如 Exception),避免覆盖特定异常。

捕获所有异常(不推荐)

使用 except Exception 可捕获所有非系统退出的异常(不包括 KeyboardInterrupt 等):

阅读全文 »