前端三剑客(二):CSS

embedded/2024/11/21 15:28:42/

目录

1. CSS 基础

1.1 什么是 CSS

1.2 语法格式

1.3 引入方式

1.3.1 行内样式

1.3.2 内部样式

1.3.3 外部样式

1.4 CSS 编码规范

2. 选择器

2.1 标签选择器

2.2 id 选择器

2.3 class 选择器(类选择器)

2.4 复合选择器

2.5 通配符选择器

3. 常用 CSS 样式

3.1 color

3.2 font-size

3.5 height / width

3.4 border

3.5 边距

3.5.1 内边距 - padding

3.5.2 外边距 - margin


1. CSS 基础

1.1 什么是 CSS

CSS(Cascading Style Sheets), 层叠样式表, 是用来表示 HTML 的一种计算机语言.

CSS负责网页的视觉表现,它定义了网页元素的布局、颜色、字体、间距等样式属性。

通俗来说, CSS 就是对页面进行 "化妆".

简而言之,HTML定义了网页的结构,CSS负责网页的外观和布局,而JavaScript则负责让网页"动起来"(能够让网页动态变化)。三者共同工作,创造出功能丰富、用户友好的网页和网络应用。

1.2 语法格式

选择器 + {声明}

  1. 选择器决定修改谁
  2. 声明决定要修改的内容
  3. 声明的属性是键值对.(属性(键): 属性值(值))
  4. 多个键值对间使用 ; 进行分割

1.3 引入方式

1.3.1 行内样式

直接在标签中使用 style 属性, 引入 CSS 属性的键值对:

这种方式的缺点是代码冗余, 若想全部更改 div 标签中内容的颜色, 则需要一个一个的填写代码:

1.3.2 内部样式

定义 <style> 标签, 在标签中定义 CSS (指定选择器):

  • 选择器中所有的内容, 都会被修改为声明中的内容.
  • style 标签通常定义在 head 标签中

需要注意的是, 使用内部样式引入 css 的同时, 若存在 div 标签在内部引入 css 的情况下(行内样式), 则采取就近原则的方式进行格式的修改:

1.3.3 外部样式

定义 <link> 标签,通过 href 属性引入外部 css 文件:

这张方式的优点是, 实现了 HTML 代码和 CSS 代码分离, 实现解耦, 代码的可维护性高.

1.4 CSS 编码规范

CSS 不区分大小写, 但统一规范使用小写字母.

