前端CSS总结
目录
前言
正文
CSS基础介绍:
CSS选择器:
元素选择器:
id和class选择器:
后代选择器和群组选择器:
盒子模型
content:
padding:
border:
margin:
字体样式
font-family:
font-weight:
font-style:
文字样式
text-indent:
text-align:
line-height:
图片样式
文字环绕:
列表样式
超链接样式
超链接伪类:
常用的伪类:
鼠标样式:
背景样式
背景颜色:
背景图片:
background-position:
浮动布局
什么是文档流?
什么是正常文档流?
Float
清除浮动:
作用:
使用:
其他方法:
定位布局
四种方式:
子绝父相
固定定位:
相对定位:
绝对定位:
总结
前言
精读一本书,胜过看N个视频。
这次看的书是:
吴振杰的《Web前端开发精品课 HTML CSS JavaScript基础教程》
17年出版的。
正文
CSS基础介绍:
CSS的定义:
全称:Cascading Style Sheet
中文名:层叠样式表
与HTML的关系:
HTML是骨架,CSS是外观,JS是行为
版本:
CSS1.0、CSS2.0、CSS2.1、CSS3.0共四个版本
其中,CSS2.1是CSS2.0的修订版。
跟HTML4和HTML5的关系一样——HTML5是对HTML4的补充;而CSS2和CSS3也是一样的。
引入方式:
外部样式表:link,在head标签中使用
内部样式表:style,在head标签内使用
行内样式表:行内style,在元素标签内使用
其中,优先级最高的是行内样式表,不推荐使用!important
有些网站(比如说商城的商详页)是先出结构,再加载CSS的,原因是?
引入方法不同,加载顺序不同
CSS选择器:
含义:
选择你要改变的元素,一共有五种选择器。
CSS选择器:
元素选择器、id选择器、class选择器、后代选择器、群组选择器
元素选择器:
直接选中元素,就是元素选择器。
比如说,div { style ... }。
id和class选择器:
id具有唯一性,一个页面只能出现一个同名id,定义和使用都需要加上"#";
而class允许出现重复,定义和使用都需要加上"."。
理解:id是身份证,class是名。
这跟我们英文学的是一样的,id是身份证的意思,而class翻译是类名。
后代选择器和群组选择器:
后代选择器:选择的是父元素下的某一子元素,这些元素之间是有关联的(要么就是父子元素,要么就是兄弟元素),两者之间使用空格隔开。
群组选择器:选择的是任意两个及以上元素,这些元素之间没有任何关联,两者之间使用逗号隔开。
盒子模型
什么是盒子模型?
一个元素所占据的空间。
怎么理解盒子模型?
页面中的每一个元素都可以看成是一个盒子,并且占据着一定的空间,并且这些盒子会互相影响。
盒子模型的组成:
主要内容:content(内容)、padding(内边距)、border(边框)、margin(外边距)
次要内容:content的width、height
content:
内容区,是CSS盒子的主要构成部分,可以是图片、文本等。
内容区是盒子模型必不可少的组成部分,其他三部分(padding、border、margin)可选。
内容区的三个重要属性:width、height、overflow,宽高不包括padding。
只有块元素才有宽高,行内元素是无法设置宽高的,需要转换类型。
padding:
内边距,指的是内容区和边框之间的空间,可以看成是背景区域。
border:
内外边距的“墙”。
border: width, style, color,可以直接设置边框的粗细、样式(实线、虚线、双线),颜色。
也可以修改直接某一边(上下左右)的边框样式。
margin:
两个盒子之间的距离,使得元素不用紧挨着一起。
margin允许负数值,从而使得两个盒子之间产生重叠的效果。
字体样式
常见的字体属性:
font-family:字体类型
font-size:字体大小
font-weight:字体粗细
font-style:字体风格(斜体)
color:字体颜色
font-family:
常用的字体:
中文:微软雅黑、宋体
英文:Times New Roman、Arial、Verdana
特别注意:
如果字体类型只有一个英文单词,不需要双引号;
如果是多个英文单词或者是中文,则需要加双引号。
多个字体,从左到右顺序进行选择显示,第一个字体库缺失,就第二个,以此类推。
font-weight:
属性值:100-900的整数数值、关键字(normal、lighter、bold、bolder)。
一般都是采用数值的形式,100相当于lighter,400相当于normal,700相当于bold,900则是bolder。
在实际开发中,一般都是使用bold。
font-style:
属性值:normal、italic(斜体)、oblique(斜体)
italic和oblique的区别:不是所有字体都有italic这个属性的,如果不起效果,就是用oblique即可。
在实际开发中,很少使用这个属性。
文字样式
与字体样式的区别:
字体样式:针对文字本身的显示效果,注重个体效果。
文本样式:针对整个段落的排版效果,注重整体效果。
常见的属性:
text-indent:首行缩进
text-align:水平对齐
text-decoration:文本修饰
text-transform:大小写
line-height:行高
text-indent:
前提:p元素的首行是不会自动缩进的
例子:font-size:14px; text-indent: 28px
字体大小是14,而首行缩进的像素值恰好是它的两倍,刚好缩进两个字符。
text-align:
水平方向一般都是left、center、right,没有middle,middle是垂直方向上的。
line-height:
用于控制每行文本的高度,可以实现垂直方向上居中。
但不是行间距,因为它只包含文本的高度,不包含文字的上下间距。
图片样式
图片大小控制:使用width、height属性。
图片边框:border。
图片对齐方式:
水平方向:text-align,一般都是用center这个属性值。
垂直方向:vertical-align。
注意:
1.想要图片居中对齐,应该在其父元素上设置水平居中,而不是img标签上进行设置。
2.vertical-align属性定义的是行内元素或文本相对于该元素的垂直方式,而不是设置该元素的垂直方式。
文字环绕:
在网页布局中,常常需要图文混排的效果。
这个时候,就需要用到Float属性(属性值:left、right)。
注意:
属性值里没有center,属性写在img里,且改变的是图片的位置。
img { float: right },图片是在右侧,而不是左侧。
列表样式
为什么要学列表样式?
结构和样式应该是分离的。
最常用的属性值:list-style-type:none。
此外,还可以自定义列表符号。
list-style-image: url(图片路径)
不常用,经常用的是iconfont。
超链接样式
超链接在鼠标点击的不同时期有着不同的状态:
默认:字体蓝色,带有下划线
点击时(不松手):字体为红色,带有下划线 - 一瞬间的事情
点击后:字体为紫色,带有下划线
超链接伪类:
a:link:默认样式,未访问样式。
a:visited:访问后的样式。
a:hover:鼠标经过样式。
a:active:点击激活时的样式(点击的一瞬间)。
注意:必须要按照这样的排序进行设置,否则部分样式可能失效。
常用的伪类:
a:link
a:hover
注意:对于未访问状态,我们可以省略:link,直接写a。
怎么去掉超链接默认的下划线?
text-decoration: none;
鼠标样式:
属性:cursor
常用的属性值:default(默认)、pointer(常用)、text、crosshair、wait、help
背景样式
包含背景颜色、背景图片。
背景颜色:
属性:background-color
属性值:颜色关键字、rgb数值、#十六进制数值
注意:color用于定义文字颜色,background-color用于定义背景颜色。
背景图片:
常见属性:
background-image:背景图片地址
background-repeat:背景图片重复,水平/垂直
background-position:背景图片位置,常用于精灵图,制作动画
background-attachment:背景图片固定
background-position:
属性值:像素值、关键字
注意:要同时设置水平和垂直方向,否则不起效果。
关键字:top / bottom、left/right、center的两两组合共8个,再加上(center, center)即9个。
浮动布局
什么是文档流?
表现为元素在页面中出现的先后顺序。
文档流分为正常文档流、脱离文档流。
什么是正常文档流?
将一个页面从上到下分为一行一行的,其中块元素独占一行,相邻行内元素在每一行中按照从左到右的排列直到该行排满为止。
什么是脱离文档流?
脱离了正常文档流的文档流就是脱离文档流。
怎么算脱离?
使用了Float属性。
Float
CSS布局的最佳利器之一,可以通过浮动来快速灵活地定位页面元素,以达到布局网页的目的。属性值有left和right两个。
注意:
如果给块元素设置浮动,那么宽度不再是独占一行了,而是脱离于文档流,“漂浮”在文档之上,所以也称为浮动。
宽度由内容撑开。
作用:
常用于实现水平方向上的并排布局,两列布局、三列布局、多列布局。
清除浮动:
属性:clear
属性值:left、right、both(常用)
作用:
清除兄弟元素浮动后带来的布局影响。
使用:
我们一般都是在浮动元素后面再增加一个空元素,然后设置clear: both来清除浮动。
其他方法:
overflow:hidden
伪元素
定位布局
浮动布局虽然灵活,但是不易控制。
而定位布局最大的优势就是精准定位。
属性:
position。
四种方式:
固定定位:fixed
相对定位:relative
绝对定位:absolute
静态定位:static(默认)
这四种方式刚好就是position的属性值。
子绝父相
在常见的布局中,如果子盒子采用了绝对定位,那么父盒子就要采用绝对定位,这样才不会产生布局问题,相关内容请查看站内其他文章。
固定定位:
含义:元素被固定不会随着滚动条的拖动而改变位置。
场景:回到顶部按钮
参考对象:浏览器的四条边
使用:四个属性(top/bottom、left/right),下同
相对定位:
含义:元素位置相对于元素原始位置计算而来的
参考对象:元素的原始位置
使用:同上
绝对定位:
含义:精确定位
参考对象:浏览器的四条边
使用:同上
注意:变成绝对定位之后,元素完全脱离文档,附近元素会认为该元素不存在,从而产生了层级(z-index)问题。
总结
在本文中,并没有给出太多CSS属性,去掉了一些不常见的CSS属性。
当然啦,还有很多高级属性都是跟动画相关的,这需要更多时间去学习。
如果仅靠5千不到的文字就能把CSS叙说完,这行业也不会这么卷。
但是这部分的知识,已经足够大部分人去完成一个不错的页面了,或者是应对考试。
精读一本书,胜过看N个视频。
因为视频很多都是讲实操的,但是书本有个完整清晰的脉络,你能够掌握更多基础知识。
就这样吧,咱们下期再见!
相关文章:
前端CSS总结
目录 前言 正文 CSS基础介绍: CSS选择器: 元素选择器: id和class选择器: 后代选择器和群组选择器: 盒子模型 content: padding: border: margin: 字体样式 …...
Linux/C 高级——指针函数
1.概念 本质是函数,函数的返回值为指针。类比着指针数组。 指针数组:本质是数组,数组中存放指针。 数据类型 *数组名[元素个数]; int a[2][3]; int *arr[2] {a[0],a[1]}; //*(*(arri)j) *(arr[i]j) arr[i][j] 2.定义格式 格式: 数…...
GRU门控循环单元【数学+图解】
文章目录 1、简介2、门控机制3、公式4、图解GRU4.1、重置门和更新门4.2、候选隐藏状态和隐藏状态⭐ 5、LSTM与GRU的对比6、应用7、训练技巧 🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习ÿ…...
代码随想录算法训练营第六十一天|Bellman_ford 队列优化算法(又名SPFA)、bellman_ford之判断负权回路
卡码网:94. 城市间货物运输 I from collections import dequeclass Edge:def __init__(self, to, val):self.to to # 链接的节点self.val val # 边的权重def main():n, m map(int, input().split())grid [list() for _ in range(n 1)] # 初始化邻接表for _…...
ArrayList集合源码解读(二)已完结
ArrayList集合源码解读(二) 前言 这篇文章已经把 ArrayList 更完了。各位还想看什么源码可以私信我~~ 上节课带大家阅读了 ArrayList 中的核心扩容代码,那么今天带大家阅读下List集合中我们常用的几个方法的底层实现逻辑! 常用…...
光伏逆变器、MPPT、PCS储能变流器、BMU、BCU、BDU和液冷机组
一、光伏逆变器 光伏逆变器(PV inverter或solar inverter)可以将光伏(PV)太阳能板产生的可变直流电压转换为市电频率交流电(AC)的逆变器,可以反馈回商用输电系统,或是供离网的电网使…...
OpenHarmony编译
简介:本文将会介绍编译OpendHarmony环境的搭建、编译、和刷机(rk3568) 使用场景:修改系统源码,需要验证修改的功能是否正确、编译镜像、编译SDK 1、VS Code,下载链接,用于修改源码 2、linux环…...
C语言典型例题30
《C程序设计教程(第四版)——谭浩强》 习题2.7 从银行贷了一笔款d,准备每月还款额为p,月利率为r,计算多少个月能还清。 设d30000元,p6000元,r1%。对求得的月份取小数点后一位,对第二…...
springMVC @RestControllerAdvice注解使用方式
使用 RestControllerAdvice 的主要场景包括: 全局异常处理:处理所有控制器中抛出的未捕获异常。数据校验失败处理:处理 Bean Validation 校验失败的情况。自定义响应:统一定义响应格式或错误信息。 RestControllerAdvice 注解的…...
HarmonyOS鸿蒙开发岗位面试中关于组件的问题总结
文章目录 1. 鸿蒙组件的基本概念2. 组件的使用3. 布局管理4. 组件间通信5. 组件化开发6. 性能优化7. 实战应用 鸿蒙应用开发岗位面试中关于鸿蒙组件的问题,通常会涉及多个关键知识点,这些知识点涵盖了鸿蒙组件的基本概念、使用、布局管理、性能优化、组件…...
Unity 在Editor下保存对Text组件的文本的修改
Unity 在Editor下保存对Text组件的文本的修改 /****************************************************文件:TimeStampForText.cs作者:lenovo邮箱: 日期:2024/8/8 1:9:21功能: *************************************************…...
mysql 日志爆满,删除日志文件,定时清理日志
今天发现网站不能正常访问,于是登陆服务器查找问题。 机智的我随手用命令:df -l 发现 硬盘爆满了,于是就知道问题所在了。 Filesystem 1K-blocks Used Available Use% Mounted on/dev/xvda1 20641404 16963004 16929876 10…...
MySQL学习(19):锁
1.什么是锁 锁是计算机协调多个进程或线程并发访问某一资源的机制。 在数据库中,数据是供许多用户共享的资源,数据库必须保证数据并发访问的一致性、有效性,这就要靠锁来协调实现。 MySOL中的锁,分为以下三类: &am…...
【出海日记】关于 KD ,数据工具的陷阱
一个关键词:deepwoken builder 对标的竞品:deepwoken.co 初步分析: https://ahrefs.com/keyword-difficulty/?countryus 显示这个关键词优化难度极低 拿流量的是一个内页,单靠这个内页一个月有 22 万的流量 看起来很香&#x…...
【k8s集群部署篇】在openEuler环境下部署多master高可用kubernetes集群详细教程(V1.30版本)
【k8s集群部署篇】在openEuler环境下部署多master高可用kubernetes集群详细教程(V1.30版本) 一、相关名词介绍1.1 k8s简介1.2 Keepalived简介1.3 HAProxy简介二、本次实践介绍2.1 环境规划介绍2.2 本次实践简介三、所有节点基础环境配置3.1 主机配置工作3.2 关闭防火墙和seli…...
数据结构:链表经典算法OJ题
目录 前言 一、移除链表元素 二、反转链表 三、合并两个有序链表 四、链表的中间节点 五、环形链表的约瑟夫问题 前言 在了解了链表的相关知识后,我们还需要一些题目进行练习加深对链表这方面知识的理解,也可以用来检测链表这块学的的怎么样&#…...
【线性代数】【二】2.2 极大线性无关组与向量空间的基
文章目录 前言一、极大线性无关组二、向量空间的基三、向量维数与向量空间维数总结 前言 上一篇中我们介绍了向量空间的概念,并且学习了对任意给出的一组向量,如果构造一个向量空间。本文将更加细致的去分析张成一个向量空间,具有哪些性质。…...
OD C卷 - CPU算力分配
CPU算力分配 两组服务器A、B, 每组有多个算力不同的CPU;为了让两组服务器的算力和相等,允许两组各选出一个CPU进行一次交换;求两组中用于交换的CPU算力,从A中选出的算力尽可能小; 输入描述: 第一行 输入L…...
matlab实现红绿灯识别
在MATLAB中实现红绿灯识别通常涉及图像处理技术,包括颜色分割、形态学操作、边缘检测等步骤。下面我将给出一个基本的框架和示例代码,用于在MATLAB中识别图像中的红绿灯。 步骤 1: 读取图像 首先,你需要有一张包含红绿灯的图像。 img imr…...
base64 转 pdf
工作中经常会遇到一些签名的pdf传输,一般都是base64编码,这样就需要我们手动转为pdf, 其实根本不需要自己使用pdf的库写入,只是数据的简单写入就行 package mainimport ("encoding/base64""fmt""os&quo…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...
如何应对敏捷转型中的团队阻力
应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...
在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7
在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤: 第一步: 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为: // 改为 v…...
