前端开发笔记 | 初级 CSS篇

一:前言

本篇是为萌新准备的CSS超详细笔记,统计了大约400+的知识点,100+开发通用模板,根据B站教学视频顺序对每个知识点进行了特别排序,可以很好的满足新人的上手需求。如您遇到无法解决的难题或者有对笔记不理解的地方,欢迎进群和我们一起讨论 (九依の小屋) 。当然了,也可以前往[W3SChool] 官方网去了解。 推荐学习网站 |菜鸟教程首页 / 在线编程工具

一起讨论:九依の小屋

二:工具

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# 常用快捷键​===============================================
# !+Enter:生成HTML头文件
# Lorem:随机生成一句英文
# Ctrl+Shift+/:代码快速注释
# Ait+w:代码快速添加标签
# Shift+Ait+F:代码格式化
# Table+选中代码:代码格式化

# 基础编辑快捷键​===========================================
# |复制/剪切/粘贴行:​Ctrl+C/Ctrl+X (未选中时) //Max系统:Cmd+C/Cmd+X
# |​删除当前行:​Ctrl+Shift+K //Max系统:Cmd+Shift+K
# |​上下移动行:​Alt+↑/↓ //Max系统:Option+↑/↓
# |​上下复制行:​Shift+Alt+↑/↓ //Max系统:Shift+Option+↑/↓
# |​插入新行(上/下):Ctrl+Shift+Enter / Ctrl+Enter //Max系统:Cmd+Shift+Enter / Cmd+Enter
# |​行注释/取消:Ctrl+/ //Max系统:Cmd+/
# |​块注释/取消:Shift+Alt+A //Max系统:Shift+Option+A

# 导航与搜索​==============================================
# |快速打开文件:​Ctrl+P //Max系统:Cmd+P
# |​跳转到行号:Ctrl+G //Max系统:Cmd+G
# |​跳转到符号(类/函数):​Ctrl+Shift+O //Max系统:Cmd+Shift+O
# |​跳转到定义:F12
# |​查看定义(不跳转)​:Alt+F12 //Max系统:Option+F12
# |​全局搜索文本:Ctrl+Shift+F //Max系统:Cmd+Shift+F
# |查找/替换:Ctrl+F / Ctrl+H //Max系统:Cmd+F / Cmd+H
# |​切换已打开文件:Ctrl+Tab

# 代码重构与智能操作​=======================================
# |​重命名符号(变量/函数)​: F2
# |​格式化整个文档: Shift+Alt+F //Max系统:Shift+Option+F
# |​格式化选中代码: Ctrl+K Ctrl+F //Max系统:Cmd+K Cmd+F
# |​快速修复建议: Ctrl+. //Max系统:Cmd+.
# |​选择所有相同变量: Ctrl+F2 //Max系统: Cmd+F2
# |​多光标编辑: Alt+Click 或 Ctrl+Alt+↑/↓ //Max系统:Option+Click 或 Cmd+Option+↑/↓

# 窗口与面板管理​===========================================
# |​切换侧边栏显示: ​Ctrl+B //Max系统:Cmd+B
# |​打开/关闭终端: ​Ctrl+` //Max系统:Cmd+`
# |​新建终端: ​Ctrl+Shift+ ` //Max系统:Cmd+Shift+ `
# |​拆分编辑器: ​Ctrl+\ //Max系统:Cmd+\
# |​切换编辑器组: ​Ctrl+1/2/3 //Max系统:Cmd+1/2/3
# |​全屏模式: ​F11
# |​打开命令面板: ​Ctrl+Shift+P //Max系统:Cmd+Shift+P

# 调试快捷键​===============================================
# |启动/继续调试: F5
# |​停止调试​: Shift+F5
# |​单步进入(函数内部): ​​ F11
# |​单步跳过(不进入函数): ​​ F10
# |​单步跳出(函数返回)​: ​ Shift+F11
# |​切换断点: F9
=============================================================================================================

