首页 > 其他分享 >CSS基础知识

CSS基础知识

时间:2022-10-16 19:35:27浏览次数:49  
标签:样式 标签 元素 基础知识 设置 选择器 CSS 属性

1、CSS简介
1.1、CSS是什么?
CSS指的是层叠样式表(Cascading Style Sheets)
CSS描述了如何在屏幕、纸张或其他媒体上显示HTML元素
CSS节省了大量工作。它可以同时控制多张网页布局。
1.2、CSS引入方式
引入方式 书写位置 作用范围 使用场景
内嵌式 CSS写在style标签中。style标签通常放在head中 当前页面 小案例
外联式 CSS写在单独的CSS文件中,通过link标签引入 多个页面 项目中
行内式 CSS写在标签的style属性中 当前标签 配合js使用
2、CSS选择器
2.1、CSS基础选择器
2.1.1 ID选择器
结构:#id属性值 { css属性名: 属性值; }
作用:通过id属性值,找到页面中带有这个id属性值的标签,设置样式
注意点:

所有标签上都有id属性
id属性值类似于身份证号码,在一个页面中是唯一的,不可重复的
一个标签上只能有一个id属性值
一个id选择器只能选中一个标签
2.1.2 类选择器
结构:.class { css属性名: 属性值; }
作用:通过类名,找到页面中所有带有这个类名的标签,设置样式
注意点:

所有标签上都有class属性,class属性的属性值成为类名
类名可以由数字、字母、下划线、中划线组成,但不能以数字或中划线开头
一个标签可以同时有多个类名,类名之前以空格隔开
类名可以重复,一个类选择器可以同时选中多个标签
2.1.3 通配符选择器
结构:* { css属性名: 属性值; }
作用:找到页面中所有的标签,设置样式
注意点:默认去除浏览器自带属性margin和padding

2.1.4 标签选择器
结构:标签名 { css属性名: 属性值; }
作用:通过标签名,找到页面中所有这类标签,设置样式
注意点:

标签选择器选择的是一类标签,而不是单独某一个
标签选择器无论嵌套关系有多深,都能找到对应的标签
2.1.5 属性选择器
属性 说明
[attribute] 选择多有带 attribute 属性的元素
[attribute=value] 选择 attribute=value的所有元素
[attribute~=value] 选择 attribute属性包含单词 value的所有元素
[attribute^=value] 选择其attribute属性值以value开头的所有元素
[attribute$=value] 选择其attribute属性值以 value结束的所有元素
[attribute*=value] 选择其attribute属性中包含value子串的每个元素
结构:标签名 { css属性名: 属性值; }
作用:通过标签名,找到页面中所有这类标签,设置样式
注意点:

标签选择器选择的是一类标签,而不是单独某一个
标签选择器无论嵌套关系有多深,都能找到对应的标签
2.2、组合选择器
选择器 作用 格式 示例
后代选择器 找后代 选择器之间通过空格分隔 .father .son { css }
子代选择器 找儿子 选择器之间通过 >分隔 .father > .son { css }
并集选择器 找到多类元素 选择器之间通过,分隔 div,p,span { css }
交集选择器 找同时满足多个选择器的元素 选择器之间紧挨着 p.red { css }
兄弟选择器 匹配p标签后的所有span元素 选择器之间通过 ~ 分隔 p ~ span
相邻选择器 匹配p标签的第一个span元素 选择器之间通过 + 分隔 p + span
2.3、伪类选择器
伪类:将特殊的效果添加到特定的选择器上,不会产生新元素

选择器 功能描述
E:first-child 作为父元素的第一个子元素的元素E
E:last-child 作为父元素的最后一个子元素的元素E
E:nth-child(n) 作为父元素的第n个子元素E
E:nth-last-child(n) 选择父元素的倒数第n个子元素
E:first-of-type 选择父元素内具有指定类型的第一个E元素
E:last-of-type 选择父元素内具有指定类型的最后一个元素
E:nth-of-type(n) 选择父元素内具有指定类型的第n个E元素
E:nth-last-of-type 选择父元素内具有指定类型的倒数第n个E元素
E:root 选择匹配元素E所在文档的根元素,也就是html
E:only-child 选择父元素只包含一个子元素,且该子元素匹配E元素
E:only-of-type 选择父元素只包含一个同类型的子元素,且该子元素匹配E元素
E:empty 选择没有子元素的元素,且该元素也不包含任何文本节点
E:link 选择所有未被访问的链接
E:active 选择活动状态的a链接元素
E:visited 选择已经访问过的元素
E:hover 选择鼠标悬停状态的元素
E:checked 选择<input type="checkbox" checked>的元素
2.4、伪元素选择器
伪元素:在内容元素的前后插入额外的元素或样式,这些元素不在html文档中生成,只在外部可见。

