CSS 美化页面(一)

一、CSS概念

     CSS(Cascading Style Sheets,层叠样式表)是一种用于描述 HTML 或 XML(如 SVG、XHTML)文档 样式 的样式表语言。它控制网页的 外观和布局,包括字体、颜色、间距、背景、动画等视觉效果。

二、CSS 的作用

  1. 样式与结构分离

    • HTML 负责网页的 内容结构(如标题、段落、图片)。

    • CSS 负责 视觉表现(如字体大小、颜色、布局)。

    • 两者分离使代码更易维护和修改。

  2. 控制网页外观

    • 精确调整元素的 颜色、字体、间距、边框、背景 等。

    • 实现 响应式设计(适配手机、平板、电脑等不同设备)。

  3. 布局与动画

    • 通过 Flexbox、Grid 等实现复杂布局。

    • 使用 过渡(Transition)和动画(Animation) 增强交互体验。

三、CSS 的基本工作原理

  1. 选择器(Selector)
    指定要样式化的 HTML 元素(如 p.class#id)。

  2. 属性与值(Property & Value)
    定义具体的样式规则(如 color: red;)。

  3. 层叠(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;/* 高亮特色卡片 */}

 

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

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

相关文章

空转 | GetAssayData doesn‘t work for multiple layers in v5 assay.

问题分析 当我分析多个样本的时候&#xff0c;而我的seurat又是v5时&#xff0c;通常就会出现这样的报错。 错误的原因有两个&#xff1a; 一个是参数名有slot变成layer 一个是GetAssayData 不是自动合并多个layers&#xff0c;而是选择保留。 那么如果我们想合并多个样本&…

UE4学习笔记 FPS游戏制作17 让机器人持枪 销毁机器人时也销毁机器人的枪 让机器人射击

添加武器插槽 打开机器人的Idle动画&#xff0c;方便查看武器位置 在动画面板里打开骨骼树&#xff0c;找到右手的武器节点&#xff0c;右键添加一个插槽&#xff0c;重命名为RightWeapon&#xff0c;右键插槽&#xff0c;添加一个预览资产&#xff0c;选择Rifle&#xff0c;根…

【JavaScript】七、函数

文章目录 1、函数的声明与调用2、形参默认值3、函数的返回值4、变量的作用域5、变量的访问原则6、匿名函数6.1 函数表达式6.2 立即执行函数 7、练习8、逻辑中断9、转为布尔型 1、函数的声明与调用 function 函数名(形参列表) {函数体 }eg&#xff1a; // 声明 function sayHi…

硬件基础--05_电压

电压(电势差) 有了电压&#xff0c;电子才能持续且定向移动起来&#xff0c;所有电压是形成电流的必要条件。 电压越大&#xff0c;能“定向移动”起来的电子就越多&#xff0c;电流就会越大。 有电压的同时&#xff0c;形成闭合回路才会有电流&#xff0c;不是有电压就有电流…

ES数据过多,索引拆分

公司企微聊天数据存储在 ES 中&#xff0c;虽然按照企业分储在不同的ES 索引中&#xff0c;但某些常用的企微主体使用量还是很大。4年中一个索引存储数据已经达到46多亿条数据&#xff0c;占用存储3.1tb, ES 配置 由于多一个副本&#xff0c;存储得翻倍&#xff0c;成本考虑…

存储服务器是指什么

今天小编主要来为大家介绍存储服务器主要是指什么&#xff0c;存储服务器与传统的物理服务器和云服务器是不同的&#xff0c;其是为了特定的目标所设计的&#xff0c;在硬件配置方式上也有着一定的区别&#xff0c;存储空间会根据需求的不同而改变。 存储服务器中一般会配备大容…

golang不使用锁的情况下,对slice执行并发写操作,是否会有并发问题呢?

背景 并发问题最简单的解决方案加个锁,但是,加锁就会有资源争用,提高并发能力其中的一个优化方向就是减少锁的使用。 我在之前的这篇文章《开启多个协程,并行对struct中的每个元素操作,是否会引起并发问题?》中讨论过多协程场景下struct的并发问题。 Go语言中的slice在…

Java知识整理round1

一、常见集合篇 1. 为什么数组索引从0开始呢&#xff1f;假如从1开始不行咩 数组&#xff08;Array&#xff09;&#xff1a;一种用连续的内存空间存储相同数据类型数据的线性数据结构 &#xff08;1&#xff09;在根据数组索引获取元素的时候&#xff0c;会用索引和寻址公式…

【C++指针】搭建起程序与内存深度交互的桥梁(下)

&#x1f525;&#x1f525; 个人主页 点击&#x1f525;&#x1f525; 每文一诗 &#x1f4aa;&#x1f3fc; 往者不可谏&#xff0c;来者犹可追——《论语微子篇》 译文&#xff1a;过去的事情已经无法挽回&#xff0c;未来的岁月还可以迎头赶上。 目录 C内存模型 new与…

JavaScript创建对象的多种方式

在JavaScript中&#xff0c;创建对象有多种方式&#xff0c;每种方式都有其优缺点。本文将介绍四种常见的对象创建模式&#xff1a;工厂模式、构造函数模式、原型模式和组合模式&#xff0c;并分析它们的特点以及如何优化。 1. 工厂模式 工厂模式是一种简单的对象创建方式&am…

muduo库的思路梳理

前言 对于muduo库源码的剖析我发现还是有些混乱的&#xff0c;所以这里再次梳理一下muduo网络库争取可以简单明了 首先对于muduo库来说&#xff0c;不能想的得太过于复杂&#xff0c;它无非就是一个线程池加上epoll组成的网络库 这里我们从用的角度出发理解muoduo网络库 #inc…

Keil5 安装全攻略

Keil5 安装全攻略 Keil5 是一款广泛用于嵌入式开发的 IDE&#xff0c;支持多种微控制器架构&#xff08;如 ARM、C51&#xff09;。本文将详细介绍 Keil5 的安装步骤、常见问题及解决方法&#xff0c;帮助您快速上手。 1. 安装前的准备工作 (1) 系统要求 操作系统&#xff1…

C语言do...while语句将数字反转后输出

一、题目引入 输入一个数字,将各位数字反转后输出? 参考代码: 二、分析代码 接着图片中的分析 第一 ->a 的值变为12 第二 ->进入while循环条件,a为12不等于0循环才停止(a的值为12,显然不等于0) 所以继续进行循环 第三 ->此时b的值为12取各位上的数字(即2) 打印…

优选算法系列(前缀和 _下) k

目录 五&#xff1a;和为 k 的子数组&#xff08;medium&#xff09; 题目链接&#xff1a;560. 和为 K 的子数组 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a; 代码&#xff1a; 六&#xff1a;和可被 K 整除的子数组&#xff08;medium&#xff09; 题目链…

mac m3 pro 部署 stable diffusion webui

什么是Stable Diffusion WebUI &#xff1f; Stable Diffusion WebUI 是一个基于Stable Diffusion模型开发的图形用户界面&#xff08;GUI&#xff09;工具。通过这个工具&#xff0c;我们可以很方便的基于提示词&#xff0c;描述一段文本来指导模型生成相应的图像。相比较通过…

OpenCV图像拼接(6)根据权重图对源图像进行归一化处理函数normalizeUsingWeightMap()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::detail::normalizeUsingWeightMap 是 OpenCV 中用于图像拼接细节处理的一个函数。它根据权重图对源图像进行归一化处理&#xff0c;通常用于…

23种设计模式-外观(Facade)设计模式

外观设计模式 &#x1f6a9;什么是外观设计模式&#xff1f;&#x1f6a9;外观设计模式的特点&#x1f6a9;外观设计模式的结构&#x1f6a9;外观设计模式的优缺点&#x1f6a9;外观设计模式的Java实现&#x1f6a9;代码总结&#x1f6a9;总结 &#x1f6a9;什么是外观设计模式…

capl语言基础语法(二)

1.strncpy&#xff1a;将字符串复制到另一个字符串中。 输入&#xff1a; dest 是目标字符串。 src 是源字符串。 n 是要复制的最大字符数。 语法&#xff1a; char *strncpy(char *dest, const char *src, size_t n); 例子&#xff1a; strncpy(gStringRep,"",…

QLoRA和LoRA 微调

QLoRA 其实是一种结合了量化和 LoRA 微调技术的统一方法&#xff0c;而不是同时使用两种不同的微调方式。换句话说&#xff0c;QLoRA 的意思就是&#xff1a;先把大模型的主权重用低精度&#xff08;例如 4-bit&#xff09;量化&#xff0c;从而大幅减少存储需求&#xff1b;然…

Qt Concurrent 并发 Map 和 Map-Reduce

并发 Map 和 Map-Reduce QtConcurrent::map()会对容器中的每个项目应用一个函数&#xff0c;对项目进行就地修改。QtConcurrent::mapped() 类似于 map()&#xff0c;但它返回的是一个包含修改内容的新容器。QtConcurrent::mappedReduced() 类似于 mapped()&#xff0c;只不过修…