# HTML-------------------------------------------------------------------------------------------------------
//Other:
# |"{SEO}"指代是"搜素引擎优化",用以优化网页的流量曝光或者利于爬虫爬取以此提升网站的访问数.
# |"{块元素}block-level":独占一行且禁止嵌套,宽高默认为100%| 可以通过"display"进行更改元素类型.
# |"{行内元素}lnline":不独占一行,宽度由内容撑开,无法设置宽高.
# |"{行内块元素}lnline-block":兼具上方两种元素特性,可设置宽高而不强制换行.
# |"{替换元素}":内容由外部元素决定(如img和video等).
# |"{表单元素}":交互控件(如from和input等),部分默认为行内块.

三:CSS笔记

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
#-----------------------------------------------------------------------------------------------------------
//涵盖CSS3的全部CSS标签以及可用属性值 |说明:"ttt"处为CSS自定义文本,常用于属性或变量的自定义命名

# 选择器与优先级​​=========================================
# *{} :通配选择器
# #id{}: ID选择器
# .ttt{};Class选择器 //class=ttt
# div{} :元素选择器
# .ttt,.zzz{}:合并选择器 /*(id="ttt",class="zzz"),减少重复代码/优先级:选择符的权重之和*/
# ttt zzz{}: 后代选择器 /*对ttt中的zzz产生Css效果:权重:选择符的权重之和*/
# ttt>zzz{}:子代选择器 /*仅对ttt中的或下一级的zzz产生Css,非ttt下的或更下一级的无效果:权重:选择符的权重之和*/
# ttt+zzz{}: 相邻兄弟选择器 /*仅对ttt下的zzz和向下相邻的yyy产生css*/
# ttt~zzz{} 通用兄弟选择器 /*对ttt之后的zzz产生css,用于多个x元素,用~隔开*/
# !important: /*优先级10000(最高)*/
# :hover: 鼠标悬停|伪类选择器
# [attr=value]: 属性选择器(精确匹配属性值)
# :nth-child(n): 第n个子元素(CSS3)
# ::before: 元素前插入内容(伪元素)
# :not(selector): 排除选择器(CSS3)
# :root: 根元素选择器(CSS3)

# 盒模型与布局​=========================================
# width: 宽 |px
# height: 高 |px
# left: 0px 方向对齐 |/*???可用属性为:"left","reight","..."*/
# margin: 外边框 |上右下左 0 0 0 0 px
# padding: 内边框 |上右下左 0 0 0 0 px
# size:水平宽度 |px
# border-radius: 圆角 |px //1:相同;2:左上+右下,右上+左下;3:左上,右上+左下,右下;4:左上,右上,右下,左下
# float: 浮动 | (left 左浮动|right 右浮动|none 无浮动)
# clear: both: 清除浮动|
# overflow: hidden:清除浮动|
# align :对齐方式 | (左 left|右 right|水平居中 center|上 top|下 bottom|垂直居中 middle)
# display:盒元素 | (block 块级|inline 行内|flex 弹性|grid 网格)
# flex : 弹性布局简写(grow shrink basis,CSS3)
# box-sizing:盒子模型 | (content-box 标准盒模型|border-box 边框盒模型)
# resize : 元素缩放(none|both|horizontal|vertical,CSS3)
# box-shadow: 阴影|(水平偏移 h-shadow|垂直偏移 v-shadow|模糊 blur|扩展 spread|颜色 color|内阴影 inset)//0px 0px 0px #ffffff
# grid-template-columns : 网格列定义(CSS3:repeat(3, 1fr))
# justify-content : 主轴对齐(center/space-between,Flex/Grid 通用)
# align-items : 交叉轴对齐(stretch/center)

# ​背景与边框​​===========================================
# background-color: 背景颜色 | #ff0000ff
# background-image: 背景图片 |(url() 图片路径|linear-gradient() 线性渐变)
# background-attachment : 背景固定(固定 fixed|滚动 scroll)
# background-size: 背景图片大小 | (cover 有损比例填充|contain 无损比例填充|auto 默认)
# background-repeat: 背景填充 | repeat默认值/repeat-x水平平铺/repeat-y垂直平铺/no-repeat不平铺}
# background-clip : 背景绘制区域(border-box/padding-box/content-box,CSS3)
# background-position: 图片定位 | left ???/center ???/right ???/x(px)y(px)/x%y%}
# linear-gradient() : 线性渐变背景(CSS3:to right, #ff0000, #0000ff
# radial-gradient() : 径向渐变背景(CSS3)
# border-color: 边框颜色 | #ff0000ff
# border-collapse: 边框折叠样式| collapse
# border: 边框样式| (width 宽|样式 style|颜色 color)
# transparent //在border里面添加以隐藏边框
# background-cover:(背景图片放大,完全覆盖背景区域,可能无法显示在背景定位区域中)(等比放大)//400px
# background-contain:(把图像放大至最大尺寸,使其高度宽度完全适应内容区域,可能铺不满盒子)//400px

