CSS 美化页面(一)
一、CSS概念
CSS(Cascading Style Sheets,层叠样式表)是一种用于描述 HTML 或 XML(如 SVG、XHTML)文档 样式 的样式表语言。它控制网页的 外观和布局,包括字体、颜色、间距、背景、动画等视觉效果。
二、CSS 的作用
-
样式与结构分离
-
HTML 负责网页的 内容结构(如标题、段落、图片)。
-
CSS 负责 视觉表现(如字体大小、颜色、布局)。
-
两者分离使代码更易维护和修改。
-
-
控制网页外观
-
精确调整元素的 颜色、字体、间距、边框、背景 等。
-
实现 响应式设计(适配手机、平板、电脑等不同设备)。
-
-
布局与动画
-
通过 Flexbox、Grid 等实现复杂布局。
-
使用 过渡(Transition)和动画(Animation) 增强交互体验。
-
三、CSS 的基本工作原理
-
选择器(Selector)
指定要样式化的 HTML 元素(如p、.class、#id)。 -
属性与值(Property & Value)
定义具体的样式规则(如color: red;)。 -
层叠(Cascading)
-
当多个样式规则冲突时,按 优先级 决定最终效果。
-
优先级规则:
!important> 内联样式 > ID > 类 > 元素选择器。
-
四、CSS 基本语法
选择器 {属性: 值; /* 声明块 */
}
h1 {color: red; /* 文字颜色 */font-size: 24px; /* 字号 */
}
五、CSS 的三种引入方式
| 方式 | 示例 | 适用场景 |
|---|---|---|
| 内联样式 | <p style="color: red;"> | 快速测试,但不推荐大规模使用 |
| 内部样式表 | <style> p { color: red; } </style> | 小型项目或单页 |
| 外部样式表 | <link href="style.css" rel="stylesheet"> | 主流方式,便于维护 |
六、CSS 基础选择器
| 选择器类型 | 示例 | 作用 |
|---|---|---|
| 元素选择器 | p | 选择所有 <p> 标签 |
| 类选择器 | .active | 选择 class="active" 的元素 |
| ID 选择器 | #main | 选择 id="main" 的元素 |
| 通配选择器 | * | 选择所有元素 |
| 属性选择器 | [type="text"] | 选择指定属性的元素 |
| 分组选择器 | h1, h2 | 同时选择多个元素 |
补充说明
优先级:ID 选择器 > 类选择器 > 元素选择器 > 通配选择器。
组合使用:基础选择器可组合成更复杂的选择器(如后代选择器
.box p)。
实际应用:
1. 元素选择器(标签选择器)
场景:统一设置所有段落文本的样式。
<p>这是一个普通段落。</p><p>这是另一个段落。</p>
/* 选中所有 <p> 元素 */p {font-size: 36px;line-height: 1.5;color: #bd2222;border: 3px solid #ccc;}

2. 类选择器(Class Selector)
场景:标记需要高亮的按钮和警告文本。
<button class="btn-primary">提交</button><div class="alert">警告信息!</div>
/* 选中所有 class="btn-primary" 的元素 */.btn-primary {background: blue;color: white;}/* 选中所有 class="alert" 的元素 */.alert {color: rgb(178, 192, 95);font-weight: bold;background: rgb(48, 35, 35);border: 1px solid rgb(178, 192, 95);width:100px;height:20px;}

3. ID 选择器
场景:设置页面顶部导航栏的样式(ID 唯一)。
<nav id="main-nav"><a href="#">首页</a><a href="#">登录</a><a href="#">注册</a></nav>
/* 选中 id="main-nav" 的元素 */#main-nav {background: black;padding: 10px;}/* 选中导航栏内的 <a> 标签 */#main-nav a {color: white;text-decoration: none;padding: 5px 10px;}

4. 通配选择器(Universal Selector)
场景:重置默认边距和盒模型。
/* 全局重置 */
* {margin: 0;padding: 0;box-sizing: border-box;
}
所有元素的外边距和内边距被清零,盒模型更易控制。

5. 属性选择器(Attribute Selector)
场景:为所有外部链接添加图标。
<a href="https://www.baidu.com" target="_blank">外部链接</a><a href="./my.html" name="inner">内部链接</a>
/* 选中带有 target="_blank" 的 <a> 标签 */a[target="_blank"]::after {content: "↗";margin-left: 5px;}a[name="inner"]::after {content: "↗";margin-left: 5px;}

6. 分组选择器(Grouping Selector)
场景:统一标题字体。
<h1>标题1</h1><h2>标题2</h2><h3>标题3</h3>
/* 同时选中 h1, h2, h3 */h1,h2,h3 {font-family: "Microsoft YaHei", sans-serif;margin-bottom: 10px;color: blueviolet;}

综合案例:一个简单的卡片组件
<div class="card" id="featured-card"><h2 class="card-title">特别推荐</h2><p class="card-content">请单击查看详情</p><button type="button" class="btn">了解更多</button></div>
/* 元素选择器 */p {margin: 5px 0;}/* 类选择器 */.card {width: 150px;height: 180px;/* 为卡片添加边框 */border: 5px solid #ddd;padding: 5px;}.card-title {font-size: 25px;text-align: center;}.card-content {font-size: 20px;text-align: center;color: cadetblue;} .btn {background: orange;color: white;margin-left: 60px;margin-top: 30px;}/* ID 选择器 */#featured-card {border-color: gold;/* 高亮特色卡片 */}

相关文章:
CSS 美化页面(一)
一、CSS概念 CSS(Cascading Style Sheets,层叠样式表)是一种用于描述 HTML 或 XML(如 SVG、XHTML)文档 样式 的样式表语言。它控制网页的 外观和布局,包括字体、颜色、间距、背景、动画等视觉效果。 二、CS…...
23种设计模式-组合(Composite)设计模式
组合设计模式 🚩什么是组合设计模式?🚩组合设计模式的特点🚩组合设计模式的结构🚩组合设计模式的优缺点🚩组合设计模式的Java实现🚩代码总结🚩总结 🚩什么是组合设计模式…...
LSTM创新点不足?LSTM + Transformer融合模型引领Nature新突破
LSTM创新点不足?LSTM Transformer融合模型引领Nature新突破 2024年LSTM真的没有创新空间了吗? 最新研究表明,通过将LSTM与Transformer巧妙融合,依然能创造出Nature级别的突破性成果。LSTM擅长处理短期时序模式,但在…...
【区块链安全 | 第六篇】NFT概念详解
文章目录 NFTNFT(非同质化代币)FT(可替代代币) 以太坊 NFT 标准ERC-721(单一资产)ERC-1155(多资产) NFT 市场版税机制NFT 借贷NFT 安全 NFT NFT(Non-Fungible Token&…...
React组件简介
组件 在 React 中,组件(Component) 是 UI 的基本构建块。可以把它理解为一个独立的、可复用的 UI 单元,类似于函数,它接受输入(props),然后返回 React 元素来描述 UI。 组件的简单…...
iOS常见网络框架
URLSession、Alamofire 和 Moya 1. URLSession 1.1 核心概念 URLSession 是 Apple 官方提供的网络请求 API,封装在 Foundation 框架中。它支持 HTTP、HTTPS、FTP 等协议,可用于: • 普通网络请求(GET/POST) …...
蓝桥杯备考---->激光炸弹(二维前缀和)
本题我们可以构造二维矩阵,然后根据题意,枚举所有边长为m的正方形,找到消灭价值最多的炸弹 #include <iostream> using namespace std; const int N 1e4; int a[N][N]; int n,m; int f[N][N]; int main() {cin >> n >> m…...
python笔记之判断月份有多少天
1、通过随机数作为目标月份 import random month random.randint(1,12)2、判断对应的年份是闰年还是平年 因为2月这个特殊月份,闰年有29天,而平年是28天,所以需要判断对应的年份属于闰年还是平年,代码如下 # 判断年份是闰年还…...
数据结构 --树和森林
树和森林 树的存储结构 树的逻辑结构 树是一种递归定义的数据结构 树是n(n≥0)个结点的有限集。当n0时,称为空树。在任意一棵非空树中应满足: 1)有且仅有一个特定的称为根的结点。 2)当n>1时,其余结点可分为m(m>0)个互不相交的有…...
QOpenGLWidget视频画面上绘制矩形框
一、QPainter绘制 在QOpenGLWidget中可以绘制,并且和OpenGL的内容叠在一起。paintGL里面绘制完视频后,解锁资源,再用QPainter绘制矩形框。这种方式灵活性最好。 void VideoGLWidget::paintGL() {glClear(GL_COLOR_BUFFER_BIT);m_program.bi…...
Linux系统加固笔记
检查口令为空的账户 判断依据:存在则不符合 特殊的shell a./bin/false:将用户的shell设置为/bin/false,用户会无法登录,并且不会有任何提示信息b./sbib/nologin:nologin会礼貌的向用户发送一条消息,并且拒绝用户登录…...
【Go万字洗髓经】Golang中sync.Mutex的单机锁:实现原理与底层源码
本章目录 1. sync.Mutex锁的基本用法2. sync.Mutex的核心原理自旋到阻塞的升级过程自旋CAS 饥饿模式 3. sync.Mutex底层源码Mutex结构定义全局常量Mutex.Lock()方法第一次CAS加锁能够成功的前提是?竞态检测 Mutex.lockSlow()lockSlow的局部变量自旋空转state新值构造…...
npm前端模块化编程
1. 代码编写 使用npm和Webpack进行前端模块化编程的完整案例。这个案例将创建一个简单的网页,该网页显示一个标题和一个按钮,点击按钮会在控制台中打印一条消息。 步骤 1: 初始化项目 创建项目目录并初始化npm: mkdir my-modular-fronten…...
Django REST framework 源码剖析-认证器详解(Authentication)
Django REST framework 源码剖析-认证器详解(Authentication) 身份验证始终在视图的最开始运行,在权限和限制检查发生之前,以及在允许任何其他代码继续之前。request.user属性通常设置为contrib.auth包的user类的实例。request.auth属性用于任何其他身份…...
TCP/IP三次握手的过程,为什么要3次?
一:过程 第一次(SYN): 客户端发送一个带有SYN标志的TCP报文段给服务器,设置SYN1,并携带初始序列号Seqx(随机值),进入SYN_SENT状态。等待服务器相应。 第二次(…...
Centos6安装nerdctl容器运行时
Centos6安装nerdctl容器运行时 前言Centos6安装docker---失败--不可拉取镜像docker配置国内镜像加速 Centos6安装nerdctl-full容器管理工具为Centos6配置containerd服务开机自启动设置nerdctl自动补全 前言 本文写于2025年3月22日,因一些特殊业务需要用到Centos6Docker,但Cent…...
登录验证码的接口实习,uuid,code.
UID是唯一标识的字符串,下面是百度百科关于UUID的定义: UUID是由一组32位数的16进制数字所构成,是故UUID理论上的总数为16322128,约等于3.4 x 10^38。也就是说若每纳秒产生1兆个UUID,要花100亿年才会将所有UUID用完。 UUID的标准…...
用fofa语法搜索漏洞
FOFA是一款非常强大的搜索引擎 关于对于fofa的描述是:FOFA(网络空间资产检索系统)是世界上数据覆盖更完整的IT设备搜索引擎,拥有全球联网IT设备更全的DNA信息。 探索全球互联网的资产信息,进行资产及漏洞影响范围分析…...
设计一个基于机器学习的光伏发电功率预测模型,以Python和Scikit - learn库为例
下面为你设计一个基于机器学习的光伏发电功率预测模型,以Python和Scikit - learn库为例。此模型借助历史气象数据和光伏发电功率数据来预测未来的光伏发电功率。 模型设计思路 数据收集:收集历史气象数据(像温度、光照强度、湿度等…...
20242817李臻《Linux⾼级编程实践》第6周
20242817李臻《Linux⾼级编程实践》第6周 一、AI对学习内容的总结 Linux进程间通信(IPC) 1. 进程间通信基本概念 作用: 数据传输:进程间传递数据(字节到兆字节级别)。共享数据:多个进程操作同一数据&…...
Vue 3中的Provide与Inject
在Vue 3中,provide和inject机制为组件间的通信提供了一种新的方式。不同于传统的父子组件通过props传递数据的方式,provide和inject允许祖先组件向其所有子孙组件提供数据,而无需通过中间层手动传递。这使得跨层级的组件通信变得更加直接和简…...
深入解析SQL2API平台:数据交互革新者
在数字化转型持续深入的当下,企业对数据的高效利用与管理的需求愈发迫切。SQL2API平台应运而生,成为助力企业突破数据交互困境的有力工具,特别是它由麦聪软件基于DaaS(数据即服务)产品创新衍生而来,备受业界…...
蓝桥杯算法题分享(二)
蓝桥杯算法题分享 本文将继续分享三道经典的蓝桥杯算法题,包括题目描述、解题思路和 Java 代码实现,帮助大家更好地理解算法的应用。对算法感兴趣的朋友可以点开我的主页查看我上周分享的另三道题。 第一题:次数差 题目描述 x 星球有 26 只…...
实战-MySQL5.7升级8.0遇到的四个问题
近期几个项目的MySQL由5.7升级到8.0,升级过程中遇到四个问题,记录下来分享一下: 第一个问题详见之前的文章: MySQL 5.7升级8.0报异常:处理新增关键字 第二个问题详见之前的文章: MySQL 5.7升级8.0报异常…...
为什么递归用栈?动态分配用堆?
文章目录 1. 区别2. 栈空间特点优点缺点 3. 堆空间特点优点缺点 4. 栈和堆的对比5. 总结 1. 区别 栈空间和堆空间是程序内存中的两块不同区域,分别用于不同的用途。 栈空间: 栈空间是由操作系统自动管理的内存区域,用于存储局部变量、函数…...
Java 中装饰者模式与策略模式在埋点系统中的应用
前言 在软件开发中,装饰者模式和策略模式是两种常用的设计模式,它们在特定的业务场景下能够发挥巨大的作用。本文将通过一个实际的埋点系统案例,探讨如何在 Java 中运用装饰者模式和策略模式,以及如何结合工厂方法模式来优化代码…...
计算机视觉总结
以下是针对上述问题的详细解答,并结合代码示例进行说明: 1. 改进YOLOv5人脸检测模块,复杂光照场景准确率从98.2%提升至99.5% 优化具体过程: 光照补偿:在数据预处理阶段,采用自适应光照补偿算法,对图像进行实时增强,以减少光照变化对人脸检测的影响。数据增强:在训练…...
无人设备遥控器之调度自动化技术篇
一、技术原理 信息采集与处理: 通过传感器、仪表等设备采集无人设备的各种数据,如位置、速度、状态等。 将采集到的数据传输到调度自动化系统中进行处理和分析,以获取设备的实时状态。 系统建模与优化: 调度自动化系统会根据…...
【AI】Orin Nano+ubuntu22.04上移植YoloV11,并使用DeepStream测试成功
【AI】郭老二博文之:AI学习目录汇总 1、准备工作 使用 sdk-manager 烧写 OrinNano, JetPack版本为6.0 DP,对应操作系统为:Ubuntu22.04 参见博客:【NVIDIA】Jetson Orin Nano系列:烧写Ubuntu22.04 2、安装 PyTorch 2.1 下载依赖 1)安装onnx pip install onnx -i h…...
K8S学习之基础四十五:k8s中部署elasticsearch
k8s中部署elasticsearch 安装并启动nfs服务yum install nfs-utils -y systemctl start nfs systemctl enable nfs.service mkdir /data/v1 -p echo /data/v1 *(rw,no_root_squash) >> /etc/exports exports -arv systemctl restart nfs创建运行nfs-provisioner需要的sa账…...
