css初识
css引入方式
-
内嵌式
-
外链式
- 需要创建一个以.css为扩展名的文件
- 在css文件中书写css代码
- 在需要引入的html文件中使用
<link> 标签引入即可 - 一个css文件可以被多个html文件所引入
-
行内式
选择器
选择器:找到对应的html 标签,方便对其设置样式
标签选择器
类选择器
<!DOCTYPE html>
<html lang="en">
?<head>
? ?<meta charset="UTF-8" />
? ?<meta http-equiv="X-UA-Compatible" content="IE=edge" />
? ?<meta name="viewport" content="width=device-width, initial-scale=1.0" />
? ?<title>Document</title>
? ?<style>
? ? ?/* 标签选择器 找到所有的span标签 给他们设置样式 */
? ? ?span {
? ? ? ?font-size: 100px;
? ? }
? ? ?.blue {
? ? ? ?color: blue;
? ? }
? ? ?.red {
? ? ? ?color: red;
? ? }
? ? ?.orange {
? ? ? ?color: orange;
? ? }
? ? ?.green {
? ? ? ?color: green;
? ? }
? ?</style>
?</head>
?<body>
? ?<span class="blue">G</span>
? ?<span class="red">o</span>
? ?<span class="orange">o</span>
? ?<span class="blue">g</span>
? ?<span class="green">l</span>
? ?<span class="red">e</span>
?</body>
</html>
?
复制代码
思维导图
css 选择器
选择器:找标签的,找到标签以后 设置样式
标签选择器
类选择器
id 选择器
#id属性值 {
?css属性名: 值;
?css属性名: 值;
?css属性名: 值;
?css属性名: 值;
?css属性名: 值;
}
复制代码
-
作用
- 通过 id 属性值,找到页面中带有这个 id 属性值的标签,设置样式
-
注意点
- 所有标签上都有 id 属性
- id 属性值类似于身份证号码,在一个页面中是唯一的,不可重复的!
- 一个标签上只能有一个 id 属性值
- 一个 id 选择器只能选中一个标签
- id 选择器多用于 js
通配符选择器
字体大小 font-size
注意:文字大小前往不要忘记加单位。
文字加粗 font-weight
-
属性名:font-weight -
取值
-
关键字
属性值 | 含义 |
---|
bold(fwb ) | 加粗 | normal(fwn ) | 正常 |
-
数字
-
注意点
- 不是所有字体都提供了九种粗细,因此部分取值页面中无变化
- 实际开发中以:正常、加粗两种取值使用最多
字体样式(是否倾斜) font-style -
属性名:font-style -
取值
- 正常(默认值):normal (
fsn ) - 倾斜:italic (
fsi )
字体系列 font-family
-
属性名:font-family -
常见取值:具体字体 1,具体字体 2,具体字体 3,具体字体 4,...,字体系列
- 具体字体:"Microsoft YaHei"、微软雅黑、黑体、宋体、楷体等……
- 字体系列:sans-serif、serif、monospace 等……
-
渲染规则:
- 从左往右按照顺序查找,如果电脑中未安装该字体,则显示下一个字体
- 如果都不支持,此时会根据操作系统,显示最后字体系列的默认字体
-
注意点:
- 如果字体名称中存在多个单词,推荐使用引号包裹
- 最后一项字体系列不需要引号包裹
- 网页开发时,尽量使用系统常见自带字体,保证不同用户浏览网页都可以正确显示
font 属性
-
属性名:font -
取值
- font: font-style font-weight font-size font-family
-
顺序要求:
-
省略要求:
-
交换要求:
-
注意点:如果需要同时设置单独和连写形式
- 要么把单独的样式写在连写的下面
- 要么把单独的样式写在连写的里面
字体相关属性总结
-
字体大小: font-size
-
字体粗细:font-weight
- 正常:normal 或 400
- 加粗:bold 或 700
-
字体样式:font-style
-
字体系列:font-family
- 具体字体 1,具体字体 2,具体字体 3,具体字体 4,...,字体系列
-
字体连写:font
- font : style weight size family;
文本缩进 text-indent
-
属性名:text-indent -
取值:
- 数字+px
- 数字+em(推荐:1em = 当前标签的 font-size 的大小)
文本水平对齐方式 text-align
-
属性名:text-align -
取值
- left 居左对齐
- center 居中对齐
- right 居右对齐
-
注意点:
- 如果需要让文本水平居中,text-align 属性给文本所在标签(文本的父元素)设置
水平居中方法总结 margin : 0 auto -
如果需要让 div、p、h(大盒子)水平居中?
- 可以通过 margin : 0 auto ; 实现
-
注意点:
- 如果需要让 div、p、h(大盒子) 水平居中,直接给
当前元素本身 设置即可 - margin:0 auto 一般针对于固定宽度的盒子,如果大盒子没有设置宽度,此时会默认占满父元素的宽度
line-height 行高
## 颜色常见取值
-
属性名
- 如:文字颜色:color
- 如:背景颜色:background-color
-
属性值
-
取值类型 ①:关键词 -
常见颜色取值:
- red:红色
- green:绿色
- blue:蓝色
- yellow:黄色
- orange:橘色
- skyblue:天蓝色
- pink:粉色
- …….
-
取值类型 ② :rgb表示法
-
每项取值范围:0~255 -
常见颜色取值:
- rgb ( 255 , 0 , 0 ) :红色
- rgb ( 0 , 255 , 0 ) :绿色
- rgb ( 0 , 0 , 255 ) :蓝色
- rgb ( 0 , 0 , 0 ) :黑色
- rgb ( 255 , 255 , 255 ) :白色
- ……
-
取值类型 ③:rgba 表示法
-
取值类型 ④:十六进制表示法
-
取值范围:
- 两个数字为一组,每个数字的取值范围:0~9 , a , b , c , d , e , f
-
省略写法:
- 如果三组中,每组数字都相同,此时可以每组可以省略只写一个数字
- 正确写法:#ffaabb 改写成 #fab
-
常见取值:
-
注意点
- 类似于:#ffaabc 不能改写成 #fabc
- 实际开发中会直接使用测量工具直接得到颜色,不需要前端自己设计颜色,
复合选择器
后代选择器 ????
-
作用:根据 HTML 标签的嵌套关系,选择父元素 后代中 满足条件的元素 -
选择器语法:选择器1 选择器2 { css属性名: 值; } -
结果: ? 在选择器 1 所找到标签的后代(儿子、孙子、重孙子…)中,找到满足选择器 2 的标签,设置样式 -
注意点:
- 后代包括:儿子、孙子、重孙子……
- 后代选择器中,选择器与选择器之前通过 空格 隔开
子代选择器:> ??
并集选择器 ????
交集选择器 ???
- 交集选择器中的选择器之间是紧挨着的,没有东西分隔
- 交集选择器中如果有标签选择器,标签选择器必须写在最前面
emmet 语法
hover 伪类选择器 ???
使用场景:用于美化丑陋的a标签
-
作用:选中鼠标悬停在元素上的状态,设置样式 -
选择器语法:选择器:hover { css } -
注意点:
- 伪类选择器选中的元素的某种状态
选择器进阶总结
目标:能够理解 复合选择器 的规则,并使用 复合选择器 在 HTML 中选择元素
背景样式 ????
背景颜色
背景图片
背景平铺
背景位置
-
注意点
- 方位名词取值和坐标取值可以混使用,第一个取值表示水平,第二个取值表示垂直
背景相关属性的连写形式 -
属性名:background(bg) -
属性值:
-
书写顺序:
- 推荐:background:color image repeat position
-
省略问题:
- 可以按照需求省略
- 特殊情况:在 pc 端,如果盒子大小和背景图片大小一样,此时可以直接写 background:url()
-
注意点
- 如果需要设置单独的样式和连写
- ① 要么把单独的样式写在连写的下面
- ② 要么把单独的样式写在连写的里面
元素显示模式 ???
能够认识三种常见的 元素显示模式,并通过代码实现不同 元素显示模式 的转换
块级元素
-
属性:display:block -
显示特点:
- 独占一行(一行只能显示一个)
- 宽度默认是父元素的宽度,高度默认由内容撑开
- 可以设置宽高
-
代表标签:
- div、p、h系列、ul、li、dl、dt、dd、form、header、nav、footer……
行内元素
-
属性:display:inline -
显示特点:
- 一行可以显示多个
- 宽度和高度默认由内容撑开
- 不可以设置宽高
-
代表标签:
- a、span 、b、u、i、s、strong、ins、em、del……
行内块元素
-
属性:display:inline-block -
显示特点:
-
代表标签:
- input、textarea、button、select……
- 特殊情况:img标签有行内块元素特点,但是Chrome调试工具中显示结果是inline
元素显示模式转换
目的:改变元素默认的显示特点,让元素符合布局要求
HTML嵌套规范注意点
-
块级元素一般作为大容器,可以嵌套:文本、块级元素、行内元素、行内块元素等等……
-
行内元素一般只能文字或者图片
-
a标签内部可以嵌套任意元素
-
但是:a标签不能嵌套a标签
伪元素
什么是伪元素:伪 假 元素 标签
-
伪元素:一般页面中的非主体内容可以使用伪元素 -
区别:
- 元素:HTML 设置的标签
- 伪元素:由 CSS 模拟出的标签效果
-
语法 -
注意点:
- 必须设置
content 属性才能生效 - 伪元素默认是行内元素
标准流
目标:能够认识 标准流 的默认布局方式及其特点
浮动
目标:能够认识使用 浮动的作用,了解 浮动的特点
浮动的作用
-
早期的作用:图文环绕 -
现在的作用:网页布局 ---> 摆放盒子
- 场景:让垂直布局的盒子变成水平布局,如:一个在左,一个在右
浮动的代码
浮动的特点
-
浮动元素会脱离标准流(简称:脱标),在标准流中不占位置
-
浮动元素比标准流高半个级别,可以覆盖标准流中的元素 -
浮动找浮动,下一个浮动元素会在上一个浮动元素后面左右浮动 -
浮动元素会受到上面元素边界的影响 -
浮动元素有特殊的显示效果
-
注意点:
- 浮动的元素不能通过text-align:center或者margin:0 auto,让浮动元素本身水平居中
伪元素
什么是伪元素:伪 假 元素 标签
-
伪元素:一般页面中的非主体内容可以使用伪元素 -
区别:
- 元素:HTML 设置的标签
- 伪元素:由 CSS 模拟出的标签效果
-
语法 -
注意点:
- 必须设置
content 属性才能生效 - 伪元素默认是行内元素
标准流
目标:能够认识 标准流 的默认布局方式及其特点
浮动
目标:能够认识使用 浮动的作用,了解 浮动的特点
浮动的作用
-
早期的作用:图文环绕 -
现在的作用:网页布局 ---> 摆放盒子
- 场景:让垂直布局的盒子变成水平布局,如:一个在左,一个在右
浮动的代码
浮动的特点
-
浮动元素会脱离标准流(简称:脱标),在标准流中不占位置
-
浮动元素比标准流高半个级别,可以覆盖标准流中的元素 -
浮动找浮动,下一个浮动元素会在上一个浮动元素后面左右浮动 -
浮动元素会受到上面元素边界的影响 -
浮动元素有特殊的显示效果
-
注意点:
- 浮动的元素不能通过 text-align:center 或者 margin:0 auto,让浮动元素本身水平居中
清除浮动
为什么需要清除浮动:
- 父元素没有设置高度
- 所有的子元素都浮动 ----> 脱标 在标准流中不占位置
- 父元素的兄弟会被他的子元素压盖住
padding 不会撑大盒子的特殊情况
-
不会撑大盒子的特殊情况(块级元素)
- 如果子盒子没有设置宽度,此时宽度默认是父盒子的宽度
- 此时给子盒子设置左右的 padding 或者左右的 border,此时不会撑大子盒子
CSS3 盒模型(自动内减)
外边距(margin)
外边距(margin)- 取值
-
作用:设置边框以外,盒子与盒子之间的距离 -
属性名:margin -
常见取值:
- 记忆规则:从上开始赋值,然后顺时针赋值,如果设置赋值的,看对面的!!
外边距(margin) - 单方向设置
- 场景:只给盒子的某个方向单独设置外边距
- 属性名:margin - 方位名词
- 属性值:数字 + px
margin 单方向设置的应用
清除默认内外边距
外边距正常情况
- 场景:水平布局 的盒子,左右的margin正常,互不影响
- 结果:最终两者距离为左右margin的和
外边距折叠现象 – ① 合并现象
外边距折叠现象 – ② 塌陷现象
行内元素的margin和padding无效情况
结构伪类选择器
-
作用与优势:
- 作用:根据元素在HTML中的结构关系查找元素
- 优势:减少对于HTML中类的依赖,有利于保持代码整洁
- 场景:常用于查找某父级选择器中的子元素
-
选择器
-
n的注意点:
-
n为:0、1、2、3、4、5、6、…… -
通过n可以组成常见公式
nth-of-type结构伪类选择器
-
区别:
- :nth-child → 直接在所有孩子中数个数
- :nth-of-type → 先通过该 类型 找到符合的一堆子元素,然后在这一堆子元素中数个数
定位
目标:能够说出 定位 的常见应用场景,并且能够说出 不同定位方式 的特点
使用定位的步骤
-
设置定位方式
-
属性名:position -
常见属性值:
定位方式 | 属性值 |
---|
静态定位 | static | 相对定位 | relative | 绝对定位 | absoulte | 固定定位 | fixed |
-
设置偏移值
静态定位
-
介绍:静态定位是默认值,就是之前认识的标准流 -
代码: position: static -
注意点:
- 静态定位就是之前标准流,不能通过方位属性进行移动
- 之后说的定位不包括静态定位,一般特指后几种:相对、绝对、固定
相对定位
-
介绍:自恋型定位,相对于自己之前的位置进行移动 -
代码:position: relative -
特点:
- 需要配合方位属性实现移动
- 相对于自己原来位置进行移动
- 在页面中占位置 → 没有脱标
-
应用场景:
- 配合绝对定位组 CP(子绝父相)
- 用于小范围的移动
绝对定位
绝对定位到底相对于谁进行偏移
-
绝对定位相对于谁移动?
- 祖先元素中没有定位 → 默认相对于浏览器进行移动
- 祖先元素中有定位 → 相对于 最近的 有定位 的祖先元素进行移动
子绝父相介绍
-
场景:让子元素相对于父元素进行自由移动 -
含义:
-
子绝父相好处:
子绝父绝特殊场景
子绝父相水平居中案例-解决方法
-
子绝父相 -
先让子盒子往右移动父盒子的一半
-
再让子盒子往左移动自己的一半
子绝父相水平垂直都居中案例-解决方法
-
子绝父相 -
让子盒子往右走大盒子一半
-
让子盒子往下走大盒子一半
-
让子盒子往左+往上走自己的一半
transform:translate(-50%,-50%)
固定定位
-
介绍:死心眼型定位,相对于浏览器进行定位移动 -
代码:position:fixed -
特点:
- 需要配合方位属性实现移动
- 相对于浏览器可视区域进行移动
- 在页面中不占位置 → 已经脱标
-
应用场景:
- 让盒子固定在屏幕中的某个位置
元素层级问题
-
不同布局方式元素的层级关系:
-
不同定位之间的层级关系:
- 相对、绝对、固定默认层级相同
- 此时 HTML 中写在下面的元素层级更高,会覆盖上面的元素
更改定位元素的层级
-
场景:改变定位元素的层级 -
属性名:z-index -
属性值:数字
垂直对齐方式
认识基线(了解)
文字对齐问题
- 场景:解决行内/行内块元素垂直对齐问题
- 问题:当图片和文字在一行中显示时,其实底部不是对齐的
垂直对齐方式属性
作者:澈心阿 链接:https://juejin.cn/post/7037466326704586782 来源:稀土掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
|