# 列表与定位​​===========================================
# list-style-type:列表列标签样式(disc:实心圆 circle:空心圆 square:实心正方体 none:无)
# list-style-image:url(img.jpg图片路径) //将图片设置为列表符合样式
# list-style-position: 列表符定位 (outside 外面,inside 里面)| //设置列表项标记的放置位置
# list-style:简写 | (none去除列表符号)
# position: 定位 | static(默认)/relative(相对)/absolute(绝对)/fixed(固定)(绝对和固定会脱离文档流)

# ​文本与字体​​===========================================
# color: 颜色 | #ff0000ff //可选值:red/#ffffff/rgb(255,255,255)/rgba(0,0,0,.0)} /*"rgba"中".0"为不透明度*/
# font-size: 字体大小 |(px、rem)
# font-weight: 字体粗细 | bold粗(700)/bolder更粗/lighter更细/100-900细到粗(400默认)}
# font-style: 字体样式| normal默认/italic斜体
# font-family: 字体 |("Arial", sans-serif)
# text-align: 字体对齐 |(左 left|右 right|水平居中 center|上 top|下 bottom|垂直居中 middle)
# vertical-align: 垂直对齐|???
# text-shadow: 阴影 | (水平偏移 x|垂直偏移 y|模糊 blur|颜色 color)
# line-height: 行高对齐 |(行高倍数或固定值)
# white-space: ... | (nowrap 不换行|pre 保留空格)
# text-overflow : 文本溢出处理(clip/ellipsis,需配合 overflow: hidden)
# word-wrap : 单词换行(break-word,CSS3)
# @font-face : 自定义字体(CSS3,支持.woff 格式)/*font-family:"字体";src:url("字体链接")*/
# text-decoration: 文本修饰| underline下划线/overline上划线/line-through删除线
# text-indent:文本缩进
# text-transform: capitalize; 对英文句子所有单词首字母大写
# text-transform: lowercase; 对英文句子所有单词首字母小写
# text-transform:uppercase;对英文句子所有单词字母大写ita
# text-transform:none; 不添加任何效果}

# ​变换与动画(CSS3)​​​====================================
# transform: 2D/3D元素变换 |扭曲skewX(0deg) |旋转rotate(45deg) |缩放scale(1.2) |移动translateX(50px)
# transform-style: preserve-3d(开启3D空间) /*应设置在需要转为3D元素的父级元素上*/
# perspective:景深| (500px) /*给予元素透视效果|应设置在3D元素的父级元素上*/
# perspective-origin: 透视点| (500px 500px)或者left /*改变观察者位置|应设置在3D元素的父级元素上*/
# transition: 过渡效果 | (属性 property|时长 duration|缓动函数 timing-function)(如all 0.3s ease))
# animation: 动画效果 | (name, duration, timing, delay, count)(动画名 时长 缓动 延迟 次数)
# animation: ttt 0(s) linear 0(s) infinite normal}|/*name(设置动画的名称:ttt);duration(设置动画的持续时间:?(s));timing-function(设置动画的速率:ease逐渐变慢,linear匀速,ease-in加速,ease-out减速,ease-in-out先加速后减速);delay(设置动画开始时间:0(s));iteration-count(设置动画的循环次数,infinite为无限次循环);direction(设置动画播放的方向:normal向前播放,alternate第偶次向前播放第奇数次相反方向播放);animation-play-state(设置动画的播放状态:running代表播放,paused代表停止播放)*/
# animation-fill-mode:forwards /*设置不发生动画时元素停留的位置*/
# animation: hover{animation-play-state:paused}}/*设置鼠标划过ttt元素产生的动画效果*/
# ttt:hover{animation-play-state:paused}} /*设置鼠标划过ttt元素产生的动画效果*/
# opacity: 不透明度 | 0~1(透明度,如0.5
# filter: 滤镜| blur(5px)(模糊)/grayscale(100%)(灰度)
@keyframes : 关键帧定义(动画)(如 from {opacity:0} to {opacity:1})from{样式}to{样式}} 或者0%-100%{} //from为动画的开始,to为动画的结束
# flex-grow: 0 |/*权重占比:默认为0,即如果存在剩余空间,也不放大.如果只有一个子元素设置,那么按扩展因子转化的百分比对其分配剩余空间。0.1即10%,1即100%,超出按100%*/

