前端速通(CSS)

1.CSS介绍

1.什么是CSS?

CSS(Cascading Style Sheets,层叠样式表)是一种用于控制网页的外观和布局的样式表语言。它与HTML(超文本标记语言)紧密配合,负责页面元素的样式定义,如字体、颜色、尺寸、排版和布局等。

总之,HTML负责网页的结构和内容,而CSS则负责网页的视觉展示,使网页更加美观和易于使用。

CSS的基本功能:
  1. 定义样式:CSS通过定义样式规则,控制网页上各个HTML元素的外观。样式规则可以包括颜色、字体、边距、相似、背景、位置、大小等属性。

  2. 布局管理:CSS可以控制元素在页面上的位置和布局,包括使用传统的盒模型(box model)、弹性布局(flexbox)和网格布局(grid)等技术。

  3. 响应式设计:通过CSS媒体查询(媒体查询),可以根据不同设备的屏幕大小、分辨率等条件,调整网页布局和样式,以实现适应各种设备(如手机、平板、桌面)的响应式设计。

  4. 视觉效果:CSS支持多种动画效果和过渡效果,可以为网页元素添加动态效果,提高用户体验。

CSS的核心概念:
  • 选择器:用于选择要应用样式的HTML元素。常见的选择器有标签选择器(如h1p)、类选择器(如.class-name)和ID选择器(如#id-name)。

  • 属性和属性值:CSS规则由属性和属性值组成。属性指定要应用的样式效果,而属性值则定义具体的样式(如颜色、大小等)。例如,color: red;就是一个CSS属性值对,表示文本颜色为红色。

  • 继承规则:当多个样式规则作用于同一个元素时,CSS会根据一定的优先级规则(优先顺序)来决定最终的样式。优先级规则通常由选择器的具体性(speciality)和声明的来源(如内部联样式、外部样式表等)来决定。

为什么要使用CSS?
  • 分离结构和样式:利用CSS将网页的内容(HTML)和样式(CSS)分离,使得网页的结构更清晰、维护更方便。
  • 提高页面加载速度:CSS文件通常是外部链接的,通过缓存技术,减少每次页面加载速度重复下载样式,提升页面加载。
  • 增强可维护性和可复用性:通过集中管理样式,简化代码,使得样式的维护更加方便,多个页面可以共享同一个CSS文件,达到代码复用的效果。

2.CSS基本语法规范

1. CSS规则架构

CSS的核心构成是选择器声明,一个CSS规则由这几个部分组成:

  • 选择器selector):指定要应用样式的HTML元素。
  • 声明declaration):指定该元素的样式。每个声明由一个属性和一个属性值组成。

注意:

• CSS要写到style标签中(后⾯还会介绍其他写法)

• style标签可以放到⻚⾯任意位置.⼀般放到head标签内.

• CSS使⽤/**/作为注释.(使⽤ctrl+/快速切换).

•CSS中,空格和换行字符的使用不会影响规则的解析,但为了提高代码的可执行性,通常会使用适当的缩进和换行。

2 引⼊⽅式

CSS有3种引⼊⽅式,语法如下表格所⽰:

3种引⼊⽅式对⽐:

1. 行内样式(Inline CSS)

内联样式等于CSS规则直接写在HTML元素的style属性中。这种方式的优先级最高,但不推荐大规模项目,因为它使得HTML和CSS代码混杂,不易维护。

2. 内部样式表(Internal CSS)

内部修改样式表只需将CSS规则写在HTML文档的<style>标签中,通常放在<head>部分。这种方式适用于单个HTML页面,需要多个元素样式时比较方便。

3.外部样式表(External CSS)

外部样式表将CSS代码写在单独的.css文件中,并通过<link>标签将其引入到HTML文件中。外部样式表是最常用的方式,特别是当你需要多个HTML页面共享同一个样式时。一种具有良好的可维护性的方式,可以由团队协作开发。

3.CSS样式书写规范

1.缩进与格式

  • 使用空格符号制表符(Tab)进行缩进。通常建议使用两个空格进行缩进。
  • 每个声明块的开头和结尾都要使用大逗号{}
  • 声明和属性值之间用冒号:分隔,属性值后面空白。
  • 每条声明以分号;结束,即使是最后一条声明。