选择器 功能描述
::before 创建一个伪元素放在选中元素前
::after 创建一个伪元素放在选中元素后
::first-letter 选各种元素第一行第一个字母
::first-line 选中元素的第一行
::selection 选中鼠标点击拖动选中的高亮部分
2.5、伪类和伪元素区别
伪元素只能在选择器中出现一次,而且只在末尾出现
伪类只设置样式,不会创建新元素。而伪元素会创建新元素
伪类的效果可以通过添加实际的类来实现;伪元素也可以通过添加元素来实现
3、字体和文本样式
3.1、字体样式
属性名 样式 属性值
font-size 字体大小 数组+px
font-weight 字体粗细 正常:normal或数字400; 加粗:bold或数字700
font-style 是否倾斜 正常(默认值):normal; 倾斜:italic
font-family 字体系列 sans-serif(无衬线字体); serif(衬线字体); monospace(等宽字体)
font 字体连写 style weight size family
3.2、文本样式
属性名 样式 属性值
text-indent 文本缩进 数字+px; 数字+em(推荐:1em = 当前标签的font-size的大小)
text-align 对齐方式 left: 左对齐; center: 居中对齐; right: 右对齐
text-decoration 文本修饰 underline: 下划线; line-through: 删除线; overline: 上划线; none: 无装饰线
line-height 文本行高 数字+px; 倍数(当前标签font-size的倍数)
4、背景相关属性
4.1、背景颜色
属性名:background-color

属性值:

颜色取值 示例
关键字 red、green、yellow等
rgb表示法 rgb(255,255,255)
rgba表示法 rgba(255,255,255,1)
十六进制 #ffffff;
注意点:

背景颜色默认值是透明的:rgba(0,0,0,0)或transparent
背景颜色不会影响盒子大小,一般在布局中使用,方便看清盒子大小和位置
4.2、背景图片
属性名:background-image

属性值:background-image: url(‘图片的路径’)

注意点:

背景图片默认实在水平和垂直方向平铺的
背景图片仅仅是指给盒子起到装饰效果,类似于背景不能撑开盒子
4.3、背景平铺
属性名:background-repeat

属性值:

取值 效果
repeat (默认值)水平和垂直方向都平铺
no-repeat 不平铺
repeat-x 沿水平方向(x轴)平铺
repeat-y 沿垂直方向(y轴)平铺
4.4、背景位置
属性名:background-position

属性值:background-position: 水平方向位置 垂直方向位置

4.5、img标签和背景图片的区别
img标签是一个标签,不设置宽高默认会以原来尺寸显示
背景图片只是装饰的CSS样式,不能撑开元素的宽高
5、元素的显示模式
5.1、块级元素
属性:display: block
特点:

独占一行(一行只能显示一个)
宽度默认是父元素的宽度,高度默认由内容撑开
可以设置宽高
代表标签:

div、p、h系列、ul、li、dl、dt、dd、form、header、nav、footer等
5.2、行内元素
属性:display: inline
特点:

一行可以显示多个
宽度和高度默认由内容撑开
不可以设置宽高
代表标签:

a、span、b、u、i、s、strong、ins、em、del等
5.3、行内块元素
属性:display: inline-block
特点:

一行可以显示多个
可以设置宽高
代表标签:

input、textarea、button、select等
特殊情况:img标签有行内块元素特点,但在谷歌浏览器中显示的是inline
6、CSS三大特性
6.1、继承性
特点:子元素有默认继承父元素样式的特点(子承父业)

继承属性:

color
font-style、font-weight、font-size、font-family
text-indent、text-align
line-height
应用场景:

可以直接给ul设置list-style:none属性,从而去除列表默认的小圆点样式
直接给body标签设置统一的font-size,从而统一不同浏览器默认文字大小
继承失效情况:被浏览器默认样式给覆盖了

6.2、层叠性
特性:

给同一个标签设置不同的样式 -> 此时样式会层叠叠加 -> 会共同作用在标签上
给同一个标签设置相同的样式 -> 此时样式会层叠覆盖 -> 最终写在最后的样式会生效
当样式冲突时,只有当选择器优先级相同时,才能通过层叠性判断
6.3、优先级
选择器 示例 权重值
!important background-color: #fff !important; 正无穷
内联选择器 <span style='color: #333;'>样式作用元素</span> 1000
ID选择器 #id 100
类选择器、属性选择器、伪类选择器 .class 10
标签选择器、伪元素选择器 div、p 1
通配符选择器 * 0
继承属性 <div style='color:#333;'><span>样式作用元素</span></div> -1
说明