# ​弹性与布局(css3)​================================
# flex-direction: 布局方式 | row(行排列)/column(列排列)/*-reverse反转*/
# flex-wrap:换行 |换行wrap,不换行nowrap
# justify-content: 主轴对齐 | center(居中)/space-between(两端对齐)/flex-start 起始位置对齐/flex-end 结束位置对齐/space-around 分散对齐2x/space-evenly 均分对齐
# flex-grow:拉伸 | (?) /*拉伸值计算公式:总宽度的flex-grow分之一*/
# flex-shrink:压缩 | (?) /*压缩值计算公式:计算分母:(A宽*A的flex-shrink值)+(B宽*B的flex-shrink值)+(...)=X;计算比例:A宽*A的flex-shrink值/X=A比例,B宽*B的flex-shrink值/X=B比例,(...);计算结果:A比例*总容器缺少值=A结果,B比例*总容器缺少值=B结果,(...)*/
# align-items:侧轴对齐(单行) | stretch(拉伸)/center(居中)
# align-content:侧轴对齐(多行) | flex-start 起始位置对齐/flex-end 结束位置对齐/
# order:视觉排序 |(?) /*数值越小排序越前*/
# flex-basis: 基准长度| (100px)
# grid-template-columns: 定义网格列宽| repeat(3, 1fr)(重复列)/minmax(100px, auto)(最小最大值)
# gap: 列宽间距 |(网格或弹性项间距)
# columu-count:多列布局-列数 /*图片要设置宽100%*/
# columu-width:列宽宽度
# columu-gap: 列宽间距
# columu-rule-width:列边框宽度z
# columu-rule-style:列边框样式
# columu-rule-color:列边框颜色

# 前端开发技巧|flex简写:/*
|flex:1 1 auto;(可以拉伸 可以压缩 不设置基准长度),|可简写为:flex:auto
|flex:1 1 0;(可以拉伸 可以压缩 设置基准长度为0),|可简写为:flex:1
|flex:0 1 auto;(不可以拉伸 可以压缩 不设置基准长度),|可简写为:flex:0 auto */

# ​响应式与单位​​========================================
# @media: 媒体条件 |(如max-width: 600px
# vw/vh: 视窗比例单位 |(1vw = 1% 视窗宽度)
3 rem : 根字体相对单位(适配不同设备)
# calc() : 动态计算(如 width: calc(100% - 60px))
# hsla() : HSL 带透明度(hsla(120,100%,50%,0.3),CSS3)
# rgba() : RGB 带透明度(rgba(255,0,0,0.5),CSS3)
# @media screen and (max-width:768(px)) {.ttt{样式}} |手机适配/*设备为手机时(768px)使用的样式*/
# @media screen and (min-width:768(px)) and (max-width:996(px)) {.ttt{样式}}|平板适配 /*设备为平板时(768px+996px)使用的样式*/
# @media screen and (min-width:996(px)) {.ttt{样式}}|电脑适配 /*设备为电脑时(768px+996px)使用的样式*/

# ​其他关键属性​​========================================
# overflow: 溢出处理(滚动条) | visible(默认)/hidden(溢出隐藏)/scroll(溢出滚动)/auto(自动)/inherit;
# cursor: 鼠标光标状态 | pointer(手形)/wait(等待)
# z-index: 层叠顺序 |(层叠顺序,如999
# currentColor : 继承当前文字颜色
# clip-path : 裁剪路径(CSS3:circle(50%)/polygon())
# will-change : 性能优化(预声明变化属性)
# scroll-snap-type : 滚动捕捉(CSS3:y mandatory)