2.命名约定

  • 选择器命名:采用有意义且描述性的名称,避免使用过少或模糊的类名或ID名。
    • 类名通常使用小写字母,多个单词之间使用连字符-分隔(如.button-primary)。
    • ID名通常也使用小写字母,但由于ID的唯一性,适当的简短命名也可以接受的(如#header#footer)。
    • 避免使用过多的警告类别,保持选择器的疑虑很简单。

3.声明顺序

  • 布局相关的属性放在一起,通常先设置displaypositiontopleftwidthheight等布局属性。
  • 窗体的相关属性放在一起,如colorbackgroundborderfonttext等。
  • 其他的辅助属性,如transitionbox-shadowopacity等放在最后。

4.避免使用!important

尽量避免使用!important,它会打破CSS的覆盖规则,降低代码的可性。只有在极特殊的情况下,才可以使用维护!important来覆盖特定样式。


5.使用空格和换行

  • 在大逗号{}内部使用空格来增加区别性,避免写成一行。
  • 在规则之间使用换行,使每个选择器/规则块之间有适当的间隔。

6..代码

  • 避免不必要的选择器和样式,避免重复定义相同的样式。
  • 如果多个元素的样式相同,使用组合选择器来简化代码。

4 CSS选择器

CSS选择器的主要功能就是选中⻚⾯指定的标签元素.选中了元素,才可以设置元素的属性

. 就好⽐SC2,War3这样的游戏,需要先选中单位,再指挥该单位⾏动.

CSS选择器主要分以下⼏种:

1. 标签选择器

2. class选择器

3. id选择器

4. 复合选择器

5. 通配符选择器

1.元素选择器(标签选择器)

首表:

元素选择器直接通过HTML标签名称来选择元素。

这个规则将所有<p>元素的文本颜色设置为绿色。

2.类选择器(Class Selector)

类选择器通过HTML选择元素的class属性来选择元素,类选择器以.开始。

• ⼀个类可以被多个标签使⽤,⼀个标签也能使⽤多个类(多个类名要使⽤空格分割,这种做法可以让 代码更好复⽤)

3. ID选择器(ID Selector)

ID选择器通过HTML元素的id属性来选择元素,ID选择器以#开始。每个页面的ID应该是唯一的。


• id是唯⼀的,不能被多个标签使⽤(是和类选择器最⼤的区别)

4.后代选择器(Descendant Selector)

子代选择器通过空格来选中一个元素内部的所有子元素(不管深度)。

所有在<div>元素内部的<p>元素都会变成红色。

1. 以上三个标签选择器ul li a 中的任意,都可以替换成类选择器,或者id选择器,可以是任意选 择器的组合,也可以是任意数量选择器的组合

2. 不⼀定是相邻的标签,也可以是"孙⼦"标签

3. 如果需要选择多种标签,可以使⽤ , 分割,如p, div { } 表⽰同时选中p标签和div标签. 逗号前后可以是以上任意选择器,也可以是选择器的组合.

5.通配符选择器(Universal Selector)

通配符选择器*选择页面上的所有元素。

3 常用的CSS样式介绍

1.颜色和背景:colorbackground-color

color用于设置文本的颜色的属性

background-color属性用于设置元素的背景颜色,常见于设置网页或特定元素的背景颜色。

常见单位:

  • 颜色名称:如redbluegreenblack等。
  • 十六(HEX):如#FF5733#000000(表示黑色)。
  • RGB:如rgb(255, 0, 0),表示红色。
  • RGBA:如rgba(255, 0, 0, 0.5),红色,且间隙为50%。
  • HSL:如hsl(0, 100%, 50%),表示红色。
  • HSLA:如hsla(0, 100%, 50%, 0.5),红色,且间隙为50%。

2 字体大小(font-size

font-size属性用于设置文本的大小。可以使用多种单位来表示字体大小。

常见单位:
  • px(像素):绝对单位
  • em:相对于父元素的字体大小
  • rem:相对于根元素的字体大小
  • %:相对于父元素的字体大小
  • vwvh:相对于视窗宽度和高度的百分比

3.边框(border)

border是一个简写属性,用于设置元素的所有已知(上、右、下、左)的宽度样式颜色

边框 ( border-width)

border-width用于设置身高的宽度,通常使用以下单位:

  • px:像素(常见的单位)
  • em:相对于元素字体的宽度
  • rem:相对于根元素的字体宽度
2.边框样式 ( border-style)

border-style用于定义未知的样式。常见的未知样式包括:

  • solid:实线边框
  • dashed:虚线边框
  • dotted:点状线边框
  • double:双线边框
  • none:没有边框
  • hidden:隐藏未知(仅用于表格元素)

4.宽度和高度(widthheight

width属性定义了元素的宽度,它可以概括所有可见元素(如divimgbutton等)

height属性定义了元素的高度。分子widthheight也可以使用像素、粒子、视口单位等单位来设置。

5. 内边距(padding)

padding常见的单位解释如下:

  • px:像素单位,用于精确控制内边距的大小。
  • %:百分比,通常相对于元素的宽度计算内边距的大小。例如,padding: 10%令内边距占元素宽度的10%。
  • em:相对于元素的字体大小。例如,如果字体大小是16px,则1em等于16px。
  • rem:相对于根元素(通常是<html>标签)的字体大小。
2.padding的简写和下一步设置
初始值:

当只设置一个值时,表示四个方向的内边距都相同:

div { padding: 20px; /* 四个方向的内边距都是 20px */ }
两个值:

当设置两个值时,第一个值表示垂直方向(上和下)的内边距,第二个值表示水平方向(左和右)的内边距:

div { padding: 10px 20px; /* 上下内边距为 10px,左右内边距为 20px */ }
三个值:

当设置三个值时,第一个值表示上边的内边距,第二个值表示左右方向的第三个内边距,第一个值表示下边的内边距:

div { padding: 10px 20px 30px; /* 上 10px,左右 20px,下 30px */ }
四个值:

当设置四个值时,分别表示上、右、下、左四个方向的内边距:

div { padding: 10px 20px 30px 40px; /* 上 10px,右 20px,下 30px,左 40px */ }
3.设置每个方向的内边距

你也可以单独为每个边设置内边距,使用padding-toppadding-rightpadding-bottompadding-left来分别指定方向的内边距:

div {
    padding-top: 10px;
    padding-right: 20px;
    padding-bottom: 30px;
    padding-left: 40px;
}

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

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

相关文章

webkit浏览器内核编译(2024年11月份版本)

webkit浏览器内核编译 本文详细介绍了如何安装和配置Webkit的编译环境和工具的安装&#xff0c;以及在Windows上编译和运行WebKit浏览器引擎的过程&#xff0c;包括安装依赖、设置环境变量、生成解决方案并最终运行附带的MiniBrowser示例。 一、WebKit简介 WebKit 是一个开源的…

SQL注入--理论--堆叠注入

什么是堆叠注入&#xff1f; 在SQL语句操作的时候&#xff0c;每个语句都是以分号;标志结尾的。 在我们注入的过程中&#xff0c;通过使用多个分号同时进行多个SQL语句的注入&#xff0c;就是堆叠注入。 例如&#xff1a; ?inject1;handler 1919810931114514 open;handler 1…

鸿蒙操作系统(HarmonyOS)

鸿蒙操作系统&#xff08;HarmonyOS&#xff09;是华为公司开发的一款面向未来的全场景智慧生活操作系统。它旨在为不同设备的智能化、互联与协同提供统一的语言。鸿蒙提出的基于同一套系统能力、适配多种终端形态的分布式理念&#xff0c;是其核心竞争力之一。这一理念不仅使得…

C++趣味编程玩转物联网:用树莓派Pico实现一位数码管动态显示

七段数码管是一种经典的电子显示器件&#xff0c;广泛应用于数字时钟、电子仪表等设备。本文将通过树莓派Pico开发板&#xff0c;介绍如何用C代码控制一位七段数码管显示数字。作为一个嵌入式开发项目&#xff0c;这不仅是初学者理解数码管工作原理的好机会&#xff0c;也是C开…

本机上装好的ubuntu 全部的开发软件 如何备份以后移到另一台电脑上 还不会出现引导错误?

在Ubuntu系统上备份和迁移所有开发软件&#xff0c;可以按照以下步骤进行&#xff1a; 步骤 1: 备份已安装的软件列表 你可以使用dpkg命令来生成已安装软件的列表&#xff0c;并将其保存到一个文件中&#xff1a; dpkg --get-selections > installed_packages.txtDiffCop…

【Cesium】--viewer,entity,dataSource

viewer&#xff0c;entity&#xff0c;dataSource的关系 viewer.entities.add({}) 通过viwer.entities.add()直接加载的entity&#xff0c;默认是在viewer.entities(即viewer.dataSourceDisplay.defaultDataSource.entities)中&#xff0c;不会加载在viewer.dataSource中。 w…

Paddle Inference部署推理(三)

三&#xff1a;Paddle Inference推理 导出模型 Paddle Inference支持使用飞桨静态图模型进行推理&#xff0c;您可以通过以下两种方式获取静态图模型&#xff1a; &#xff08;1&#xff09;飞桨框架导出推理模型 飞桨框架在训练模型过程中&#xff0c;会在本地存储最终训练…

【国产MCU系列】-GD32F470-内部集成电路总线接口(I2C)

内部集成电路总线接口(I2C) 文章目录 内部集成电路总线接口(I2C)1、GD32F4的I2C模块介绍2、I2C控制器寄存器列表3、I2C工作模式3.1 I2C通讯流程3.2 主机模式发送数据流程3.3 主机模式数据接收流程3.4 DMA模式下数据传输4、I2C控制器相关API介绍5、I2C使用示例5.1 I2C主机模…

什么是Spring IOC和Spring AOP?

IOC就是控制反转&#xff0c;控制反转就是对组件对象控制权的转移&#xff0c;从程序代码本身转移到了外部容器。它把由程序代码直接操控的对象的调用权交给容器&#xff0c;通过容器实现对象组件的管理和装配。 Srping IOC负责创建对象&#xff0c;管理对象&#xff0c;装配对…

非交换几何与黎曼ζ函数:数学中的一场革命性对话

非交换几何与黎曼ζ函数&#xff1a;数学中的一场革命性对话 非交换几何&#xff08;Noncommutative Geometry, NCG&#xff09;是数学的一个分支领域&#xff0c;它将经典的几何概念扩展到非交换代数的框架中。非交换代数是一种结合代数&#xff0c;其中乘积不是交换性的&…

【CSP CCF记录】201803-1第13次认证 跳一跳

题目 样例输入 1 1 2 2 2 1 1 2 2 0 样例输出 22 思路 没有技术含量的一道题&#xff0c;解题的关键是理解游戏规则。用state标记跳跃状态&#xff0c;以下是对游戏规则的分析&#xff1a; 1. state1&#xff0c;跳到方块上但没跳到中心&#xff0c;得1分 2. state2&#xf…

ALSA(2) ---- DMA实践

DMA实践 本篇文章主要是学习alsa高级音频框架总结而来&#xff0c;ALSA的Platform侧ADMA&#xff0c;学习总结而来&#xff0c;adma驱动来源于telechips产商805x芯片&#xff1b; ADMA物理拓扑图 ADMA物理拓扑图如上&#xff0c;RX和TX ADMA是接收和发送控制器&#xff0c;Ar…

【机器学习】——卷积与循环的交响曲:神经网络模型在现代科技中的协奏

&#x1f3bc;个人主页&#xff1a;【Y小夜】 &#x1f60e;作者简介&#xff1a;一位双非学校的大二学生&#xff0c;编程爱好者&#xff0c; 专注于基础和实战分享&#xff0c;欢迎私信咨询&#xff01; &#x1f386;入门专栏&#xff1a;&#x1f387;【MySQL&#xff0…

c++(入门)

1. 引用 引用的定义 引用是另一个变量的别名&#xff0c;它在声明时必须被初始化&#xff0c;并且一旦初始化后&#xff0c;它就始终引用那个变量。 引用的语法 引用的声明方式是在变量名前加上&符号。 引用的特点 引用必须在声明时初始化。引用一旦初始化后&#x…

stm32内部高速晶振打开作为主时钟

首先建议你别这么干&#xff0c;因为内部晶振特别容易受温度等外界影响&#xff0c;很容易卡死或堵死程序 我是因为没画外部晶振电路&#xff0c;所以只能开内部晶振来作为时钟 适用于stm32f103系列 把下面的代码换掉源文件里的时钟源配置 /* 开启HSI 即内部晶振时钟 */RCC…

Nginx防御机制

文章目录 1.访问控制1.1基于 IP 的访问限制1.2基于用户认证的访问控制 2.防止 DDoS 攻击2.1连接数限制2.2请求速率限制 3.缓存机制3.1内容缓存 4.安全协议与加密4.1SSL/TLS 加密4.2HTTP/2 支持 5.防 SQL 注入和 XSS 攻击5.1输入验证与过滤 6.防盗链6.1基于 Nginx 的防盗链配置方…

lua除法bug

故事背景&#xff0c;新来了一个数值&#xff0c;要改公式。神奇的一幕出现了&#xff0c;公式算出一个非常大的数。排查是lua有一个除法bug,1除以大数得到一个非常大的数。 function div(a, b)return tonumber(string.format("%.2f", a/b)) end print(1/73003) pri…

代码管理之Gitlab

文章目录 Git基础概述场景本地修改未提交&#xff0c;拉取远程代码修改提交本地&#xff0c;远程已有新提交 GitIDEA引入Git拉取仓库代码最后位置 Git基础 概述 workspace 工作区&#xff1a;本地电脑上看到的目录&#xff1b; repository 本地仓库&#xff1a;就是工作区中隐…

嵌入式系统应用-LVGL的应用-智能时钟 part 3

智能时钟 part 3 6 光强传感器6.1 光敏电阻介绍6.2 电路图介绍 7 ADC模块7.1 ADC模块介绍7.2 adc 转化流程7.3 规则通道和注入通道7.4 DMA 搬运7.5 TIM触发ADC和DMA搬运数据的原理 8 代码8.1 配置头文件8.2 初始化ADC 和DMA8.3 创建线程读取 值8.4 演示效果 由于丢失温湿度传感…

跨平台应用开发框架(1)----Qt(组件篇)

目录 1.Qt 1.Qt 的主要特点 2.Qt的使用场景 3.Qt的版本 2.QtSDK 1.Qt SDK 的组成部分 2.安装 Qt SDK 3.Qt SDK 的优势 3.Qt初识 1.快速上手 widget.cpp mian.cpp widget.h Helloworld.pro 2.对象树 3.坐标系 4.信号和槽 1. 信号和槽的基本概念 2. 信号和槽的…