CSS Cascading Style Sheets 层叠样式表
能够对网页中的元素位置的排版进行像素级精确控制,实现美化页面的效果。
语法
选择器 {
声明
}
引入方式
行内样式表
修改标签的 style 属性
想要生活过的去, 头上总得带点绿
内部样式表
使用 style 标签嵌入 html 中
外部样式表
创建一个 css 文件
使用 link 标签引入 css
选择器
标签选择器
能选出所有相同标签
不能差异化选择
body {
}
类选择器
能选出一个或多个标签
根据需求选择,最灵活,最常用
.类名 {
}
id 选择器
能选出一个标签
一个 id 在一个 HTML 文件中,只能出现一次
#id名 {
}
通配符选择器
选择出所有标签
特殊情况下使用
* {
}
后代选择器
元素 1 和 元素 2 要使用空格分割
元素 1 是父级,元素 2 是子级
只选择元素 2 ,不影响元素 1
元素1 元素2 {
样式声明
}
子类选择器
使用大于号分割
只选择儿子, 无法选择孙子元素
元素1>元素2 {
样式声明
}
并集选择器
通过 逗号 分割等多个元素
表示同时选中元素 1 和 元素 2
元素1,
元素2 {
样式声明
}
伪类选择器
链接伪类选择器
a:link 选择未被访问过的链接
a:visited 选择已经被访问过的链接
a:hover 选择鼠标指针悬停上的链接
a:active 选择活动链接(鼠标按下了但是未弹起)
force 伪类选择器
input:focus 选取获取焦点的 input 表单元素
属性
设置字体
font-family: '字体名字';
大小
font-size: px;
粗细
font-weight: 400;
font-weight: normal;
文字样式
/* 设置倾斜 */
font-style: italic;
/* 取消倾斜 */
font-style: normal;
文本颜色
color: red; 颜色
color: #ff0000; 十六进制形式
color: rgb(255, 0, 0); RGB 方式
文本对齐
控制文字水平方向的对齐
text-align: center;
文本装饰
text-decoration: ;
文本缩进
text-indent: ;
行高
行高指的是上下文本行之间的基线距离
line-height: ;
背景颜色
background-color: ;
背景图片
background-image: url(路径);
背景平铺
background-repeat: repeat;
背景位置
background-position: x y;
背景尺寸
background-size: px px; 宽度 高度
background-size: %; 相对于父级元素的百分比
background-size: cover; 整张背景图片覆盖盒子
background-size: contain; 使盒子的背景图片的尺寸最大化
border-radius: px;
圆形
div {
width: 200px;
height: 200px;
border: 2px solid green;
border-radius: 100px;
/* 或者用 50% 表示宽度的一半 */
border-radius: 50%;
}
胶囊
div {
width: 200px;
height: 100px;
border: 2px solid green;
border-radius: 50px;
}
显示模式
显示模式有很多种,最主要的就是块级元素的显示模式与行内元素的显示模式
使用 display 属性可以修改元素的显示模式
display: block 改成块级元素 [常用]
display: inline 改成行内元素 [很少用]
display: inline-block 改成行内块元素
盒模型
每一个 HTML 元素就相当于是一个盒子
这个盒子这四个部分构成
属性
div {
width: 500px;
height: 250px;
border-width: 10px;
border-style: solid;
border-color: green;
}
简写
/* 无顺序要求 */
/* 一般 */
/* 粗细 样式 颜色 */
border: 1px solid red;
加上边框会使盒子变大
当我们在网页中修改边框的时候
很可能会影响到网页中其他元素的布局
将 box-sizing 的值修改为 border-box 即可
* {
box-sizing: border-box;
}
内容与边框间的空间
padding-top
padding-bottom
padding-left
padding-right
padding: 5px; 表示四个方向都是 5px
padding: 5px 10px; 表示上下内边距 5px, 左右内边距为 10px
padding: 5px 10px 20px; 表示上边距 5px, 左右内边距为 10px, 下内边距为 20px
padding: 5px 10px 20px 30px; 表示 上5px, 右10px, 下20px, 左30px (顺时针)
两个盒子边框间的距离
已最大的外边距为准
margin-top
margin-bottom
margin-left
margin-right
margin: 10px; // 四个方向都设置
margin: 10px 20px; // 上下为 10, 左右 20
margin: 10px 20px 30px; // 上 10, 左右 20, 下 30
margin: 10px 20px 30px 40px; // 上 10, 右 20, 下 30, 左 40
/* 第一种写法 */
margin-left: auto;
margin-right: auto;
/* 第二种写法 */
margin: auto;
/* 第三种写法 */
margin: 0 auto;
垂直居中, 不能使用 "上下 margin 为 auto " 的方式
部分浏览器会自己给我们的盒子加上内外边距
为了我们写出来的网页能适配各种各样的浏览器
我们在开始写网页的时候需将浏览器给的默认样式先去除
* {
marign: 0;
padding: 0;
}
弹性布局
display: flex;
一般默认
主轴为 横向
侧轴为 纵向
内容对齐
决定 flex item 在主轴方向上的排列方式
justify-content: | 效果 |
flex-start | 左对齐 |
flex-end | 右对齐 |
center | 居中对齐 |
space-between | 居中对齐 每个 item 间有空隙 |
space-around | 居中对齐 每个 item 间有空隙 item 与 container 间也有空隙 |
校准元素
决定 flex item 在侧轴方向上的排列方式
align-items: | 效果 |
flex-start | 上对齐 |
flex-end | 下对齐 |
center | 居中对齐 |