前端三剑客(二):CSS

目录

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(上) 开始, 顺时针方向填写属性值)

         /* 以下两种写法是相同的 */#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;}

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

         /* 边框的四个方向都设置为: 粗细为: 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 的值, 设置盒子和盒子(元素和元素)之间的距离. (内容默认是顶着边框的)

        #div1 {padding: 10px;margin: 30px;}


END

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

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

相关文章

华为Ensp模拟器配置OSPF路由协议

目录 简介 实验步骤 Pc配置 路由器配置 OSPF配置 交换机配置 简介 开放式最短路径优先 (OSPF) 协议深度解析 简介 开放式最短路径优先&#xff08;Open Shortest Path First, OSPF&#xff09;是一种内部网关协议&#xff08;IGP&#xff09;&#xff0c;用于在自治系统…

【C++】绘制内存管理的地图

生活是属于每个人自己的感受&#xff0c;不属于任何人的看法。 前言 这是我自己学习C的第二篇博客总结。后期我会继续把C学习笔记开源至博客上。 上一期笔记是关于C的类与对象础知识&#xff0c;没看的同学可以过去看看&#xff1a; 【C】面向对象编程的艺术之旅-CSDN博客https…

基于YOLOv8深度学习的医学影像骨折检测诊断系统研究与实现(PyQt5界面+数据集+训练代码)

本论文深入研究并实现了一种基于YOLOV8深度学习模型的医学影像骨折检测与诊断系统&#xff0c;旨在为医学影像中的骨折检测提供高效且准确的自动化解决方案。随着医疗影像技术的快速发展&#xff0c;临床医生需要从大量复杂的医学图像中精确、快速地识别病灶区域&#xff0c;特…

【vulhub】nginx解析漏洞(nginx_parsing_vulnerability)

1. nginx解析漏洞原理 fastcgi 在处理’.php’文件时发现文件并不存在,这时 php.ini 配置文件中cgi.fix_pathinfo1 发挥作用,这项配置用于修复路径,如果当前路径不存在则采用上层路径 (1)由于 nginx.conf的配置导致 nginx把以’.php”结尾的文件交给 fastcgi 处理,为此可以构造…

如何通过统一权限管理打破异构系统的安全屏障

企业在运营过程中面临着众多异构系统的整合挑战&#xff0c;这些异构系统由于其不同的技术架构、数据格式和安全机制等&#xff0c;给信息管理带来了诸多挑战。其中&#xff0c;“信息孤岛”问题尤为突出&#xff0c;而异构环境下的统一授权管理系统则成为解决这一问题的关键。…

阿里云IIS虚拟主机部署ssl证书

宝塔配置SSL证书用起来是很方便的&#xff0c;只需要在站点里就可以配置好&#xff0c;但是云虚拟主机在管理的时候是没有这个权限的&#xff0c;只提供了简单的域名管理等信息。 此处记录下阿里云&#xff08;原万网&#xff09;的IIS虚拟主机如何配置部署SSL证书。 进入虚拟…

Linux系列-僵尸状态

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 进程退出 进程退出之后&#xff0c;代码就不会执行了&#xff0c;而是由PCB维护起来&#xff0c;我们可以通过PCB来查看退出信息。 进程退出时首先可以立即释放的就是进程对应…

DBeaver中PostgreSQL数据库显示不全的解决方法

本文介绍在DBeaver中&#xff0c;连接PostgreSQL后&#xff0c;数据库显示不全的解决方法。 最近&#xff0c;在DBeaver中连接了本地的PostgreSQL数据库。但是连接后打开这个数据库时发现&#xff0c;其所显示的Databases不全。如下图所示&#xff0c;Databases只显示了一个pos…

pycharm中配置pyqt5

pycharm中配置pyqt5 Python提供了多种图形界面库&#xff0c;包括但不限于Tkinter、PyQt、wxPython、Kivy等。Tkinter由于其轻量级和跨平台特性&#xff0c;通常作为入门首选。PyQt和wxPython则提供了更多的控件和更强大的功能&#xff0c;适合于需要复杂用户界面的应用程序。…

SpringBoot+Vue 2 多方法实现(图片/视频/报表)文件上传下载,示例超详细 !

目录 一、主流方法介绍 1. Base 64 2. 二进制流传输 3. multipart/form-data 4. FTP/SFTP 5. 云存储服务API 二、multipart/form-data 方式上传单个文件 1、前端部分 2、后端部分 三、multipart/form-data 方式上传多个文件 1、前端部分 2、后端部分 四、Base 64 方…

数据库迁移--laravel进阶篇

本地开发中的数据库和线上发布的数据库是不一样的,每进行一个线上版本的更新,很可能也涉及大量数据库的改动,那么这些数据库的改动在laravel中可以使用数据库迁移来处理。 比如我想创建一张flights数据表 执行php artisan make:migration create_flights_table命令就能自动生…

uni-app 修改复选框checkbox选中后背景和字体颜色

编写css&#xff08;注意&#xff1a;这个样式必须写在App.vue里&#xff09; /* 复选框 */ /* 复选框-圆角 */ checkbox.checkbox-round .wx-checkbox-input, checkbox.checkbox-round .uni-checkbox-input {border-radius: 100rpx; } /* 复选框-背景颜色 */ checkbox.checkb…