权重值是256进制的
同一行的选择器权重值相加,权重值高的样式生效,如果权重值相同,后面写的覆盖前面
不是同一行的直接找按权重值相加计算,权重值高的样式生效
7、盒子模型
7.1、盒子模型介绍
盒子的概念:

页面中的每一个标签都可以看做是一个盒子;通过盒子的视角,可以更方便的进行布局
浏览器在渲染网页时会将网页中的元素看做是一个个的矩形区域,我们也形象称之为盒子
盒子模型:CSS中规定盒子分别由:内容区域(content)、内边距区域(padding)、边框区域(border)、外边距区域(margin)构成

7.1.1 内容的宽度和高度
作用:利用 width 和 height 属性默认设置是盒子 内容区域 的大小

属性:width / height

常见取值:数字 + px

7.1.2 边框 (border)
作用:设置边框粗细、边框样式、边框颜色效果

属性:

作用 属性名 属性值
边框粗细 border-width 数字 + px
边框样式 border-style 实线 solid、虚线 dashed、点线 dotted
边框颜色 border-color 颜色取值
边框连写形式:边框粗细 边框样式 边框颜色

例如:border: 1px solid #333;

单方向设置:border-方位名词: 1px solid red;

7.1.3 内边距 (padding)
作用:设置边框与内容区域之间的距离

属性名:padding

常见取值:

取值 示例 含义
一个值 padding: 10px; 上下左右都设置为10px
两个值 padding: 10px 20px; 上下设置为10px、左右设置为20px
三个值 padding: 10px 20px 30px 上设置为10px、左右设置为20px、下设置为30px
四个值 padding: 10px 20px 30px 40px 上设置为10px、右设置为20px、下设置为30px、左设置为40px
单方向设置:padding-方位名词: 10px;

7.1.4 外边距 (margin)
作用:设置边框以外,盒子与盒子之间的距离

属性名:margin

常见取值:

取值 示例 含义
一个值 padding: 10px; 上下左右都设置为10px
两个值 padding: 10px 20px; 上下设置为10px、左右设置为20px
三个值 padding: 10px 20px 30px 上设置为10px、左右设置为20px、下设置为30px
四个值 padding: 10px 20px 30px 40px 上设置为10px、右设置为20px、下设置为30px、左设置为40px
单方向设置:margin-方位名词: 10px;

7.1.5 盒子实际大小计算公式
盒子宽度 = 左边框 + 左padding + 内容宽度 + 右padding + 右边框
盒子高度 = 上边框 + 上padding + 内容宽度 + 下padding + 下边框
问题:当盒子被border和padding撑大后,如何解决?

手动内减:手动计算多余大小,在内容中减去
自动内减:给盒子设置属性 box-sizing: border-box;
7.1.6 相邻盒子之间margin计算规则
水平方向的盒子,两者距离为margin之和
垂直方向的盒子,两者距离为margin的最大值
7.1.7 塌陷现象
场景:互相嵌套和块级元素,子元素的magin-top会作用在父元素上

结果:导致父元素一起往下移动,引起父元素塌陷

解决方式:

给父元素设置border-top或者padding-top(分割父子元素的margin-top)
给父元素设置overflow: hidden;
转换成行内块级元素 display: inline-block;
设置浮动 float: left;
添加伪类
常用清除浮动和父元素塌陷伪类:

.clearfix::before,
.clearfix::after {
content: "";
display: table;
}
.clearfix::after {
clear: both;
}
8、 标准流
标准流:又称文档流,是浏览器在渲染元素时默认采用的一套排版规则,规定了该以何种方式排列元素

排版规则:

块级元素:从上到下,垂直布局,独占一行
行内元素 或 行内块元素:从左到右,水平布局,空间不够自动换行
9、 浮动
9.1、浮动的特点
浮动元素会脱离标准流(简称:脱标),在标准流中不占位置
浮动元素比标准流高半个级别,可以覆盖标准流中的元素
浮动找浮动,下一个浮动元素会在上一个浮动元素后面左右浮动
浮动元素会受到上面块级元素边界的影响
浮动元素有特殊的显示效果
一行可以显示多个
可以设置宽高
注意点:浮动元素不能通过父元素设置text-align:center;或本身设置margin: 0 auto;让浮动元素本身水平居中

9.2、浮动的作用
图文环绕
网页布局,让垂直布局的盒子变成水平布局

标签:样式,标签,元素,基础知识,设置,选择器,CSS,属性
From: https://www.cnblogs.com/xuboz/p/16796855.html

相关文章