CSS基础

1.1 CSS简介

CSS 是层叠样式表 ( Cascading Style Sheets ) 的简称. 有时我们也会称之为 CSS 样式表或级联样式表。
CSS 是也是一种标记语言 CSS 主要用于设置 HTML 页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局和外观显示样式。 CSS 让我们的网页更加丰富多彩,布局更加灵活自如。简单理解:CSS 可以美化 HTML , 让 HTML 更漂亮, 让页面布局更简单。

总结:

  1. HTML 主要做结构,显示元素内容.

  2. CSS 美化 HTML ,布局网页.

  3. CSS 最大价值: 由 HTML 专注去做结构呈现,样式交给 CSS,即 结构 ( HTML ) 与样式( CSS ) 相分离。

1.1.1 CSS的语法规范

使用HTML时,需要遵从一定的语法规范,CSS也是如此。CSS规则由两个主要的部分构成:选择器以及一条或者多条声明

image-20250702110630666

  • 选择器是用于指定CSS样式的HTML标签,花括号内是对该对象设置的具体样式
  • 属性和属性是以“键值对”的形式出现
  • 属性是对指定的对象设置的样式属性,例如字体大小,文本颜色等
  • 属性和属性值之间用英文“:”分开
  • 多个“键值对”之间用英文“;”进行区分

所有的样式,都包含在

image-20250702111042784

1.1.2 CSS代码风格

1.样式格式书写

image-20250702111240842

2.样式大小写风格

image-20250702111347730

3.样式空格风格

image-20250702111323410

1.2 CSS基础选择器

1.2.1 标签选择器image-20250702113104724

书写步骤

  1. 在标签标签的上面写上style标签

image-20250702112152210

1.2.2 类选择器

在我们使用标签选择器的时候发现一个问题就是使用标签选择器能把改标签的样式全部改变,但是我们如果想把该标签的某一个元素改变样式呢?这时候我们该怎么做呢?这时候我们就要用到类选择器

image-20250702113147353

1.注意事项
  • 类选择器使用“.”(英文点号)进行标识,后面紧跟类名(自定义,我们自己命名的)。
  • 可以理解为给这个标签起了一个名字,来表示。
  • 长名称或词组可以使用中横线来为选择器命名。
  • 不要使用纯数字、中文等命名,尽量使用英文字母来表示。
  • 命名要有意义,尽量使别人一眼就知道这个类名的目的
1. 给改该标签一个class

image-20250702112738808

2.样式用点定义

image-20250702112859368

3.代码示例
    <style>/* 类选择器口诀: 样式点定义  结构类(class)调用  一个或多个 开发最常用*/.red {color: red;}.star-sing {color: green;}.memeda {  color: pink;}.pink {color: pink;}</style>
</head>
<body><ul><li class="red">冰雨</li><li class="red">来生缘</li><li>李香兰</li><li class="memeda">生僻字</li><li class="star-sing">江南style</li></ul><div class="red">我也想变红色</div><div class="pink">我想要变成粉色</div>
</body>
4.效果展示

image-20250702113006887

1.2.3 多类名选择器

image-20250702113452188

1.多类名的使用方式
2.多类名的使用优点
  1. 可以把一些标签元素相同的样式(共同的部分)放到一个类里面.
  2. 这些标签都可以调用这个公共的类,然后再调用自己独有的类.
  3. 从而节省CSS代码,统一修改也非常方便.
3.多类名的使用案例

image-20250702113942623

代码

 <style>.red {color: red;}.box {width: 100;font-size: 35px;}.pink {color: pink;}</style>
</head>
<body><!-- 多类名使用方式1.在标签class属性中写多个类名2.多个类名中间必须用空格分开 --><div class="box red ">刘德华</div>
<div class="box red ">公孙离</div>
<div class="box red ">西施</div>
<div class="box pink">公孙离</div></body>

效果图

image-20250702114104352

1.2.4 id选择器

id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。 HTML 元素以 id 属性来设置 id 选择器,CSS 中 id 选择器以“#" 来定义。

1.语法

image-20250702114155310

2.id 选择器和类选择器的区别
  1. 类选择器(class)好比人的名字,一个人可以有多个名字,同时一个名字也可以被多个人使用。
  2. id 选择器好比人的身份证号码,全中国是唯一的,不得重复。
  3. id 选择器和类选择器最大的不同在于使用次数上。
  4. 类选择器在修改样式中用的最多,id 选择器一般用于页面唯一性的元素上,经常和 JavaScript 搭配使用。
3.代码示例
style>/*id选择器的口诀:样式#定义,结构id调用,只能调用一次,别人切勿使用*/#pink {
color: pink;}
</style>
</head>
<body><div id="pink">迈克尔.杰克逊</div>
</body>

1.2.5 通配符*