java实现ModbusCRC16校验

1. 目的 电流数据采集器是RS485 Modbus协议&#xff0c;想通过java实现串口数据的采集&#xff0c;因为涉及到串口通信的CRC校验&#xff0c;所以需要通过java来实现对采集的电流值进行校验&#xff0c;确保每次读到的电流值都是正常的。 2. 什么是ModbusCRC16校验 Modbus协议…

aws上安装ssm-agent

aws-cloudwatch 连接机器 下载ssm-agent aws-ec2 安装ssm-agent aws-linux安装ssm-agent 使用 SSM 代理查找 AMI 预装 先运行&#xff1a;systemctl status amazon-ssm-agent 查看sshm-agent的状态。 然后安装提示&#xff0c;执行 systemctl start amazon-ssm-agent 启动即…

springboot+vue+SseEmitter数据流推送实战

业务场景 SseEmitter介绍 SseEmitter 是 Spring Boot 中用于实现服务器发送事件&#xff08;Server-Sent Events, SSE&#xff09;的一种机制。SSE 允许服务器向客户端推送实时数据&#xff0c;而不需要客户端频繁地发起请求。这对于实现实时通知、更新等场景非常有用。 Sse…

阿里云 DevOps 资源安全扫描实践

随着企业上云进程的加速&#xff0c;云资源的使用量日益增长&#xff0c;云环境中资源的安全性和稳定性成为了企业业务运营的关键要素 面对多样化的云资源和复杂的应用场景&#xff0c;传统的安全管理手段已无法完全满足企业日益严苛的安全需求。为了确保云上资源的安全性&…

python之sklearn--鸢尾花数据集之数据降维(PCA主成分分析)

python之sklearn–鸢尾花数据集之数据降维(PCA主成分分析) sklearn库&#xff1a;Scikit - learn&#xff08;sklearn&#xff09;是一个用于机器学习的开源 Python 库。它建立在 NumPy、SciPy 和 matplotlib 等其他科学计算库之上&#xff0c;为机器学习的常见任务提供了简单…

sourceInsight常用设置和功能汇总(不断更新)(RGB、高亮、全路径、鼠标、宏、TODO高亮)

文章目录 必开配置设置背景颜色护眼的RGB值&#xff1f;sourceInsight4.0中如何设置选中某个单词以后自动高亮的功能&#xff1f;sourceinsight中输入设置显示全路径&#xff1f; 常用sourceInsight4.0中文乱码怎么解决&#xff0c;注意事项是什么&#xff1f;如何绑定鼠标中键…

oracle ogg学习和ogg常见变更操作

oracle ogg学习和ogg常见变更操作 OGG&#xff08;Oracle GoldenGate&#xff09; OGG 是一种基于日志的结构化数据复制软件&#xff0c;它通过解析源数据库在线日志或归档日志获得数据的增删改变化&#xff08;数据量只有日志的四分之一左右&#xff09; OGG 能够实现大量交…

游戏引擎学习第19天

介绍 这段内容描述了开发者在进行游戏开发时&#xff0c;对于音频同步和平台层的理解和调整的过程。以下是更详细的复述&#xff1a; 开发者表达了他希望今天继续进行的工作内容。他提到&#xff0c;昨天他讲解了一些关于音频的内容&#xff0c;今天他想稍微深入讲解一下他正…