层叠样式表 (Cascading Style Sheets,缩写为 CSS),是一种 样式表 语言,用来描述 HTML 文档的呈现(美化内容)。
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
style>
head>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<link rel="stylesheet" href="./css/引入样式.css">
head>
<div style="color: red; font-size:20px;">这是 div 标签div>
作用:查找标签,设置样式
p {
color: red;
}
语法:
标签名 {
样式
}
.red {
color: red;
}
语法:
类名 {
样式
}
#id{
color: red;
}
语法:
#id名 {
样式
}
* {
color: red;
}
由两个或多个基础选择器,通过不同的方式组合而成。
作用:更准确、更高效的选择目标元素(标签)。
语法:父选择器 子选择器 { CSS 属性},父子选择器之间用空格隔开。
div span {
color: red;
}
语法:父选择器 > 子选择器 { CSS 属性},父子选择器之间用 > 隔开。
div > span {
color: red;
}
语法:选择器1, 选择器2, …, 选择器N { CSS 属性},选择器之间用 , 隔开。
div,
p,
span {
color: red;
}
语法:选择器1选择器2 { CSS 属性},选择器之间连写,没有任何符号。
p.box {
color: red;
}
语法:选择器:hover { CSS 属性 }
a:hover {
color: red;
}
选择器 | 说明 |
---|---|
E:first-child | 寻找 第一个E元素 |
E:last-child | 寻找 最后一个E元素 |
E:nth-child(N) | 寻找 第N个E元素(索引从1开始) |
语法:符合选择器:结构伪类选择器 { CSS 属性 }
li:first-child {
background-color: green;
}
nth-child(N)选择器中的N可以根据公式查询 n取值从0 开始
偶数2n 奇数2n - 1 5的倍数5n 5以后的标签n + 5 五以前5 - n
语法:符合选择器:伪元素选择器 { CSS 属性 }
div::before {
content: "before 伪元素";
}
div::after {
content: "after 伪元素";
}
p {
font-size: 16px;
}
p {
/* 不加粗 */
font-weight: 400;
/* 加粗 */
font-weight: 700;
}
p {
/* 不加粗 */
font-style: normal ;
/* 倾斜 */
font-style: italic;
}
p {
line-height: 100px;
}
p {
font-family: Microsoft YaHei,Heiti SC;
}
font-family属性值可以书写多个字体名,各个字体名用逗号隔开,执行顺序是从左向右依次查找
div {
font: italic 700 30px/2 楷体;
}
p{
text-indent: 2em;
}
p{
text-align: center;
}
p{
text-decoration: none;
}
p{
color: red;
}
body{
background-color: red;
}
div{
background-image: url(./images/1.png);
}
背景图默认有平铺(复制)效果。
div{
background-repeat: no-repeat;
}
div{
background-position: center bottom;
background-position: 50px -100px;
background-position: 50px center;
}
div{
background-size: cover;
background-size: contain;
}
div{
background-attachment: fixed;
}
div{
background: pink url(./images/1.png) no-repeat right center/cover;
}
标签(元素)的显示方式。
作用:布局网页的时候,根据标签的显示模式选择合适的标签摆放内容
属性名:display
属性值
span{
display: block;
}
盒子模型重要组成部分:
属性值 | 样式 |
---|---|
solid | 实线 |
dashed | 虚线 |
dotted | 点线 |
div{
border: 5px solid brown;
}
以上默认添加四个方向的边框
div {
border-top: 2px solid red;
border-right: 3px dashed green;
border-bottom: 4px dotted blue;
border-left: 5px solid orange;
}
作用:设置 内容 与 盒子边缘 之间的距离。
属性名:padding / padding-方位名词
作用:设置 内容 与 盒子边缘 之间的距离。
属性名:padding / padding-方位名词
属性值:数字+px
div {
padding-top: 10px;
padding-right: 20px;
padding-bottom: 40px;
padding-left: 80px;
}
padding 多值写法
多值写法 | 示例 | 含义 |
---|---|---|
一个值 | padding: 10px | 四个方向内边距均为10px |
两个值 | pading: 10px 80px | 上下:10px 左右80px |
三个值 | pading: 10px 40px 80px | 上:10px 左右:40px 下:80px |
四个值 | pading: 10px 20px 40px 80px | 上:10px 右:20px 下 :40px 左: 80px |
记忆技巧:从上开始顺时针赋值,当前方向没有数值则与对面取值相同。
作用:拉开两个盒子之间的距离
属性名:margin
属性值:与 padding 属性值写法、含义相同
div {
/* 版心居中 */
margin: 0 auto;
}
作用:控制溢出元素的内容的显示方式。
属性名:overflow
属性值:
作用:设置元素的外边框为圆角。
属性名:border-radius
属性值:数字+px / 百分比(圆角半径)
img {
border-radius: 100px;
border-radius: 50%;
}
作用:给元素设置阴影效果
属性名:box-shadow
属性值:X 轴偏移量 Y 轴偏移量 模糊半径 扩散半径 颜色 内外阴影
div {
box-shadow: 2px 5px 10px 0 rgba(0, 0, 0, 0.5) inset;
}
合并现象
场景:垂直排列的兄弟元素,上下 margin 会合并
现象:取两个 margin 中的较大值生效
外边距塌陷(重叠)问题
场景:父子级的标签,子级的添加 上外边距 会产生塌陷问题
现象:导致父级一起向下移动
解决办法
行内元素 – 内外边距问题
场景:行内元素添加 margin 和 padding,无法改变元素垂直位置
解决方法:给行内元素添加 line-height 可以改变垂直位置
span {
/* margin 和 padding 属性,无法改变垂直位置 */
margin: 50px;
padding: 20px;
/* 行高可以改变垂直位置 */
line-height: 100px;
}
标准流也叫文档流,指的是标签在页面中默认的排布规则
作用:让块元素水平排列。
属性名:float
属性值
Flex 布局也叫弹性布局,是浏览器提倡的布局模型,非常适合结构化布局,提供了强大的空间分布和对齐能力。Flex 模型不会产生浮动布局中脱标现象,布局网页更简单、更灵活。
组成部分:
描述 | 属性 |
---|---|
创建 flex 容器 | display: flex |
主轴对齐方式 | justify-content |
侧轴对齐方式 | align-items |
弹性盒子换行 | flex-wrap |
某个弹性盒子侧轴对齐方式 | align-self |
修改主轴方向 | flex-direction |
弹性伸缩比 | flex |
行对齐方式 | align-content |
主轴对齐方式
属性名:justify-content
属性值
侧轴对齐方式
属性名: align-items
属性值
某个弹性盒子侧轴对齐方式
属性名:align-self
属性值:
弹性盒子换行
属性名:flex-wrap
属性值:
修改主轴方向
属性名:flex-direction
属性值:
弹性伸缩比
属性名:flex
属性值:整数数字,表示占用父级剩余尺寸的份数
行对齐方式
属性名:align-content
属性值:
对单行弹性盒子模型无效
.clearfix::after {
content: "";
display: block;
clear: both;
}
.clearfix::before,
.clearfix::after {
content: "";
display: table;
}
.clearfix::after {
clear: both;
}
作用:灵活的改变盒子在网页中的位置
属性:position
属性值
属性名:vertical-align
属性值
作用:可以为一个元素在不同状态之间切换的时候添加过渡效果
属性名:transition(复合属性)
属性值:过渡的属性 花费时间 (s)
img {
width: 200px;
height: 200px;
transition: all 1s;
}
img:hover {
width: 500px;
height: 500px;
}
作用:设置整个元素的透明度(包含背景和内容)
属性名:opacity
属性值:0 – 1
作用:鼠标悬停在元素上时指针显示样式
属性名:cursor