在 CSS 中,通配符选择器使用“*”定义,它表示选取页面中所有元素(标签)。

1. 语法

image-20250702114457741

  • 通配符选择器不需要调用, 自动就给所有的元素使用样式
  • 特殊情况才使用,后面讲解使用场景(以下是清除所有的元素标签的内外边距)

image-20250702114604862

2.使用示例
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>通配符选择器</title><style>* {color: pink;}/* *这里*号把所有标签html body div span li 等等的标签都改为了红色 */</style>
</head>
<body><div>我的</div><span>我的</span><ui><li>还是我的</li></ui>
</body>
</html>
4.选择器总结

image-20250702114824619

1.3 CSS文本属性

CSS Fonts (字体)属性用于定义字体系列、大小、粗细、和文字样式(如斜体)。

1.3.1 字体系列

image-20250702115731908

  • 各种字体之间必须使用英文状态下的逗号隔开
  • 一般情况下,如果有空格隔开的多个单词组成的字体,加引号.
  • 尽量使用系统默认自带字体,保证在任何用户的浏览器中都能正确显示
  • 最常见的几个字体:body {font-family: ‘Microsoft YaHei’,tahoma,arial,‘Hiragino Sans GB’; }
1. 代码示例
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>font-famlity的使用</title><style>.kaiti {font-family: "微软雅黑";}.weiruanyahei {font-family: 'Times New Roman', Arial, Helvetica, sans-serif;}p {font-family: "宋体";}</style>
</head>
<body><h4>字体的使用</h1><p class="kaiti">哈哈哈哈</p><p class="weiruanyahei">我的小猫暴脾气</p>
</body></html>
2.效果展示

image-20250702144009163

1.3.2 字体大小

image-20250702144036298

  • px(像素)大小是我们网页的最常用的单位
  • 谷歌浏览器默认的文字大小为16px
  • 不同浏览器可能默认显示的字号大小不一致,我们尽量给一个明确值大小,不要默认大小
  • 可以给 body 指定整个页面文字的大小
1.代码展示
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>p {font-size: 36px;}h2{font-size: 16px;}</style>
</head>
<body><h2>嘻嘻</h2><div>我的字体是正常的</div><p>我的字体大两倍</p>
</body>
</html>

1.3.3 字体粗细

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 学会让加粗标签(比如 h 和 strong 等) 不加粗,或者其他标签加粗
  • 实际开发时,我们更喜欢用数字表示粗细
1.代码示例
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>字体粗细</title><style>.words{font-weight: normal;}.number{font-weight: 400;}.cat{font-weight: bold;}.dog {font-weight: 700}</style>
</head>
<body><p class="words">今天的天气真不错</p><p class="number">天气一点点热</p><p class="cat">我的小猫暴脾气</p><p class="dog">我的小猫容易炸毛</p>
</body>
</html>

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1.3.4 文字样式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

代码
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>字体斜体</title><style>p {font-style: italic;}i {font-style: normal;}</style>
</head>
<body><p>今天的天气真不错</p><p>阳光真的不错</p><p>其实天气不好</p><i>这是斜体</i><em>这也是斜体,但是我有办法让它变得正常</em>
</body>
</html>

1.3.5 字体复合属性

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 使用 font 属性时,必须按上面语法格式中的顺序书写,不能更换顺序,并且各个属性间以空格隔开
  • 不需要设置的属性可以省略(取默认值),但必须保留 font-size 和 font-family 属性,否则 font 属性将不起作用
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>字体复合属性的使用</title><style>p {font:italic 700 32px "宋体";}div {font: 18px "楷体";}</style>
</head>
<body><p>这一段使用字体复合属性的使用,顺序分别是字体的样式,字体的粗细,字体的大小,字体的类型</p><div>字体复合属性的使用</div>
</body>
</html>
2.字体属性的总结

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1.3.6 文本系列

CSS Text(文本)属性可定义文本的外观,比如文本的颜色、对齐文本、装饰文本、文本缩进、行间距等。

1.对齐文本

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

代码示例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>文字的对齐系列</title><style>div {text-align: center;}p {text-align: right;}</style>
</head>
<body><div>这是要一段文本</div><p>这也是一段文本</p>
</body>
</html>
2.文本装饰线

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>文本装饰线</title><style>div {text-decoration: underline;}.nodeco {text-decoration: overline;}.overco {text-decoration: line-through;}a {text-decoration: none;}</style>
</head>
<body><div>这是一段文本</div><p class="nodeco">这也是一段文本</p><p class = "overdeco">我的小猫暴脾气</p><a href="#">百度一下</a>
</body>
</html>
3.段落缩进

text-indent 属性用来指定文本的第一行的缩进,通常是将段落的首行缩进。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4.行间距

image-20250702152411928

5.文本属性总结

image-20250702152848221

1.4 CSS的引入方式