空格规范:

  1. 冒号后面跟一个空格
  2. 选择器和 { 之间留一个空格

2. 选择器

CSS 中的选择器, 可以指定选中的页面中的元素, 并对这个元素中内容进行统一的修改(颜色, 字体, 边框....).

选择器主要有以下几种:

  1. 标签选择器
  2. id 选择器
  3. class 选择器(类选择器)
  4. 复合选择器
  5. 通配符选择器

2.1 标签选择器

所有被标签选择器选中的元素, 标签中内容的属性都会被统一修改为选择器中设置的属性.

但是, 若选择器选中的标签中, 嵌套了一个 a 标签, 那么设置的属性值将不会生效, 因为 a 标签中也对内容进行了默认的属性设置, 标签中的内容将采取就近原则的方式跟随 a 标签默认设置的属性(内容离 a 标签最近).

如果要修改, 需要额外使用选择器选择 a 标签来进行修改:

也就是说, 选择器需要选中离内容最近的标签, 才会对内容的样式修改成功.

   /* 标签选择器 */div {color: red;}span {color: blue;}a {color: red;} 

2.2 id 选择器

id, 和我们之前所学的数据库中的 id 是相同的概念. 

页面中, 每个元素的 id 都是唯一的, 我们可以通过 id 选择器, 选中页面中某一元素的 id , 对该元素的样式进行细致的设置.

在使用 id 选择器时, 使用 # 对 id 进行选择:

 /* id 选择器 */#div1 {color: red;} 

2.3 class 选择器(类选择器)

每个元素可以设置唯一的 id 外, 还可以设置 class 值, 但是多个元素的 class 值可以是相同的.

具有相同 class 值的元素, 可以认为是同一组的, 使用 class 选择器则可以对这一组中所有的元素进行样式的设置.

使用 class 选择器时, 使用 . 对 class 进行选择:

        /* class 选择器 */.class1 {color: red;} 

2.4 复合选择器

复合选择器由多个单选择器构成, 单选择器可以是任意选择器, 可以是标签选择器, id 选择器, class 选择器 .... (但是不能是通配符选择器)

  • 复合选择器可以由具有嵌套关系的选择器构成(选择器间使用空格分割):
  • 复合选择器也可以由不同种类的选择器构成, 但是不同的标签间要使用 , (逗号)分割, 如:

其中,

  1. ol 标签(order list)为有序的列表标签
  2. ul 标签(unordered list)为无序的列表标签
  3. list 为列表标签
/* 复合选择器 */#div1, #div2 {color: purple;} ol li a{color: red;font-size: 20px;} 

2.5 通配符选择器

* 代表通配符, 通配符选择器选中的是页面中所有的元素(所有元素, 包含所有的嵌套标签).

使用通配符选择器可以对页面中所有的元素进行统一的修改.

/* 通配符选择器 */* {color: yellow;}

3. 常用 CSS 样式

3.1 color

color, 就是设置字体的颜色. 我们可以在选择器中指定 color 的属性值, 来指定字体的颜色.

color 属性值的设置有以下几种方式:

  1. 英文单词
  2. 手动设置三原色(红绿蓝)的比例, 如: rgb(xxx, xxx, xxx) (取值0~255)
  3. 使用16进制设置三原色的比例:

3.2 font-size

font-size: 设置字体的大小 

        /* 字体 */#div1 {font-size: 20px;}

3.5 height / width

我们知道, 像 div 这样的标签, 其实可以视为一个 "盒子". 而我们就可以对 "盒子" 来设置宽高.

需要注意的是: 只有块级标签才可以设置宽和高

height: 设置高

width: 设置宽

  1. 常见块级元素/块级标签: div , h1-h6 (带换行的)
  2. 常见行内元素/行内标签: span, a, img (不带换行的)

若对 span 这样的行内标签设置宽高是不起作用的:

但是, 我们也可以修改 display 的属性值将行内标签设置为块级标签:

  • 行内标签 => 块级标签: display: block;

也可以修改 display 将块级标签设置为行内标签:

  • 块级标签 => 行内标签: display: inline;

3.4 border

当我们设置好高和宽后, 我们可以对边框(border)进行设置(边框是一个复合属性):

  1. 设置边框类型(实线, 虚线, ...)
  2. 设置边框粗细
  3. 设置边框颜色(默认是透明的)

  • 我们可以对边框四个方向上的属性分别进行设置(以颜色为例, 粗细和宽度都是可以的):

对方框四个方向的样式分别进行设置时, 还可以将四个方向上的值一次性写到一个 border 中:

(从 top(上) 开始, 顺时针方向填写属性值)

css">         /* 以下两种写法是相同的 */#div1 {height: 50px;width: 200px;border: solid;border-top-color: yellow;border-right-color: black;border-bottom-color: red;border-left-color: blue;}#div1 {height: 50px;width: 200px;border: solid;border-color: yellow black red blue;}

  • 也可以对边框四个方向上的颜色, 粗细, 样式统一进行设置(四个方向上的边框都是相同的):

css">         /* 边框的四个方向都设置为: 粗细为: 1px, 颜色为: 红色, 样式为: 实线 *//* 以下两种写法是相同的 */#div1 {height: 50px;width: 200px;border-width: 1px;border-color: red;border-style: solid;}#div1 {height: 50px;width: 200px;border: 1px red solid;}

3.5 边距

边距分为以下两种:

  1. padding: 内边距
  2. margin: 外边距

内边距和外边距是两个相对的概念, 需要根据参照物来决定.

我们可以在选择器的声明中, 修改 padding / margin 的值来修改内外边距的距离.

如果以每个 div"盒子" 为参照物:

  • 那么每个 div"盒子" 的边框(border)和内容之间的距离就是内边距.(内容和边框之间的距离)
  • 每个 div"盒子" 和每个 div"盒子" 之间的距离就是外边距.(页面中, 元素和元素之间的距离)

3.5.1 内边距 - padding

padding: 内边距.

通过修改 padding 的值, 设置内容和边框之间的距离. (内容默认是顶着边框的)

padding 也是一个复合样式, 我们可以分别设置四个方向上的内边距:

  1. padding-top (上)
  2. padding-bottom (下)
  3. padding-left (左)
  4. padding-right (右)

当把四个方向的值一次性写到一个 padding 上时, 依旧是顺时针方向依次表示: 上 右 下 左.

3.5.2 外边距 - margin

margin: 外边距

通过修改 margin 的值, 设置盒子和盒子(元素和元素)之间的距离. (内容默认是顶着边框的)

css">        #div1 {padding: 10px;margin: 30px;}


END


http://www.ppmy.cn/embedded/139368.html

相关文章

03 —— Webpack 自动生成 html 文件

HtmlWebpackPlugin | webpack 中文文档 | webpack中文文档 | webpack中文网 安装 npm install --save-dev html-webpack-plugin 下载html-webpack-plugin本地软件包 npm i html-webpack-plugin --save-dev 配置webpack.config.js让webpack拥有插件功能 const HtmlWebpack…

【MATLAB代码】基于IMM(Interacting Multiple Model)算法的目标跟踪,所用模型:CV、CA、CT

文章目录 3个模型的IMM&#xff08;代码简介&#xff09;源代码运行结果代码介绍总结 3个模型的IMM&#xff08;代码简介&#xff09; 本MATLAB代码实现了基于IMM&#xff08;Interacting Multiple Model&#xff09;算法的目标跟踪。它使用三种不同的运动模型&#xff08;匀速…

优选算法(双指针)

1.双指针介绍 双指针算法是一种常用的算法思想&#xff0c;特别适用于处理涉及阵列、链表或字符串等线性数据结构的问题。通过操作两个一个指针来进行导航或操作数据结构&#xff0c;双指针可以最大程度优化解决方案的效率。提高效率并减少空间复杂度。 在Java中使用双指针的核…

【蓝桥杯C/C++】翻转游戏:多种实现与解法解析

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: 蓝桥杯C/C 文章目录 &#x1f4af;题目&#x1f4af;问题分析解法一&#xff1a;减法法解法二&#xff1a;位运算解法解法三&#xff1a;逻辑非解法解法四&#xff1a;条件运算符解法解法五&#xff1a;数组映射法不同解法的比较…

ssm126基于HTML5的出租车管理系统+jsp(论文+源码)_kaic

设计题目&#xff1a;出租车管理系统的设计与实现 摘 要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代&#xff0c;所以…

【网络系统管理】Centos7——配置主从mariadb服务器案例(下半部分)

【网络系统管理】Centos7——配置主从mariadb服务器案例-CSDN博客 接上个文档&#xff0c;我们已经完成了主服务器创建数据库备服务器可以看到 一、在DBMS2查看信息 File&#xff0c;Position这两个字段的数据要记好&#xff0c;等一下需要用到 show master status; 二、在…

python实战案例----使用 PyQt5 构建简单的 HTTP 接口测试工具

python实战案例----使用 PyQt5 构建简单的 HTTP 接口测试工具 文章目录 python实战案例----使用 PyQt5 构建简单的 HTTP 接口测试工具项目背景技术栈用户界面核心功能实现结果展示完整代码总结 在现代软件开发中&#xff0c;测试接口的有效性与响应情况变得尤为重要。本文将指导…

机器学习算法模型系列——Adam算法

Adam是一种自适应学习率的优化算法&#xff0c;结合了动量和自适应学习率的特性。 主要思想是根据参数的梯度来动态调整每个参数的学习率。 核心原理包括&#xff1a; 动量&#xff08;Momentum&#xff09;&#xff1a;Adam算法引入了动量项&#xff0c;以平滑梯度更新的方向…