# BFC的作用​===========================================
# 元素开启 BFC后,其子元素不会再产生 margin 塌陷问题。
# 元素开启 BFC后,自己不会被其他浮动元素所覆盖。
# 元素开启 BFC后,就算其子元素浮动,元素自身高度也不会塌陷。
# BFC满足条件​=========================================
# 根元素:html /*该元素在创建html文件时默认存在*/
# 浮动元素:flot
# 绝对定位,固定定位:
# 表格单元格元素:table,thead,tbody,tfoot,th,td,tr,caption
# overfloe的值不为visible的块元素
# 伸缩项目
# 多列容器
# colum-span为all的元素
# display的值,设置为flow-root
# BFC的满足条件部分举例​===========================================
# /*float: left;
# position:absolute;
# display: inline-block;
# 1display: table;
# overflow:auto;
# column-count:1;
# display:flow-root;*/
_____________________________________________________


/* 内容不完全,正在更新中, 敬请期待... */

# CSS----------------------------------------------------------------------------------------------------------

四:CSS模块

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|//模块目录:-------------------------------------------------------------------------------------------------
|1.字体镂空效果(CSS3)
|2.居中对齐全方法(CSS3) //面试题
|3.待更新中...
|//End-------------------------------------------------------------------------------------------------------

# //---------------------------------------------------------------------------------------------------------
|项目"字体镂空效果"|环境"CSS>"|引用"HEX.CSS"|练习内容"background-clip"
#1{font-size: 4rem;
font-weight: 900;
background: url("texture.jpg") center/cover; /* 任意背景 */
-webkit-background-clip: text; /* 背景仅填充文字区域 */
background-clip: text;
color: transparent; /* 文字透明 */
-webkit-text-fill-color: transparent; /* 增强兼容性 */
text-shadow: 2px 2px 0 #fff, -2px -2px 0 #fff; /* 描边替代方案 */}
——————————————————————————————————————————————————————————————————————

|项目"居中对齐全方法"|环境"CSS>"|引用"HEX.CSS"|练习内容"margin,justify-content,align-items..."
文本水平居中:text-align: center /*前置条件​:父元素需为块级元素(如div、p),且作用于父元素上*/
文本垂直居中:line-height /*​前置条件​:​单行文本,且容器高度固定。line-height值需等于容器高度。*/
块级元素水平居中:margin: 0 auto /*​前置条件​:元素为块级且显式设置宽度​(如width: 200px;)。父元素需有宽度(非auto)。 */
块级元素垂直居中:display: inline-block + text-align: center /*​前置条件​:子元素设为display: inline-block。父元素需设text-align: center。 */
Flexbox水平+垂直居中:/*前置条件​:父元素设为display: flex。父元素需有固定高度​(如height: 300px或100vh)。 */
#1{display: flex;
justify-content: center; /* 水平居中 */
align-items: center; /* 垂直居中 */
height: 300px; /* 必须设置高度 */}
————————————————————————————————————————————
Grid水平+垂直居中:/*​前置条件​:父元素设为display: grid。父元素需有固定高度。 */
#1{display: grid;
place-items: center; /* 同时水平垂直居中 */
height: 300px;}
————————————————
绝对定位居中:/*​前置条件​:父元素设为position: relative。子元素设为position: absolute。 */
#1{position: relative;
height: 300px; /* 必须设高度 */}
————————————————————————————————
#2{position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%); /* 自适应子元素尺寸 */}
————————————————————————————————————————————————————————
表格布局居中:/*前置条件​:元素设为display: table。子元素设为display: table-cell。*/
#1{display: table;
width: 100%;
height: 300px;}
#2{display: table-cell;
text-align: center; /* 水平居中 */
vertical-align: middle; /* 垂直居中 */}
———————————————————————————————————————
|//End-------------------------------------------------------------------------------------------------------


//内容不完全,正在更新中, 敬请期待...