1.4.1 内部样式表

内部样式表(内嵌样式表)是写到html页面内部,是将所有的CSS代码抽取出来,单独放到一个

  • 通过此种方式,可以方便控制当前整个页面中的元素样式设置

  • 代码结构清晰,但是并没有实现结构与样式完全分离

  • 使用内部样式表设定CSS,通常也被称为嵌入式引入,这种方式使我们常用的方式

image-20250702153023541

image-20250702153156464

1.4.2 行内样式表(嵌入式)

image-20250702153209389

  • style 其实就是标签的属性 在双引号中间,
  • 写法要符合 CSS 规范 可以控制当前的标签设置样式 由于书写繁琐,并且没有体现出结构与样式相分离的思想,
  • 所以不推荐大量使用
  • 只有对当前元素添加简单样式的时候,可以考虑使用 使用行内样式表设定 CSS,通常也被称为行内式引入

image-20250702153510454

1.4.3 外部样式表(链接式)

image-20250708145020829

image-20250702154010263

image-20250702154028599

1.5 Chrome调试工具

打开Chrome浏览器,按下F12键或者右击页面空白处->检查 非常好用的调试工具,方便来调试我们的HTML结构和CSS样式

image-20250708145515025

image-20250708145525773

1.5.1 使用Chorme调试

image-20250708150231857

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

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

相关文章

RabbitMQ 高级特性之事务

1. 简介与 MySQL、Redis 一样&#xff0c;RabbitMQ 也支持事务。事务中的消息&#xff0c;要么全都发送成功&#xff0c;要么全部发送失败&#xff0c;不会出现一部分成功一部分失败的情况。2. 使用事务发送消息spring 中使用 RabbitMQ 开启事务需要两步&#xff1a;第一步&…

iframe 的同源限制与反爬机制的冲突

一、事件背景A域名接入了动态防护&#xff08;Bot 防护、反爬虫机制&#xff09;&#xff0c;同时第三方业务B域名通过内嵌iframe的方式调用了A域名下的一个链接。二、动态防护介绍&#xff1a;动态防护&#xff08;也称为 Bot 防护、反爬虫机制&#xff09;是网站为了防止自动…

Rust 的 Copy 语义:深入浅出指南

在 Rust 中&#xff0c;Copy 是一个关键的特性&#xff0c;它定义了类型的复制行为。理解 Copy 语义对于掌握 Rust 的所有权系统和编写高效代码至关重要。一、核心概念&#xff1a;Copy vs Move特性Copy 类型非 Copy 类型 (Move)赋值行为按位复制 (bitwise copy)所有权转移 (ow…

Qt的信号与槽(二)

Qt的信号与槽&#xff08;二&#xff09;1.自定义槽2.通过图形化界面来生成自定义槽3.自定义信号3.信号和槽带参数4.参数数量5.connect函数的设计&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f;&#x1f31f; &#x1f680;&#x1f680;系列专栏&#xf…

Java研学-MongoDB(三)

三 文档相关 7 文档统计查询① 语法&#xff1a; // 精确统计文档数 慢 准 dahuang> db.xiaohuang.countDocuments({条件}) 4 // 粗略统计文档数 快 大致准 dahuang> db.xiaohuang.estimatedDocumentCount({条件}) 4② 例子&#xff1a; // 精确统计文档数 name为奔波儿灞…

TCP协议格式与连接释放

TCP报文段格式 TCP虽然是面向字节流的&#xff0c;但TCP传送带数据单元确是报文段。TCP报文段分为首部和数据段部分&#xff0c;而TCP的全部功能体现在它在首部中各字段的作用。因此&#xff0c;只有弄清TCP首部各字段的作用才能掌握TCP的工作原理。 TCP报文段首部的前20字节是…

CSS05:结构伪类选择器和属性选择器

