- html 网页的结构
- 标题标签 h1-h6
- 段落标签 p
- 换行标签 br
- 《列表标签》
- 《超链接》
- 《路径》
- 《图片》
- 《块元素》
- 《表格》
- css 网页的表现
- 样式表
- 选择符
- border’边框
- 类选择符
- 包含选择符 后代选择符
- 群组选择符
- 通配符 *
- 伪类选择符
- 选择器权重
- 背景属性
- 文本文字
- 继承的补充
- PC端网页布局
- 列表属性
- 三角形
- 浮动
- 盒模型
- 《表单》
- 《省略号》
- 《布局》
- 《元素分类》
- 《元素转换》
- 对齐
- 《去除图片之间的间隔》
- 《置换元素》
- 定位
- 《元素的堆叠顺序》
- 《元素水平居中》
- 《透明度》
- 《锚点》
- 自适应
- 《清除浮动》
- 《伪元素》
- 《计算函数》
- 《图片整合》
- BFC
- BFC的布局规则
- 阴影
- 《圆角》
- 《过度》
- 2D转换
- 3D转换
- 动画
- 多列
- 语义化标签
- 多媒体
- html5表单
- 线性渐变
- 重复线性渐变
- 图片边框
- 结构伪类选择符
- 兄弟选择符
- 属性选择器
- css3中width新增了属性值min-content、max-content、fit-content、fit-available
- 伪类选择符
- FLEX布局弹性和布局
- 怪异盒模型
- 媒体查询
- grid 布局 网格布局 具有行和列的概念
html 网页的结构
标签 <标签名></标签名>
分类 双标签 <标签名>内容</标签名>
单标签 <标签名> 或者 <标签名 />
文本类型标签
标题标签 h1-h6
- 双标签
2. 独占一行
3. 从上到下越来越小,重要程度越来越低
4. 有间隙
h1 只能有一个 seo 优化
段落标签 p
- 双标签
2. 独占一行
3. 有间隙
4. 不可以主动换行
换行标签 br
- 单标签
加粗 b strong
1. 双标签
2. 不独占一行
3. 没有间隙
推荐strong 语义化 为了语气而强调
倾斜 i em
1. 双标签
2. 不独占一行
3. 没有间隙
推荐em 语义化
上标 sup
下标 sub
场景 公式 下标 引用
转义 1. 空格
2. < <
3. > >
4. ©
水平线 hr
《列表标签》
有序列表
ol li
start
type
2. 无序列表
ul li
type
3. 自定义列表
dl dt dd《超链接》
a
- href 跳转链接
- title 超链接的提示信息
- target 跳转页面的打开方式
- _self 当前页面打开 默认值
- _blank 跳转到新窗口打开
《路径》
- 上级路径 ../
2. 同级路径 ./ 或者直接写
3. 下级 先找到同级 再找到下级《图片》
img
src 图片地址 (必须 可以写空)
alt 图片丢失的提示文字 盲人的提示文字 seo (必须 可以写空)
title 图片的提示信息
《块元素》
div
1. 双标签
2. 独占一行
span 文本块
1. 双标签
2. 不独占一行
《表格》
table tr td
tr 每一行
td 单元格
width 表格的宽度
height 表格的高度
border 边框的宽度
cellspacing 单元格和单元格之间的距离
cellpadding 单元格和内容的距离
align 水平对齐方式
left 靠左 默认值
center 居中
right 靠右
valign 垂直对齐方式
top 靠上对齐
middle 居中 默认值
bottom 靠下对
table 表格 colspan 跨列
。 rowspan 跨行
跨行合并行
跨列合并列
合并单元格 1. 属性要加在左上角的元素<br /> 2. 属性值表示要合并的行数或列数<br /> 3. 删除合并的单元格
《表格的补充》
- border-spacing 设置相邻单元格的边框间的距离
必须给table 加
合并相邻单元格间距
2. border-collapse 决定表格的边框是分开的还是合并的
collapce 合并
separate 不合并
必须给table加
表格有collapse border-spacing 会无效
3. empty-cells 是否显示表格中的空单元格
hide 隐藏
show 显示5
table-layout 表格布局算法
auto 默认 表格宽度有内容物决定
fixed 宽度和内容无关 固定宽度 渲染速度会更快
1. caption 表格标题
必须是table的第一格元素
属性 caption-side:top/bottom/left/right
只有火狐浏览器(firefox)看看而已用left/right
2. 《th表头标题》
自动加粗居中效果
3.数据行分组
thead表头
tbody表体
tfoot 表尾
4. 数据列分组
colgroup span=’value’
写在table最上面
结合rules属性:规定内测边框的那个部分是可见的<br /> rules=‘’<br /> groups 位于行组和列组的线条<br /> rows 每行之间的分隔线<br /> cols 每列之间的分隔线<br /> none 没有<br /> all 位于行和列之间的线条<br />colgroup:nth-of-type(num)
css 网页的表现
写法 选择器 声明
选择器: 表示选中的元素
声明 : 给元素添加的样式
{
属性: 属性值;
属性1: 属性值1;
}
1. 属性值结束加分号
2. 所有的符号要是英文
3. 属性和属性值中间冒号 再写空格
样式表
内部样式表
html 中 写style标签 写在head标签的最下面
style里面不允许写标签, 只允许写css
先有结构(html),再有表现(css)
2. 外部样式表
写在css文件中,再引入到html文件中
引入方式: 1.link href属性引入
2. style标签中用@import url();引入
@import url(); url()后面必须有分号
@import 和 url中间有空格
link 和 @import 区别
1. link 是xhtml 来的, @import 是css提供的
2. link 是下载的时候加载, @import 是下载后加载
3. link 可以被js识别, @import 不可以
3. 内联样式表
html 中 用style属性写在标签中, 属性值就是css样式表权重
内联样式表最大
内部样式表和外部样式表 谁写在下面.谁权重高
同一个元素如果有多个选择器选中 a. 属性相同 谁权重高选谁
b. 属性不同, 叠加
选择符
- 元素选择符 标签 div p span
2. 类选择符 html 中 用属性class绑定名字 css中用 .名字
eg .p 类选择符 p 元素选择符
.box 类选择符 box 元素选择符
命名: 1. 英文 数字 下划线 连字符
英文字母开头
不允许写中文
2. 见名知意
3. 按照功能起名 或 按照结构起名
4. 起名方式 a. 驼峰命名 searchBox (小驼峰) SearchBox (大驼峰)
b. 连字符命名法 search-box
border’边框
**
宽度 width: value px
高度 height: value px
背景色 background: 1. 名字 2. 十六进制 3. rgb()
文本颜色 color: 1. 名字 2. 十六进制 3. rgb()
边框 border: 边框颜色 边框宽度 边框样式
边框颜色 border-color: 1. 名字 2. 十六进制 3. rgb()
文本颜色color(默认值)
边框宽度 border-width: value px <br /> 2.4px(默认值)<br /> 边框的样式 border-style: solid 实线<br /> dashed 虚线<br /> dotted 点线<br /> double 双实线<br /> none 没有 (默认值)<br /> 左边框 border-left: 边框颜色 边框宽度 边框样式<br /> 右边框 border-right: 边框颜色 边框宽度 边框样式<br /> 上边框 border-top: 边框颜色 边框宽度 边框样式<br /> 下边框 border-bottom: 边框颜色 边框宽度 边框样式
左边框宽度 border-left-width: value px<br /> 左边框颜色 border-left-color: 1. 名字 2. 十六进制 3. rgb()<br /> 左边框样式 border-left-style: solid 实线<br /> dashed 虚线<br /> dotted 点线<br /> double 双实线<br /> none 没有 (默认值)<br /> 字体大小 font-size: value px
类选择符
可以一对多 可以一对一 可以多对一
一个标签写多个class 名字
标签名.class名字
id选择符 只能用一个 (js getElementByIdName
id 用在页面的外部结构
包含选择符 后代选择符
**
选择符1 选择符2 选择符3….{} 空格
选择符可以写class id 标签。。。
群组选择符
语法 选择符1,选择符2,选择符3{} 逗号,
选择符 可以写 class id 标签…
通配符 *
表示所有的元素 表示该样式适用所有网页元素<br />子代选择符<br /> 选择符1>选择符2>选择符3{}
伪类选择符
a:link {color: red;} / 未访问的链接状态 /
a:visited {color: green;} / 已访问的链接状态 /
a:hover {color: blue;} / 鼠标滑过状态 /
a:active {color: yellow;} / 鼠标按下去时的状态 /
如果 :link :visited :hover :active 组合使用 要按照顺序书写<br /> 爱恨原则 love-hate<br />input:focus{<br /> background: red;<br /> }
选择器权重
内联样式表最大 > id选择器 > (类)class选择器 > 元素选择器 伪类选择符 通配符* 继承来的样式
1000 0100 0010 0001 0010 0000 0000
权重一样 看书写顺序 谁在下谁优先
权重不一样 看权重大的
包含选择器的权重是每一级进行叠加<br /> 子代选择器的权重是每一级进行叠加
群组选择器的权重看自身
继承 继承来自父辈的样式 (有些样式可以继承 例如color) 权重为0
<!-- 颜色 计算机三原色 红绿蓝<br /> 1. 英文 词汇量不多 颜色描述不准确<br /> 2. 十六进制 #000000 前两位-红色 中间两位-绿色 最后两位-蓝色 <br /> 0 1 2 3 4 5 6 7 8 9 a b c d e f<br /> #ff0000<br /> #00ff00<br /> #0000ff<br /> #12ee33 #33aabb<br /> #ffffff<br /> #000000
3. rgb() rgb(r,g,b) rgb是0-255范围的整数<br /> 4. rgba() rgba(r,g,b,a) a是透明度 0-1的小数 0是透明 1是不透明
背景属性
background 背景 复合属性
**
背景颜色 background-color
背景图 background-image: url(‘’)
背景平铺 background-repeat: repeat 平铺(默认值)
no-repeat 不平铺
repeat-x 沿着x轴 水平方向平铺
repeat-y 沿着y轴 垂直方向平铺
背景定位
background-position: 水平 垂直
1. 水平方向: 数值 方位词
2. 垂直方向: 数值 方位词
方位词 left right bottom top center
1.都是方位词 <br /> 水平和垂直没有先后顺序<br /> 如果方位词有一个是center 可以省略center不写<br /> 2.都是数值 x(水平方向) y(垂直方向)<br /> 顺序不可以颠倒<br /> 3.数值 + 方位词 x(水平方向) y(垂直方向)<br /> 顺序不可以颠倒
背景图附着
background-attachment
属性值 1. scroll 滚动 默认值 背景图像会随着页面其余部分的滚动而移动
2. fixed 固定
背景属性简写
- 多个属性复合,属性值和属性值可以换位置,属性值和属性值之间有空格
background: background-color background-image background-repeat background-attachment background-position
背景图缩放
background-size:
属性值: 1. 数值 百分比 auto
width height
2. cover 按照背景图尺寸进行缩放,完全覆盖容器,可能会造成部分图片不展示
contain 自动调整比例,保证图片完整展示
多个背景图
background: 背景图1,背景图2,背景图3
background: url('图片1') repeat position, url('图片2') no-repeat position,url('图片3') no-repeat position
1. 前面的背景图会盖在后面的背景图上<br /> 2. 背景图和背景图之间有逗号<br /> 3. 为了避免背景色和背景图冲突,背景色要放在最后一组背景属性上
css3 新增背景属性
background-origin:规定背景图片的定位区域,规定background-position属性相对于什么位置来定位。
属性值:
padding-box:背景图像相对于内边距框来定位 默认
border-box:背景图像相对于边框盒来定位
content-box:背景图像相对于内容框来定位
background-clip:属性规定背景的绘制区域<br />属性值:<br />border-box:背景被裁剪到边框盒。 默认<br />padding-box:背景被裁剪到内边距框。<br />content-box:背景被裁剪到内容框。<br /> <br /> background-size: 水平 垂直 *****很重要
cover 两边都覆盖停止 成比例<br /> contain 遇到最短边停止 成比例
简写<br /> background: background-color background-image background-repeat background-position/background-size background-attachment
文本文字
文字属性
文字大小 font-size : 数值 单位(px pt em rem)
单位
px : 浏览器中默认字号16px 浏览器的最小字号12px
font-size 为0 看不见
pt : 印刷尺寸 16px==12pt
em : 相当于元素本身的字体大小的倍数
如果元素本身没有字号,那么参考父元素
如果改变元素自身字体大小,em单位的属性等比缩放
rem : 相当于根元素字体大小的倍数
2. 文字字体 font-family :
‘微软雅黑’ 默认字体
Arial 默认字体
中文 多个单词组成的字体 要加引号
多个字体的时候,如果前面的字体没有,向后找
3. 文字粗细 font-weight :
1. 单词 bold bolder normal(常规,默认值) lighter
2. 100 - 900 整百数 100-400 一般显示 500常规字体 600-900加粗字体
4. 文字倾斜 font-style
italic 倾斜的文字
oblique 样式倾斜
normal(常规,默认值)
5. 文字水平对齐方式
text-align :
1. left
2. center
3. right
4. justify 实现两端对齐文本效果 每一行最后一个字贴着最右边text-align 给文字用的,不能给独占一行的元素居中,但是可以给图片居中
不是独占一行的元素 使用text-align 是没有用的
垂直对齐方式
vertical-align : top 顶线对齐
bottom 底部对齐
middle 中线对齐
baseline 基线对齐
行高
line-height: 一行文字所占的高度
属性值 1. 具体值
百分比 元素自身的字体大小
2. 1/2/3/4.. 元素自身字体大小的倍数
应用 垂直居中 line-height 设置为容器高度
文本修饰
text-decoration
属性 underline 下划线
line-through 删除线
overline 上划线
none 没有(默认)
文本缩进
**
text-indent
1. 具体数字 + px
2. 具体数字 + em
text-indent 可以写负数
文本大小写
text-transform
属性
none 默认。定义带有小写字母和大写字母的标准的文本。
capitalize 文本中的每个单词以大写字母开头。
uppercase 定义仅有大写字母。
lowercase 定义无大写字母,仅有小写字母。
继承的补充
initial:默认值
inhorit:主动继承父元素的属性
unset:不设置
设置的属性:如果是一个可以继承的属性,等同与inherit
设置的属性:如果是一个不可以继承的属性,值等同于inltial
内联元素、块状元素可继承
:letter-spacing、word-spacing、line-height、color、font、 font-family、font-size、font-style、font-variant、font-weight、text-decoration、text-transform。
块状元素可继承:text-indent和text-align
列表元素可继承:list-style、list-style-type、list-style-position、list-style-image。
表格元素可继承:border-collapse border-spacing empty-cells
PC端网页布局
1,确定版心
2,网页模块划分
3,设置html,css文件夹
4,重置网页样式
列表属性
**
list-style-type 设置列表项标记的类型
none 无标记。
disc 默认。标记是实心圆。
circle 标记是空心圆。
square 标记是实心方块。
decimal 标记是数字。
decimal-leading-zero 0开头的数字标记。(01, 02, 03, 等)
lower-roman 小写罗马数字(i, ii, iii, iv, v, 等。)
upper-roman 大写罗马数字(I, II, III, IV, V, 等。)
lower-alpha 小写英文字母The marker is lower-alpha (a, b, c, d, e, 等。)
upper-alpha 大写英文字母The marker is upper-alpha (A, B, C, D, E, 等。)
lower-greek 小写希腊字母(alpha, beta, gamma, 等。)
lower-latin 小写拉丁字母(a, b, c, d, e, 等。)
upper-latin 大写拉丁字母(A, B, C, D, E, 等。)
list-style-position:定义列表符号的位置<br /> inside 列表项目标记放置在文本以内,且环绕文本根据标记对齐。<br /> outside 默认值。保持标记位于文本的左侧。列表项目标记放置在文本以外,且环绕文本不根据标记对齐。
list-style-image:设置图片作为列表符号;<br /> url 图片地址<br /> none 默认 不设置
简写 <br /> list-style:none;去掉列表符号
三角形
transparent 透明色
1. 容器高度宽度未0
2. 边框设置号
3.去掉多于边框的高度
浮动
让竖着的元素横着
float
left
right
none
1. 如果想让几个元素都横着排,这几给元素·都要要加浮动
2. 浮动元素 半脱离文档流
盒模型
padding
bottom
页面中元素的内容到边缘之间的距离
补白 填充
padding会撑大父元素
作用 改变父元素中子元素的的位置
如果不想撑大,需要在有padding的基础上减去padding的值
padding-访问(top/right/bottom/left):单边的填充
padding’没有颜色 background会填充到padding,border的位置
padding 不可以写负值
padding 是加给父元素
margin
不会改变元素大小
元素外边的区域 边框
用来改变元素和元素的位置关系
margin可以加负数 负数用来使元素重叠
margin给子元素加
margin问题
- 如果相邻上下俩个元素 上面有margin-bottom 下面有margin-top
如果同号 绝对值大的
如果异号 相加
2. 如果父元素里面的点一个元素有margin-top,会把父元素带下来
解决 父元素 overfloe: hidden
mqrgin
ayto :自动占据剩余空间
margin:0-auto 让元素水平居中
margin-方向(top/right/bottom/left):
标准的和模型
margin+border+padding+width
怪异盒模型
IE margin+width 怪异盒模型的width 包括 content-width padding-left padding-right border-left border-right
height content-height padding-top padding- bottom border-top border-bottom
怪异盒模型属性
box-sizing:content-box 标准盒模型
border-box 怪异盒模型
《表单》
获取用户数据
表单域 form 双标签
action 后端的一个接口 发送数据
name 表单标识,名字
js找到对应的表单
method 将数据发送给后端的方式 共有两种方法:POST 方法和 GET 方法
表单控件
输入框 下拉框 单选 多选 按钮
提交按钮
默认的提交功能
value 按钮的文字
重置按钮
value 按钮的文字
单选
name 同一组单选框 用一个name
disabled 禁用
checked 选中
value
多选
下拉框
selecyed 选中的值
value 传递给后端的值
name 同一组单选框 用一个name
disabled 禁用
文本框
普通按钮
get post 区别
1 get相对不安全 数据明文显示在网址上
2. get 传输数据有大小限制,post没有
3. 从语法上来说 get原来获取数据post发送数据
《表单补充》
1.fieldset 表单字段集
可将表单内的相关元素分组,会在相关表单元素周围绘制边框,fieldset元素可以嵌套,在其内部可以在设置多个fieldset对象。
2.legend 字段集标题
legend元素为fieldset元素定义标题,legend元素必须是fieldset内的第一个元素
3. label 提示信息标签
标签为input元素定义标注(标记);此标签的for属性可把label绑定到另外一个元素上,将for属性设置为与该控件的id属性值相同。
4.文件上传
5. 图片域
6.
outline:(轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用,轮廓线不会占据空间,也不一定是矩形。
outline-width:规定边框宽度
outline-style:规定边框样式
outline-color:规定边框颜色
outline:width style(solid dashed dotted) color简写
cursor 属性规定要显示的光标的类型(形状)
pointer 光标呈现为指示链接的指针(一只手)
ie低版本浏览器设置鼠标指针形状为手型
cursor:hand
《省略号》
《单行省略号》
- 容器限制宽度
- white-space: nowrap
- overflow: hidden
- text-overflow:
ellipsis 显示省略号 clip 默认值
省略号
1.white-space 空白空间
normal 默认值 正常展示 多余的空格和回车只保留一个
pre 空格和回车原样输出
pre-wrap 在pre的基础上进行换行
pre-line 在pre-wrap 的基础上 只保留一个空格
nowrap 不换行
2.overflow 溢出隐藏
visible 内容超出后正常展示, 不会被裁剪
hidden 内容超出之后直接裁剪、
scroll 容器出现滚动条
auto 没有溢出的部分不会出现滚动条
3.text-overflow 显示省略号
clip 不显示省略号
ellipsis 显示省略号
多行省略
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box ;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
《布局》
- 确定版心
2. 网页划分模块
3,HTML。css文件夹制作
4. 初始化样式
—>
《元素分类》
1.块元素
独占一行的元素
可以设置高度和宽度没有设置的情况下 宽度 自适应父元素的宽度 高度为0 如果块元素浮动或定位之后,宽度和高度为0
常用的块元素(div)(p)(h1-h6)(li)(form)(dl)(dt)(dd)(hr)
2.行内元素(内联样式)
不独占一行的元素
不可以设置宽高
行内元素的宽高是由内容物显示的
常用的行内元素(span)(a)(strong)(em)(i)(b)(br)
《行内块元素》:可以直接添加宽高
3.可变元素 (img) (input)
需要根据上下文关系
《元素转换》
display:改变默认的显示类型
block 块元素
inline 行内元素
inline-block 行内块元素
对齐
《垂直对齐》
垂直对齐方式
vertical-align
top 顶线对齐
bottom 底线对齐
middle 中线对齐
baseline 默认值基线对齐
《水平对齐》
水平垂直居中
1.水平对齐 text-aling:center
2.图片后面加个空的span’ 图片img后面不能有空格回车
3。span高度100%
4.img vertical-align:middle span vertical-align:middle
《去除图片之间的间隔》
左右间隙
1.连着写
2.设置float浮动 float之后的元素会自动转方块元素
3.设置父元素font-size:0
上下间隙
1.图片设置为display:block
2.设置图片vertical-align:top/bottom/middle
《置换元素》
浏览器根据标签和标签的属性,来决定元素的具体内容
img input video audio
定位
《相对定位》
元素定位 改变标签的位置
属性position
坐标系 目标元素 定位流
1.static 默认值, 元素在文档中正常显示
2.relative 相对定位
元素相对于自身在浏览器中的位置定位
相对定位的元素不脱离文档流 他仍然保留原来的位置
top/right/bottom/left
《绝对定位》
position:absolute
相对于元素的包含块进行定位
包换块 绝对定位的元素 有定位属性(不含默认值)的父元素
绝对定位的元素会脱离文档流
父相子
《固定定位》
相对于浏览器窗口定位
固定定位会脱离文档流
position: fixed
to
right
bottom
left
《粘性定位》
position:sticky
在临界点内是相对定位
在临界点外是固定定位
不脱离文档流
《元素的堆叠顺序》
z-index 拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。
如果是没有设置z-index的情况下,堆叠顺序看谁写在下面,谁高
**
《元素水平居中》
计算子元素的margin-left margin-top, 需要明确知道父元素,子元素的宽高
2. 子元素绝对定位,父元素相对定位,子元素left:50% top50%,margin-top:高度的一半 margin-left:高度的一半(负值)
3. 子元素绝对定位,父元素相对定位 子元素 left:0 top:0 bottom:0 right: 0 margin: auto
4. 水平垂直居中
定位结合平移父元素
position: relative;
子元素
position: absolute;
left:50%;
top:50%;
transform: translate(-50%,-50%)参照物不仅提供坐标参考 还提供宽度高度参考
display:flex
justify-content:center
align-items:center
《透明度》
rgba(r,g,b,a)
transparent
opacity 0-1 给元素整体透明
老版本IE
filter:alpha(opacity=1);
opacity取值范围1-100
《锚点》
自适应
《宽度自适应》
块状元素 不设置宽度或者高度100%
那么它的宽度和父元素相同
如果浮动。定位。那么宽度默认是0
《高度自适应》
一个元素高度不设置 或者auto 那么它的高度是由内容撑开
min-height最小高度
min-height和height一般不共存,那么以height为准
!important(无限大)
《清除浮动》
- 给高度塌陷的元素加oberflow:hidden 出发BFC
弊端 溢出部分隐藏
2. 给高度塌陷的元素的里面最下面加一个空div’
这个div 加属性 clear: left right both
弊端 很多空div 代码沉余 性能降低
3. 万能清除
div::after{
content:“”;
display:block;
height:0;
overflow;hidden;
visibilty:hidden;
clear:both
}
::after 伪元素
visibilty元素显示
hidden 隐藏
visible 显示默认值
opacity 和 visibility 区别
opacity 可以使父元素和子元素整体变透明 子元素加opacity:1仍然无法出现
visibility 控制元素显示隐藏 子元素加visibility:visible 可以出现
visibility 可以被继承
display:none 是让整个元素彻底消失
《伪元素》
伪元素(::)
用CSS写结构
1. ::after
选中的元素最后面添加内容
2.::before
选中的元素最前面添加内容
3. ::first-letter
第一个字
4.::first-line
第一行、
5. ::selection
选中后
::placeholder 改变placeholder的样式
指定当元素的内容处于鼠标选中状态时的样式 css3新增 只能写color background
content 内容
必须配合content一起使用
添加进去的元素默认是一个行内元素里面可以写任何属性
vh 1vh=浏览器视窗的高度百分之一
vw 1vw=浏览器视窗的宽度的百分之一
vmax vh vw 的最大值
vmin vh vw 的最小值
margin/padding 四个方向
《计算函数》
height:calc(100% - 100px)
计算按函数的运算符号
《图片整合》
- 最好有相同的间隔参考线
2. 背景透明
3. 小图标有一点间隔
4. 最好竖着排
5. 一般o只有小图标
一个页面不是只有一张尽量图
BFC
BFC block formatting context
块状格式化上下文 只有块状元素参与
规定了里面的块状元素如何布局 与外界毫不相干
这么出发BFC**
1. 根元素(html)就是一个BFC
2. float属性不是none
3. position属性是absolute fixed
4. display:inline-block/ table-cell/ flex/inline-flex
5. overflow:hidden overflow 值不为visible的块元素
BFC的布局规则
内部的块状元素从上到下排列
2. 垂直方向的距离由margin控制
属于同一份BFC的元素上下margin 重叠
3. 每个元素的margin-left 会和父元素的border-left重叠
4. BFC 的区域不会和浮动元素相重叠(俩栏布局)
5. BFC 区域和外部空间毫不相干
6. 计算BFC的元素高度,浮动元素参与计算
BFC的应用
1、自适应两栏布局
2、清除内部浮动
3、防止margin重叠
**阴影
盒子阴影
box-shadow:水平偏移 垂直偏移 模糊程度 阴影大小 颜色 内阴影(inset)/外阴影(ontset)
**文本阴影
text-shadow
水平偏移 垂直偏移 模糊程度 颜色多个文字阴影
text-shadow: 水平偏移 垂直偏移 模糊程度 颜色,水平偏移 垂直偏移 模糊程度 颜色
《圆角》
border-radius px 百分比
单一方向的圆角
border-上下-左右-radius:
border-top-left-radius
border-bottom-right-radius
不同参数
一个参数 四个角、
俩格参数 左上右下 右上左下
三格参数 左上 右上左下 右下
四个参数 左上 右上 右下 左下
《椭圆角》 补充
border-radius:50px/100px
单一方向的椭圆
《过度》
transition
使元素从一种样式平滑的过度到另一种样式
过度 要加在默认样式上,如果加到hover上会使出去的效果消失
只有存在中间值的属性可以加过 、
transition 复合属性
1. transition-property 规定css过度的属性 all(默认值)
2. transition-duration 过度持续时间 必须 ms s
1000ms=1s
transition-duration: 500ms 0.5s
3. transition-delay 过渡延迟时间 ms s
4. transition-timing-function: 动画类型
linear 匀速 ease 先加速后减速 (默认值) ease-in 加速
ease-out 减速 ease-in-out 先加后减
transition: transition-property transition-duration transition-delay transition-timing-function
2D转换
transform:
属性值有四格功能函数
translate()平移
translateX()
translateY()
rotate() 旋转 `
rotateX
rotateY
scale() 缩放
scaleX
scaleY
skew() 倾斜
translate()平移
值可以是数值,也可以是百分比,百分比是自身宽高的百分比
translate(水平位移,垂直平移)
rotate()旋转 根据元素的中心原点 2D旋转
rotate里面有个值,表示旋转的角度 单位deg
+表示顺时针
-表示逆时针
rotate()绕着z轴 旋转 等同于 rotateZ()
改变2D的变形原点
transform-origun:水平方向 垂直方向
数值百分比
scale()根据元素中心点 进行缩放
scale()有俩个参数
第一个参数 水平方向放大的倍数
第二个参数 垂直方向放大的倍数
如果只写一个值,表示X,Y放大相同的倍数
允许写负数,表示改变轴的方向
skew() 根据元素的中心原点进行2D倾斜
skew() 有俩个参数
第一个参数 表示沿着X倾斜多少度
第二个参数 表示沿着Y轴倾斜多少度
如果只写一个值
3D转换
transform
translate scale rotate
translateX (value):默认是以X(水平方向)移动<br /> translateY (value):默认是以Y(垂直方向)移动<br /> translateZ (value):设置元素以Z(前后)轴移动,正值向前使元素视觉上变大,负值向后,使元素视觉上变小<br /> translate3d(x,y,z): 设置x,y,z轴的移动;
3种写法等价:<br /> transform:translateZ(800px) translateX(30px) translateY(30px);<br /> transform:translateZ(800px) translate(30px,30px);<br /> transform:translate3d(30px,30px,800px)
rotateX
2.
rotateX(deg):定义沿着X轴的3D旋转。 + 屏幕里 – 屏幕外
rotateY(deg):定义沿着Y轴的3D旋转。 + 右 - 左
rotateZ(deg):设置元素围绕Z轴旋转;
如果仅从视觉角度上看,rotateZ()函数让元素顺时针或逆时针旋转,并且效果和rotate()效果等同,但它不是在2D平面的旋转;
rotate3d(1,1,0,50deg)
x:是一个0到1之间的数值,主要用来描述元素围绕X轴旋转的矢量值;
y:是一个0到1之间的数值,主要用来描述元素围绕Y轴旋转的矢量值;
z:是一个0到1之间的数值,主要用来描述元素围绕Z轴旋转的矢量值;a:是一个角度值,主要用来指定元素在3D空间旋转的角度,如果其值为正值,元素顺时针旋转,反之元素逆时针旋转缩放效果:
(1)当值为1时,表示旋转,当值为0是表示不旋转;
(2)当值为小数时,只给一个小数时会当做1,如果多个非0数值,小数就会生效;
perspective 给元素添加近大远小的特点 给父元素加,让子元素出现近大远小 900px - 1200px<br /> perspective: 定义3D元素距视图的距离,以像素计;<br /> (1)当为元素定义 perspective 属性时,其子元素会获得透视效果,而不是元素本身。<br /> 属性值:<br /> number:元素距离视图的距离,以像素计。<br /> none:默认值,与0相同。不设置透视。
perspective-origin 景深原点
语法:perspective-origin: x-axis y-axis;主要用来决定perspective属性的源点角度,设置观察方向;<br /> 属性值:<br /> x: left center right/length/%<br /> y: top center bottom/length/%<br /> 说明:一般设置在父元素上,结合perspective使用;center center
transform-style:指定嵌套元素是怎样在三维空间中呈现。<br /> (1)该属性必须与transform属性一同使用<br /> (2)需要设置在父元素上面,并且高于任何嵌套的变形元素;<br /> 属性值:<br /> flat:值为默认值,表示所有子元素在2D平面呈现<br /> preserve-3d:表示所有子元素在3D空间中呈现。<br />backface-visibility<br /> 定义元素在不面对屏幕时是否可见(它用于决定当一个元素的背面面向用户的时候是否可见)。<br /> 属性值:<br /> visible:背面是可见的-默认值<br /> hidden:背面是不可见的<br />3.<br />scaleX (number):默认是X轴(长度)缩放;<br />scaleY (number):默认是Y轴(高度)缩放;<br />scaleZ (number): 默认是Z(宽度)缩放;<br />scale3d(num1,num2,num3):设置x,y,z轴的缩放;<br />注意:<br />scaleZ()和scale3d()函数单独使用时没有任何效果,需要配合其它的变形函数一起使用才会有效果,必须写在其他变形函数的后边;
语法:transform-origin: x-axis y-axis z-axis;
允许改变被转换元素原点的位置,2D 转换元素能够改变元素x和y轴,3D转换元素还能改变其Z轴;
x:left center right/length/%
y:top center bottom/length/%
z:length
动画
animation-name: 动画名字
2. animation-duration: 动画持续时间
3. animation-timing-function:
linear:线性过渡。等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0)
ease:平滑过渡。等同于贝塞尔曲线(0.25, 0.1, 0.25, 1.0)
ease-in:由慢到快。等同于贝塞尔曲线(0.42, 0, 1.0, 1.0)
ease-out:由快到慢。等同于贝塞尔曲线(0, 0, 0.58, 1.0)
ease-in-out:由慢到快再到慢。等同于贝塞尔曲线(0.42, 0, 0.58, 1.0);
step-start动画执行时为开始端点的部分为开始;
step-end动画执行时以结尾端点为开始。
4. animation-delay 动画延迟时间
5. animation-iteration-count 对象动画的循环次数
infinite 无数次
默认循环1次
6. animation-direction 动画运动方向
normal 正常
reverse 反向
alternate 先正常后反向
alternate-reverse 先反向后正常
7. animation-fill-mode:规定对象动画时间之外的状态;
属性值:
none:不改变默认行为。
forwards:当动画完成后,保持最后一个属性值(在最后一个关键帧中定义)。backwards:在animation-delay所指定的一段时间内,在动画显示之前,应用开始属性值(在第一个关键帧中定义)。
both:向前和向后填充模式都被应用。
animation:名字 持续时间 延迟时间 动画状态 次数 方向 世间之外的状态
8. animation-play-state:检索或设置对象动画的状态
属性值:
running:运动 - 默认值
paused: 暂停
动画和过度的区别
1.过度是需要主动触发 动画不需要
2. 过度只有一次,动画可以设定次数
3.过度无法
多列
实现的效果和报纸、杂志类排版非常相似。
1. column-count:设置或检索对象的列数
属性值:
integer:用整数值来定义列数。不允许负值
auto:根据column-width自定分配列数
2. column-width:设置或检索对象每列的宽度
属性值:
length:用长度值来定义列宽。不允许负值
auto:根据column-count自定分配宽度
注意:
当column-width和column-count同时存在时,能否正常显示效果,要看这
两个属性值是否合适,所以一般不一起使用;
3. column-rule:设置或检索对象的列与列之间的边框(简写)语法同border。
属性值:
column-rule-width:设置或检索对象的列与列之间的边框厚度。
column-rule-style:设置或检索对象的列与列之间的边框样式。
column-rule-color:设置或检索对象的列与列之间的边框颜色。
4. column-gap:设置或检索对象的列与列之间的间隙
属性值:
length:用长度值来定义列与列之间的间隙。不允许负值
normal:与font-size大小相同。假设该对象的font-size为16px,则normal值为16px,类推;
5. column-span:设置或检索对象元素是否横跨所有列。
属性值:none:不跨列默认 all:横跨所有列
6.column-fill:设置或检索对象所有列的高度是否统一
属性值:
auto:列高度自适应内容
balance:所有列的高度以其中最高的一列统一默认值
7.column-break-before:设置或检索对象之前是否断行。
属性值:
auto:既不强迫也不禁止在元素之前断行并产生新列
always:总是在元素之前断行并产生新列
avoid:避免在元素之前断行并产生新列
8. column-break-after:设置或检索对象之后是否断行。
属性值:
auto:既不强迫也不禁止在元素之后断行并产生新列
always:总是在元素之后断行并产生新列
avoid:避免在元素之后断行并产生新列
9. column-break-inside:设置或检索对象内部是否断行。
属性值:
auto:既不强迫也不禁止在元素内部断行并产生新列
avoid:避免在元素内部断行并产生新列
columns:规定设置 column-width和column-count的简写属性
break-inside:avoid;给中断的元素加
语义化标签
**
1、
表示页面中一个内容区块或者整个页面的标题。
2、
表示页面中导航链接的部分。
3、
表示内容区块,章节、页眉、页脚或者页面中的其他部分;可以与h1-h6等元素结合起来使用,标示文档的结构。
4、
aside表示acticle元素的内容之外的,与article元素的内容相关的辅助信息。
5、
表示整个页面的尾部或者页面中的一个内容区块的脚注。一般来说,footer会包含作者的姓名、创作日期以及作者联系信息。
6、
7、
main标签规定文档的主要内容,main中的内容在文档中应该是唯一的,在一个文档中,不能出现一个以上的
8、
9、
figcaption元素应该被置于 figure元素的第一个或最后一个子元素的位置。
10、
标签用于对网页或区段(section)的标题进行组合
使用
11、
13、
兼容处理:
多媒体
1、video:定义视频,比如电影片段或其它视频流
语法:
注:可以在开始标签和结束标签之间放置文本内容,这样老的浏览器就可以显示出不支持该标签的信息。
2 、audio:定义音频,比如音乐或其它音频流
语法:
注:可以在开始标签和结束标签之间放置文本内容,这样老的浏览器就可以显示出不支持该标签的信息
html5表单
允许用户输入邮箱
只校验有没有@
<input type="url"> url<br /> 只校验协议 http https
<input type="range"> 滑动条
<input type="number">输入数字
<input type = 'search'> 搜索 火狐firefox 是一个普通的文本框
<input type="color"> 颜色 火狐firefox赢了
<input type="tel"> 电话号
<input type="time"> 时间
<input type="week"> 周 火狐firefox 没有
<input type="month"> 月 火狐firefox 没有
<input type="datetime-local">本地时间 火狐firefox 没有
required:检测输入框是否为空,如果为空,则不允许提交(required="required")
autofocus:规定在页面加载时,输入域自动地获得焦点,一个页面只能有一个(autofocus="autofocus")
novalidate:规定在提交表单时不应该验证form或input域。即使form表单中的input添加了required,也将不进行验证(novalidate="novalidate");
multiple:规定输入域中可选择多个值,每个值之间用逗号分开;如果要获取其中的值在用split获取(multiple="multiple");<br /> <br /> autocomplete:规定form或input域应该拥有自动完成功能。 <br /> on:默认;规定启用自动完成功能。<br /> off:规定禁用自动完成功能。
min、max、step:为包含数字或日期的input类型规定限定(约束)<br /> max规定输入域所允许的最大值。<br /> min规定输入域所允许的最小值。<br /> step为输入域规定合法的数字间隔(如果 step="3",则合法的数是 -3,0,3,6 等)。
form:规定输入域所属的一个或多个表单,属性值必须引用所属表单的id,此属性适用于所有<input>标签的类型;
::placeholder 改变placeholder的样式
线性渐变
background-image: linear-gradient(direction,color-stop1,color-stop2)
方向 : 默认从上到下颜色渐变 to bottom 180deg<br /> linear-gradient(direction,color-stop1 (百分数 / 数值),color-stop2)<br /> 百分数: 容器的宽度和高度
方向: top bottom left right <br /> to 方向<br /> to 水平方向(left right) 垂直方向(top bottom)
角度 deg +顺时针 -逆时针 默认180deg to bottom<br /> <br /> 新:0deg to top 从下到上
旧的:0deg to right 从左到右<br /> 但是,请注意很多浏览器(Chrome,Safari,fiefox等)的使用了旧的标准,即 0deg将创建一个从左到右(to right 90deg)的渐变,90deg 将创建一个从下到上的渐变。
重复线性渐变
background-image: repeating-linear-gradient(direction, color-stop1, color-stop2, …);用于创建重复的线性渐变 “图像”
background-image: radial-gradient(shape size at position, start-color, …, last-color)
shape: ellipse (默认):指定椭圆形的径向渐变。
circle :指定圆形的径向渐变
size:定义渐变的大小:
farthest-corner (默认) : 指定径向渐变的半径长度为从圆心到离圆心最远的角
farthest-side :指定径向渐变的半径长度为从圆心到离圆心最远的边
closest-corner : 指定径向渐变的半径长度为从圆心到离圆心最近的角
closest-side :指定径向渐变的半径长度为从圆心到离圆心最近的边
position:定义渐变的位置
length:用长度值指定径向渐变圆心的横坐标或纵坐标。可以为负值。
percentage:用百分比指定径向渐变圆心的横坐标或纵坐标。可以为负值。
left:设置左边为径向渐变圆心的横坐标值。
center:设置中间为径向渐变圆心的横坐标值。
right:设置右边为径向渐变圆心的横坐标值。
center(默认):设置中间为径向渐变圆心的纵坐标值。
top:设置顶部为径向渐变圆心的纵坐标值。
bottom:设置底部为径向渐变圆心的纵坐标值。
**
图片边框
border-image-source:该属性用于指定是否用图像定义边框样式或图像来源路径。<br /> 属性值:<br /> none(默认值) url()
border-image-slice:该属性用于指定对边框背景图的分割方式,指定顶部,右,底部,左边缘的图像向内偏移,分为九个区域:四个角,四边和中间。图像中间部分将被丢弃(完全透明的处理),除非填写关键字fill。
属性值:[number|percentage]{1,4} && fill<br /> 默认值:100%<br /> 例如:<br /> border-image-slice:10;上 下 左 右<br /> border-image-slice:10 20;上下 左右;<br /> border-image-slice:10 20 30;上 左右 下;<br /> border-image-slice:10 20 30 40;上 右 下 左;
border-image-repeat: 该属性规定如何延展和铺排边框图像的边缘和中间部分,属性值为两个,如果省略第二个值,则采取与第一个值相同的值。<br /> 属性值:<br /> stretch: 初始值。边框图片被拉伸以填充区域。<br /> repeat: 图片平铺以填充区域,必要时每个部分会用多个图片块填充。<br /> round: 图片平铺以填充区域,若有必要避免每个部分用多个图片块填充,图片会被重新缩放,然后进行填充。<br /> space: 图片平铺以填充区域,如果区域无法用整片图片填满,在每部分之间会加入空隙以填满区域。注意,该属性值并非所有浏览器都支持。
border-image-width:属性规定图像边框的宽度。<br /> 属性值:<br /> number:代表对应的border-width的倍数。<br /> %:参考边框图像区域的尺寸,区域的高度影响水平偏移,宽度影响垂直偏移。<br /> length:px<br /> auto:如果规定该属性,则宽度为对应的图像切片的固有宽度(border-width)。<br /> <br /> border-image-outset: 属性规定边框图像超过边框盒的量。<br /> 属性值: <br /> length:px<br /> number:代表对应的 border-width 的倍数。
简写:<br /> border-image: source slice fill/width outset repeat
结构伪类选择符
E:first-child:匹配父元素中的第一个子元素E(c2)
首先找页面所有的E元素去找他们的子集(所有的兄弟元素)
去看他们里面的第一个元素是否符合这个条件,符合加上
E:last-child:匹配父元素中的最后一个子元素E(c2)
首先找页面所有的E元素去找他们的子集(所有的兄弟元素)<br /> 去看他们里面的最后一个元素是否符合这个条件,符合加上
E:nth-child(n):匹配父元素中的第n个子元素E;
首先找页面所有的E元素去找他们的子集(所有的兄弟元素)<br /> 去看他们里面的第n个元素是否符合这个条件,符合加上
E:nth-last-child():匹配父元素中倒数第n个子元素E
E:first-of-type : 选择父元素内具有指定类型的第1个E元素(c3)<br /> 首先找页面所有的E元素去找他们的子集(所有相同类型的兄弟元素)<br /> <br /> E:last-of-type:选择父元素内具有指定类型的最后一个E元素(c3)
E:nth-of-type(n): 匹配父元素内具有指定类型的第n个E元素
E:nth-last-of-type(n):匹配父元素内具有指定类型的倒数第n个E元素
参数:<br /> (1)参数n (2)表达式 (3)数字 (4)关键字 odd 奇数 even 偶数
E:only-child:选择父元素内只包含一个子元素,且匹配为E元素<br /> E:only-of-type:选择父元素只包含一个同类型的子元素,且匹配为E元素
兄弟选择符
css2:
相邻兄弟选择符E+F{}:选择紧贴在E元素之后F元素。
css3:
普通兄弟选择符E~F{}:选择E元素后面的所有兄弟元素F。
属性选择器
css2:
E【attr】:选择具有attr属性的E元素 alt=’’ alt=’maomi’
E【att=’val’】:选择具有attl属性并且属性值为val的E元素 alt=’maomi’
E[attr~=“val”]:选择具有attr属性且属性值是一个词列表,并且以空格隔开,其中词列表中包含了一个val的E元素 alt=”maomi” alt=”maomi mimi xiaomaomi”
E[attr|=“val”]:选择具有attr属性并且属性值以val开头并用连字符分隔的字符串的E元素(比如说left-con) alt=”maomi” alt=”maomi-xiao”
css3<br /> <br /> E[attr^=“val”]:选择具有attr属性并且属性值是以val开头的E元素<br /> E[attr$=“val”]:选择具有attr属性并且属性值是以val结束的E元素<br /> E[attr*=“val”]:选择具有attr属性并且属性值中包含了val的E元素
UI元素状态伪类选择器
E:disabled:设置该元素处于不可用状态的样式;<br /> E:enabled:设置该元素处于可用状态时的样式;<br /> E:read-only:指定当元素处于只读状态时的样式<br /> E:read-write:指定当元素处于非只读状态时的样式;<br /> E:checked:指定当表单中的radio单选框或checkbox复选框处于选取状态时的样子<br /> E:default:指定当页面打开时默认处于选中状态的radio或checkbox控件的样式<br /> E:indeterminate:指定当页面打开时,如果一组单选框中任何一个单选框都没有被设定为选取状态时整组单选框的样式,如果用户选取了一个单选框,则该样式被取消;<br /> <br /> E::selection:指定当元素的内容处于鼠标选中状态时的样式 css3新增 只能写color background-color
css3中width新增了属性值min-content、max-content、fit-content、fit-available
属性值:
fill-available:自动填满剩余的空间-适用block,inline-block元素(高版本要添加浏览器前缀);
max-content:表示宽度值采用盒子里内容宽度大的那个。
min-content:表示宽度值是会采用有定宽的最大&最小宽度而定。
fit-content:内容大小
可以实现元素收缩效果的同时,保持原本的block水平状态,可以直接使用margin:auto实现元素向内自适应的同时居中显示。但是div的自适应宽度不是100%而是内容的大小。
Pointer-events:设置或检索在何时成为鼠标事件的target<br /> 属性值:auto| none | visiblepainted | visiblefill | visiblestroke | visible | painted | fill | stroke | all<br /> auto:与pointer-events属性未指定时的表现效果相同。在svg内容上与visiblepainted值相同<br /> none:元素永远不会成为鼠标事件的target。但是,当其后代元素的pointer-events属性指定其他值时,鼠标事件可以指向后代元素,在这种情况下,鼠标事件将在捕获或冒泡阶触发父元素的事件侦听器。<br /> 其他值只能应用在SVG上。
阻止用户的点击动作产生任何效果:<br /> 阻止CSS里的hover和active状态的变化触发事件<br /> 阻止JavaScript点击动作触发的事件<br /> 提交页面,提交按钮点击后,添加这个样式属性(style="pointer-events"),来防止重复提交<br /> <br /> pointer-events的值为none时,如果元素上设置绝对定位,那在它下一层的元素可以被选中。
如果将一个元素的pointer-events设置为none的时候,子元素 pointer-events设置成其他值(比如:auto),那么当点击子元素时,还是会通过事件冒泡的形式触发父元素的事件
pointer-events:none;只是用来禁用鼠标的事件,通过其他方式绑定的事件还是会触发的,比如键盘事件等。
伪类选择符
(:link :hover :visited :active :foucs-状态伪类选择符):
E:not(val):匹配不含有val选择符的元素E。
:root:文档的根元素。
E:empty:匹配没有任何子元素(包括text节点)的元素E。
E:target:使用该选择器来对页面中的某个target元素(该元素的id当做页面中的超链接的属性值)指定样式,该样式只在用户点击了页面中的超链接,并且跳转到target元素后起作用。
FLEX布局弹性和布局
弹性盒布局 flex inline-flex
1.display:flex 让元素转换为弹性盒 给父元素加 要想实现弹性盒布局必须写display:flex
2.flex-direction:改变方向主轴方向
row 默认值 水平方向 从左往右
column 垂直方向 从上往下
row-reverse 水平方向 从右向左
column-reverse 垂直方向 从下往上
3.justify-content:主轴的排列方式
flex-start 沿着主轴方向从头部排列
flex-end 沿着主轴方向从结束位置排列
center 沿着主轴方向居中排列
space-between 项目位于各行之间留有空白的容器内 两边没有间距,中间间距平分
space-around 项目位于各行之前、之间、之后都留有空白的容器内。 两边有间距,中间间距平分,两边的间距是中间的一半
space-evenly 平分所有间距
4. align-items:子元素在侧轴(交叉轴)的排列方式
侧周:和主轴的垂直方向
flex-start 沿着侧轴方向从头部排列
flex-end 沿着侧轴方向从结束位置排列
center 沿着测轴方向居中排列
baseline 沿着侧轴基线对齐
stretch 元素被拉伸以适应容器 默认值
5. flex-wrap:
nowrap 不换行 默认值
wrap 换行
wrap- reverse 换行并且反向 反向指的是 侧轴的排列顺序反向
- align-content: 多行子元素的行与行之间的对齐方式(必须多行才有效)
flex-start 行在侧轴 按照头部排列对齐
flex-end 行在侧轴 按照结束位置排列
center 行在侧轴 中心排列
space-batween 侧轴俩端的行没有间距,中间的间距平分
space-around 侧轴俩端的行没有间距, 中间的间距平分,俩别是中间的一半。
space-evenly 平分空间
7.简写:flex-flow
flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap;-简化代码
flex-flow : flex-direction flex-wrap
column nowrap
row-reverse wrap-reverse
space-between nowrap
space-evenly wrap
column-reverse wrap
特点:
1.弹性盒布局不依赖float position display:flex里面所有元素的按照
2. 弹性盒里面所有元素的按照主轴排列 可以从上往下 从左往右
3.弹性盒只影响子元素,不影响孙元素
4.弹性盒改变子元素在父元素里面的位置关系
弹性和属性 给子元素添加
1. order 改变子元素的排列顺序 <br /> number:值越小排列越靠前,值越大顺序越靠后 + -<br /> 2. align-self 子项单独在侧轴(纵轴)方向上的对齐方式<br /> 注意:align-self 属性可重写灵活容器的 align-items 属性。<br /> <br /> auto:默认值。元素继承了它的父容器的align-items属性。如果没有父容器则为 "stretch"。 <br /> stretch:元素被拉伸以适应容器。<br /> center:元素位于容器的中心。<br /> flex-start:元素位于容器的开头。<br /> flex-end:元素位于容器的结尾。<br /> baseline:元素位于容器的基线上。
3. flex-grow 子元素的扩展比例 分配剩余空间<br /> number:规定项目将相对于其他灵活的项目进行扩展的量。默认值是0。<br /> 即当容器空间大于内部元素空间之和时,剩余部分将根据各元素指定的flex-grow按比例分配,使各子元素增大;默认值为0,表示剩余空间不分
4. flex-shrink 子元素的收缩比率<br /> number 0 不收缩 1 收缩 (默认)<br /> <br /> 5. flex-basis:设置弹性盒伸缩基准值(指定flex-item在主轴上的初始大小)<br /> <br /> number:规定灵活项目的初始长度。<br /> auto:默认值。长度等于灵活项目的长度。如果该项目未指定长度,则长度将根据内容决定。
6. flex<br /> flex 属性是 flex-grow、flex-shrink 和 flex-basis 属性的简写属性。
flex : 0 1 50px
怪异盒模型
盒模型 content padding border margin
标准盒模型 margin+border+padding+width
怪异盒模型 IE margin+width
怪异盒模型的width 包括 content-width padding-left padding-right border-left border-right
height content-height padding-top padding- bottom border-top border-bottom
reset.css
box-sizing: content-box 标准盒模型 默认
border-box 怪异盒模型
媒体查询
@media mediatype and|not|only (media feature) {CSS-Code;}
@media screen and (min-width: 601px) and (max-width:1200px) {<br /> .father .son{<br /> display: none;<br /> }<br /> }
grid 布局 网格布局 具有行和列的概念
让元素成为一个网格布局
父元素添加的属性<br /> 1. display: grid<br /> 2. grid-template-columns: 设置grid布局每一列的宽度<br /> 2. grid-template-rows: 设置grid布局每一行的高度<br />数值<br /> 百分比<br /> repeat(重复次数, 重复的值)<br /> fr 倍数 1fr 2fr<br /> auto 让浏览器自动适应
auto-fill
auto-fill关键字,自动填充:有时单元格的大小是固定的,但是容器的大小不确定。如果希望每一行(或每一列)容纳尽可能多的单元格,这时可以使用auto-fill关键字表示自动填充<br /> grid-template-columns: repeat(auto-fill, 100px);<br /> <br /> minmax(参数1,参数2):函数产生一个长度范围,表示长度就在这个范围之中(1最小值,2最大值),如果max值小于min值,则该值会被视为min值。最大值可以设置为网格轨道系数值fr,但最小值则不行;
4. row-gap:设置行与行的间距 grid-row-gap<br /> 5. column-gap:设置列与列的间距 grid-column-gap<br /> 6. gap: 行和列的间距的简写 row-gap column-gap
7. justify-items: start | end | center | stretch (默认);<br /> 属性设置单元格内容的水平位置(左中右)<br /> 8. align-items: start | end | center | stretch (默认);<br /> 属性设置单元格内容的垂直位置(上中下)。
简写 place-items: <align-items> <justify-items><br /> 如果省略第二个值,浏览器就会假定第二个值等于第一个值。
9. justify-content:start | end | center | stretch | space-around | space-between | space-evenly;<br /> 属性是整个内容区域在容器里面的水平位置(左中右)
10. align-content: start | end | center | stretch | space-around | space-between | space-evenly;<br /> 属性是整个内容区域的垂直位置(上中下)。
简写 place-content: <align-content> <justify-content> <br /> 如果省略第二个值,浏览器就会假定第二个值等于第一个值。
stretch - 项目大小没有指定时,拉伸占据整个网格容器。<br /> start - 对齐容器的起始边框。<br /> end - 对齐容器的结束边框。<br /> center - 容器内部居中。<br /> space-around - 每个项目两侧的间隔相等。所以,项目之间的间隔比项目与容器边框的间隔大一倍。<br /> space-between - 项目与项目的间隔相等,项目与容器边框之间没有间隔。<br /> space-evenly - 项目与项目的间隔相等,项目与容器边框之间也是同样长度的间隔
自动填充
自动填充关键字,自动填充:有时单元格的大小是固定的,但是容器的大小不确定.如果希望每一行(或每一列)容纳尽可能多的单元格,这时可以使用自动填充关键字表示自动填充
网格-模板-列:重复(自动填充,100 px);
最小(参数1,参数2):函数产生一个长度范围,表示长度就在这个范围之中(1最小值,2最大值),如果max值小于min值,则该值会被视为min值.最大值可以设置为网格轨道系数值fr,但最小值则不行;
4.行间隙:设置行与行的间距网格-行间隙
5.列-间隙:设置列与列的间距网格-列-间隙
6.间隙:行和列的间距的简写行-间隙列-间隙
7.对齐-项目:开始-结束-中心—拉伸(默认);
(属性设置单元格内容的水平位置(左中右)
8.对齐-项目:开始-结束-中心—拉伸(默认);
属性设置单元格内容的垂直位置(上中下)。
简写地点-项目:<对齐-项目><合理-项目>
如果省略第二个值,浏览器就会假定第二个值等于第一个值.
9.对齐-内容:起始点,结束,中心,拉伸,空间,周围空间,空间,中间空间,均匀空间;
(属性是整个内容区域在容器里面的水平位置(左中右)
10.对齐-内容:开始
属性是整个内容区域的垂直位置(上中下)。
简写位置-内容:<对齐-内容><对齐-内容>
如果省略第二个值,浏览器就会假定第二个值等于第一个值.
拉伸-项目大小没有指定时,拉伸占据整个网格容器.
start - 对齐容器的起始边框。
结束-对齐容器的结束边框.
中心-容器内部居中.
太空环绕-每个项目两侧的间隔相等.所以,项目之间的间隔比项目与容器边框的间隔大一倍.
间隔-项目与项目的间隔相等,项目与容器边框之间没有间隔.
空间-均匀-项目与项目的间隔相等,项目与容器边框之间也是同样长度的间隔.
11. grid-auto-flow: row column
子元素放置的顺序 默认row
12. grid-auto-columns 设置多余的列宽<br /> 13. grid-auto-rows 设置多余的行高<br /> 指定任何自动生成的网格轨道(grid tracks)的大小。当网格中的网格项多于单元格时,或者当网格项位于显式网格之外时,就会创建隐式轨道。<br /> 取值:长度值,百分比,或者等份网格容器中可用空间的分数(使用 fr 单位)
14. grid-area: 'a b c'<br /> 'd e f'<br /> 'g h k'
"header header header"<br /> "main main sidebar"<br /> "footer footer footer";
子元素
grid-row-start属性:上边框所在的水平网格线 1<br /> grid-row-end属性:下边框所在的水平网格线 3<br /> grid-row属性是grid-row-start属性和grid-row-end的合并简写形式。<br /> grid-row: grid-row-start / grid-row-end
grid-column-start属性:左边框所在的垂直网格线<br /> grid-column-end属性:右边框所在的垂直网格线<br /> grid-column属性是grid-column-start和grid-column-end的合并简写形式
grid-area:1 row-start / 2 column-start / 2 row-end / 4 column-end---简写
justify-self属性设置单元格内容的水平位置(左中右),跟justify-items属性的用法完全一致,但只作用于单个项目。
align-self属性设置单元格内容的垂直位置(上中下),跟align-items属性的用法完全一致,也是只作用于单个项目。
属性值:<br /> start:对齐单元格的起始边缘。<br /> end:对齐单元格的结束边缘。<br /> center:单元格内部居中。<br /> stretch:拉伸,占满单元格的整个宽度(默认值)
place-self属性是align-self属性和justify-self属性的合并简写形式。<br /> place-self: align-self justify-self