结构伪类选择器 /*ul的第一个子元素*/ ul li:first-child{background: #0af6f6; }/*ul的最后一个子元素*/ ul li:last-child{background: #d27bf3; } /*选中p1&#xff1a;定位到父元素&#xff0c;选择当前的第一个元素 选择当前p元素的父级元素&#xff0c;选中父级元素的第…

使用策略模式 + 自动注册机制来构建旅游点评系统的搜索模块

✅ 目标&#xff1a; 搜索模块支持不同内容类型&#xff08;攻略、达人、游记等&#xff09;每种搜索逻辑用一个策略类表示自动注册&#xff08;基于注解 Spring 容器&#xff09;新增搜索类型时&#xff0c;只需添加一个类 一个注解&#xff0c;无需改工厂、注册表等&#x…

第八十九篇 大数据开发中的数据算法:贪心策略 - 生活中的“精打细算”艺术

在资源有限的世界里&#xff0c;贪心算法教会我们&#xff1a;局部最优的累积&#xff0c;往往是通往全局最高效的捷径。本文通过3个生活化场景原创图表&#xff0c;揭示大数据开发中最实用的优化策略。目录一、贪心算法核心思想&#xff1a;当下即最优二、三大核心应用场景详解…

【论文阅读】Dynamic Few-Shot Visual Learning without Forgetting

系统概述如下: (a) 一个基于卷积神经网络(ConvNet)的识别模型,该模型包含特征提取器和分类器; (b) 一个少样本分类权重生成器。这两个组件都是在一组基础类别上训练的,我们为这些类别准备了大量训练数据。在测试阶段,权重生成器会接收少量新类别的训练数据以及基础类别的…

HTML应用指南:利用GET请求获取全国山姆门店位置信息

山姆会员店作为全球知名的零售品牌&#xff0c;自进入中国市场以来&#xff0c;始终致力于为消费者提供高品质商品与便捷的购物体验。随着新零售业态的快速发展&#xff0c;门店位置信息的获取变得愈发重要。品牌通过不断拓展门店网络&#xff0c;目前已覆盖多个一、二线城市&a…

java ThreadLocal源码分析

写个demo测试下&#xff1a;private static void testThreadLocal() {ThreadLocal<Integer> threadLocal new ThreadLocal<>();new Thread(){Overridepublic void run() {threadLocal.set(9527);System.out.println("curr thread: " Thread.currentThr…

后端Web实战(项目管理)

Restful风格 我们的案例是基于当前最为主流的前后端分离模式进行开发 在前后端分离的开发模式中&#xff0c;前后端开发人员都需要根据提前定义好的接口文档&#xff0c;来进行前后端功能的开发。 后端开发人员&#xff1a;必须严格遵守提供的接口文档进行后端功能开发&#…

Leetcode 3604. Minimum Time to Reach Destination in Directed Graph

Leetcode 3604. Minimum Time to Reach Destination in Directed Graph 1. 解题思路2. 代码实现 题目链接&#xff1a;3604. Minimum Time to Reach Destination in Directed Graph 1. 解题思路 这一题思路上就是一个广度优先遍历&#xff0c;我们不断考察当前时间点以及位置…

OpenXR Runtime切换工具-OpenXR-Runtime-Switcher

在开发VR时&#xff0c;有时有多个设备&#xff0c;大家可能也会选择不同的串流工具&#xff0c;OpenXR类似于默认浏览器&#xff0c;如果设置错误可能导致游戏无法串流。 推荐一个工具&#xff0c;可以设置默认的OpenXR工具。 OpenXR-Runtime-Switcher 对于没有的设备&#…

Opencv探索之旅:从像素变化到世界轮廓的奥秘

在你已经能熟练地为图像施展“降噪”、“缩放”等魔法之后&#xff0c;你的探索之旅来到了一个全新的领域。你可能会好奇&#xff1a;我们人类能轻易地识别出照片中杯子的边缘、建筑的轮廓&#xff0c;那计算机是如何“看见”这些边界的呢&#xff1f;仅仅依靠滤波和颜色变换&a…

Ubuntu 22.04 + MySQL 8 无密码登录问题与 root 密码重置指南

背景场景 在 Ubuntu 系统中使用 apt 或 deb 包方式安装 MySQL 8 时&#xff1a; 初次安装后会自动初始化数据库&#xff1b;但 没有提示 root 初始密码&#xff1b;导致 mysql -u root -p 无法登录。 为了解决该问题&#xff0c;通常我们使用 --skip-grant-tables 方式跳过权限…

题解:P13017 [GESP202506 七级] 线图

首先明白定义&#xff1a; 线图 L(G)L(G)L(G) 的顶点对应原图 GGG 的边&#xff0c;当且仅当原图中的两条边有公共顶点时&#xff0c;对应的线图顶点之间有一条边。 不难想到&#xff0c;对于原图中的每个顶点 vvv&#xff0c;其度数 d(v)d(v)d(v) 对应的边集可以形成 (d(v)2)\…

c++ duiLib环境集成2

继续上一篇&#xff0c;现在需要把控制台隐藏&#xff0c;只显示调用duiLib框架显示的窗口。右键项目 → 属性 → 链接器 → 系统 → ‌子系统‌改为 窗口(/SUBSYSTEM:WINDOWS)。原来是这样&#xff1a;修改为&#xff1a;运行报错&#xff1a;需要修改入口函数为WinMain。如下…

常见的网络攻击方式及防御措施

常见的网络攻击方式及防御措施&#xff1a;全面解析网络安全威胁 前言肝文不易&#xff0c;点个免费的赞和关注&#xff0c;有错误的地方请指出&#xff0c;看个人主页有惊喜。 作者&#xff1a;神的孩子都在歌唱在信息化高速发展的今天&#xff0c;网络安全威胁无处不在&#…