css3

溢出

内容多,容器小,会发生溢出
默认溢出显示,默认纵向溢出

效果显示
  • 溢出的控制 overflow
    1.visible 默认值,缺省值,溢出部分可见
    2.hidden 溢出部分隐藏
    3.scroll 不管是否溢出都有滚动条
    4.auto 溢出又滚动条,不溢出没有
    5.overflow-x 单独设置x轴滚动条
    6.overflow-y 单独设置y轴滚动条
p{
      /*溢出的控制     */
      overflow:hidden;
    }

边框的简写方式

width style color

border: 1px solid red;
  • width:边框的粗细 px
  • style: 边框的样式
    • solid*:实线
    • dotted*:点点的虚线
    • dashed*:线条虚线
    • double*:双实线
合法颜色值
  1. 颜色的英文单词
  2. #00 00 00 6个16进制(0~255)
    • rgb:色光三原色 红 #ff 00 00 绿 蓝
    • #ff ff ff 代表 白(光全开就是白)
    • #00 00 00 代表 黑(没开光就是黑)
  3. #aabbcc--->#abc
  4. rgb(r,g,b)10进制 0~255
  5. rgb(r%,g%,b%) 255的%(不常用)
  6. rgba a:透明度(0~1)
  7. transparent; 透明

好看的蓝 [1]

边框最简单方式:border:style;默认1px,黑色,style

单边设置

border-方向: width style color;
方向: 上 右 下 左

单属性设置
  • border-width 边框大小
  • border-style 边框样式
  • border-color 边框颜色
单边的单属性设置
  • border-left-width 边框大小
  • border-right-style 边框样式
  • border-top-color 边框颜色
圆角 radius
border-radius:10px;

单位:px %; 临界点:50%变成圆

单角设置

border-top-left-radius: 2px
border-top-right-radius: 2px
border-bottom-left-radius: 2px
border-bottom-right-radius: 2px
边框阴影 box-shadow

取值:h-shadow v-shadow blur spread color inset;

  • h-shadow:水平方向的偏移量
  • v-shadow:垂直方向的偏移量
  • blur: 阴影的模糊距离
  • spread: 阴影尺寸
  • color : 阴影颜色
  • inset: 设置外部阴影为内部阴影

最简方式:h-shadow v-shadow

轮廓

边框外面一条线,边框的边框

outline: width style color;
一般只清除轮廓
outline:0/none:清除轮廓
border:0/none:清除边框


盒子模型,框模型

所有元素皆为框


元素在页面上实际占据空间的计算方式

宽度: 左外边距+左边框+左内边距+内容区域的宽度+右外边距+右边框+右内边距
高度: 上外边距+上边框+上内边距+内容区域的高度+下外边距+下边框+下内边距

外边距: 边框以外的距离(元素与元素的距离)
内边距:边框与内容区域的距离

  1. 外边距 margin
    • 改变外边距,元素有位移效果,边距无颜色
    • margin:v1;4个方向上的外边距
    • 上 右 下 左单独一边的边距;
      如果当前行只有一个元素,右外边距数值不准确

取值:

  1. px
  2. % 父元素宽度的%
  3. 负数: 往相反的方向移
  4. auto: 必须左右外边距一起用,
    作用:让块级元素水平居中
    简写:margin:auto; 水平居中

外边距的合并:上下外边距以最大的一个值为准
解决方案:

  1. 只写上,或者下,不要混写
  2. 设计时规避
块级 行内 行内块
设置宽高有效 宽高无效 设置宽高有效
不写宽,默认宽父元素100%,不写高内容撑开 宽高都是内容撑 默认值带一个宽高,不同浏览器解析不同
单独成行 与其他行内和行内块元素共用一行 与其他行内和行内块元素共用一行
上下外边距有效 上下外边距无效 上下外边距有效,改变一行任意一个行内块的上下外边距,本行其他元素,跟着一起位移

css 重置 reset

  • body自带8个外边距
  • ul自带40px左内边距
    body,p ,h1-h6,ol,ul,dl,pre都有边距,因浏览器解析不同,需要样式重置
    *{margin:0;padding:0;}
blockquote, body, button, dd, 
dl, dt, fieldset, form, h1, h2, 
h3, h4, h5, h6, hr, input, 
legend, li, ol, p, pre, td, 
textarea, th,ul
{margin:0;padding:0;}
外边距溢出

在特殊情况下,为子元素设置外边距,会作用到父元素上

  1. 父元素没有上边框
  2. 子元素内容区域上边沿与父元素内容区域上边沿重合

解决方案:

1.给父元素添加上边框
缺点:增加了父元素实际占地高度
2.给父元素添加上内边距
缺点:增加了父元素实际占地高度
3.overflow:hidden;
缺点:想要溢出显示怎么办


4.常用给父元素添加一个大儿子
一个空的table元素


内边距

边框和内容区域之间的距离
修改内边距,效果是元素越大,内边的颜色,就是背景的颜色
一般,需要把元素撑开的需求需要内边距
padding:v1;
padding没有auto
取值:
1.px
2.%, 以父元素宽度的%
简写方式:一个值

box-sizing:

取值:
1 content -box.默认情况下,设置width是内容区域的宽度

  1. border-box:设置width是边框内部的总宽度(含边框)
    • 元素实际占地高度:左外+width
    • 一般子元素用%做宽,几个子元素有空隙,要设置border-box
      使用padding调整空隙大小

背景

background-color:合法颜色值;

背景图像

使用背景图,可让元素内部子元素,堆叠在背景上
background-image:url();
此路径可加双引号,单引号,可不加

  1. background-repeat:repeat;
    取值:
    • repeat 默认值平铺
    • no-repeat 不平埔
    • repeat-x 水平平铺
    • repeat-y 垂直平铺
  2. background-position: 100px(x) 300px;(y)
    • 取值:x,y
    • px 而为单位
    • %
    • 关键字x:(left/right/centent)y(top /centent /bottom)
  3. 背景图片的尺寸
    • background-size:
      取值:
    • 一个值:px数字 同时控制x,y的大小
    • 两个值:分别控制x,y的大小
    • 关键字:cover contain

cover:覆盖和填充,让背景图冲满整个容器,哪怕图片显示不完全

contain 包含,让容器显示完整的图片,哪怕容器有空白区域,也要包含完整图片

  1. 背景图片的固定
    background-attachment:scroll(默认值)
    取值:fixed 固定(相对窗口位置固定,滚动,位置不变,但只能在原容器显示)

7.背景的简写方式
color url repeat attachment position 没有size
背景图设置了fixed那么position会根据浏览器窗口定位

渐变gradient

渐变是多种颜色,平缓变化的一种显示效果
渐变的主要因素
色标,一种颜色,出现的位置
效果,至少两个色标
渐变的分类

  1. 线性渐变,以直线填充
  2. 径向渐变,以圆形来填充
    3.充复渐变,将线性,径向重复执行

线性渐变:background-image
简写:background:linear-gradient(方向,色标1,色标2,色标3)
方向:取值 1.关键字,定义的

  • 终点:
    to top/to right /to bottom/ to let
  • 角度:deg
    0deg ->to top
    90deg -> to right
    180deg-> to bottom
    270deg-> toleft
  • 色标:颜色+位置
    1. 位置,%
    2. 位置,px
    3. 位置不写,平均分配
  1. 径向渐变

background:radial-gradient(半径 at 圆心,色标1,色标2,色标3)

  • 半径:px为单位的数字,色标中位置用%,会根据半径变化,如果是px,半径失去作用
    圆心: x y px为单位的数字
    x% y%
    关键字 x:left/center/right
    y:top/center/bottom
  1. 重复渐变
    repeating-linear-gradient(方向,色标1,色标2,...)
    repeating-radial-gradient(半径 at 圆心,色标1,色标2,...)

浏览器兼容 css hack

渐变兼容低版本浏览器
-moz- 火狐
-webkit- 谷歌/苹果
-o- opera
-ms- ie
-webkit-repeating-linear-gradient(方向起点,色标1,色标2,...)
取值:top bottom left right,从哪里开始

文本格式化

  1. 指定字号大小
    • font -size :值(px/pt/rem/em)
  2. 字体系列
    • font-family:值
      pc中字体库中有的字体,有空格建议加“”用逗号隔开多个字体系列
      chiller,“mv boli”,jokerman,黑体;
  3. 字体加粗
    • font-weight:值(关键字:normal/bold/bolder/lighter/
      不带单位的数字,100的整倍数:100~1000)
  4. 字体样式font-style
    normal(默认值)
    italic斜体
  5. 小型大写字母
    font-variant:small-caps
  6. 简写
    font:style variant weight size family
    45312
    最简:size family
文本属性
  1. color:字体颜色
  2. 文本对齐方式
    • text-align:

    值:left / center/ right / justify(两端对齐)

margin:o auto;和text-align的区别

margin:o auto:该块级元素本身水平居中
text-align:设置内部文本,行内,行内块,水平对齐,该元素内块级元素无效

  1. 行高:line-height
    行高自带的功能
    如果一行文字字号小于行高,那么该行文字,显示在行高中间
    一般情况下行高等于容器的高度,那么该文字就能在容器中垂直居中

注:多行文本不使用行高
取值:px为单位的数字
无单位的数字代表行高是字号的倍数

  1. 文本线条
    text-decoration:none; 没有线条修饰,a去除下划线
  • 取值:underline:下划线
  • 取值:overline:上划线
  • 取值:line-through:删除线;
  1. 首行缩进
    text-indent: px
    text-shadow:h-shadow v-shadow blur color
    h-shadow :水平便宜
    v-shadow:垂直偏移
    blur:模糊距离
    color:阴影颜色

css编写思路[1]


表格的样式

  1. 常用属性
    尺寸,边框,背景,字体,内外边距,

table 设置边框,只会设置最外层最大边框
td/th (外边距无效) 尺寸,边框,背景,字体,内边距,
vertival-align:指定单元格垂直对齐方式
取值:top、middle,bottom


table是特殊的表现方式
实际尺寸和设计不一样,是根据内容数据的多少决定的
单元格小,内容多,制动撑开,
内容小,单元格大,跟单元格走


表格渲染方式与其他元素不同
先读取到内存中再一次型渲染,效率低

  1. 表格的特有属性
  • border-collapse:separate(默认值,边框分离状态)
    collapse(合并)
  • border-spacing: px 边框间距 前提边框必须分离
    一个值:水平垂直间距
    两个值:第一个水平,第二个垂直
  • 标题位置
    caption -side 默认值top 可设置为bottom
  • 设置表格的显示规则
    渲染表格的方式
    table-layout:
    取值:auto(默认值)制动表格布局
    td/th的尺寸实际上由内容决定
    fixed 固定表格布局
    不管内容多大,不存入内存,按尺寸显示,直接渲染
table自动布局 table的固定
单元格大小自动适应 单元格大小取决于设置的尺寸
表格复杂时速度慢 任何情况下加载速度都快
比较灵活 不灵活
适用于表格不复杂,不确定每列大小的表格 适用于表格确定每列大小的布局

定位

1. 什么是定位

设置元素在页面上的位置

2. 分类

普通流定位
浮动定位
相对定位
绝对定位
固定定位

3. 普通流定位(默认)(默认文档流)

  • 每个元素在页面上都哟自己的空间(不能堆叠)
  • 每个元素都是从父元素左上角绘制
  • 块级元素按照从上倒下方式逐个排列,每个元素单独成行
  • 行内和行内块元素在一行中从左往右逐个排列,一行放不下换行

4. 浮动定位

让块级元素横向显示

  • float:取值
    • none 不浮动
    • left 向左浮动 ,让元素脱离文档流,像当前行左看齐
    • right 向右浮动,让元素脱离文档流,像当前行右看齐
  • 浮动的特点
    1.元素一旦浮动,就脱离文档流(不再占用页面空间,后面元素上前补位)
    2.浮动元素,或i停靠在父元素的左/右边,或者其他已浮动元素的边缘
    3.父元素横向显示不下说有元素,显示不下的部分会自动换行
    4.浮动解决,多个块级元素横向显示的问题
  1. 浮动引发的特殊情况
    1. 浮动引发的占位问题
      • 当父元素显示不下说有浮动元素时,显示不下元素会换行,已浮动元素,会根据浮动占据位置,导致被挤下去的浮动元元素,要在更下方显示
    2. 元素一旦浮动,元素没定义宽度,宽度靠内容撑开
    3. 行内元素浮动后自动变成块级

    可以设置宽高,内外边距
    4. 文本,行内,行内快是不会被浮动元素压在下面的,而是巧妙地避开,环绕着浮动元素显示

6. 总结

一个元素脱离文档流:对应下面几件事
1.元素本身不占页面空间,后面元素向前补位
2.脱离文档流的元素,都变成块级元素
3.如果元素没宽,脱离文档流后,宽度靠内容撑开

7. 清除浮动效果

一个元素不浮动,前面与浮动的兄弟元素带来了影响
影响:元素向前补位
清除浮动带来的影响:不上前补位

  • clear:none/left/right/both
    /left: 清除左浮动带来的影响
    /right: 清除右浮动带来的影响
    /both: 同时清除左右浮动带来的影响

8. 高度坍塌

父元素没有定义高度,高度靠内容撑开,子元素都浮动了,导致父元素找不到高,这样就导致了父元素的高度坍塌
* 解决方案:
* 1. 给父元素定义高度 弊端,动态的数据,没办法知道具体的高度
* 2. 父元素也浮动 弊端 ,会影响其他元素
* 3. 父元素overflow:hidden 弊端,如果想溢出就冲突了
* 4. 追加一个小的块级元素,设置clear:both

9. 定位

1. 显示
  • 显示的效果

visibility:visible 默认值 可见
hidden 隐藏 不可见 不脱离文档流

* 显示方式(重点)

设置元素在页面中的表现形式(块级,行内,行内块,table)
display: inline(行内)/block(块级)/inline-block(行内块)/table(表格)/none(隐藏(脱离文档流的隐藏))

ps: display:none和visibility: hidden区别

display:none(隐藏(脱离文档流的隐藏))后面元素向前补位
visibility:hidden 隐藏 不可见 不脱离文档流 占据位置

* 透明度 opacity(0 ~ 1)透明 ~ 不透明

opacity和rgba的区别
rgba只会给变当前颜色透明度
opacity会改变颜色和后代和内部元素的透明度

* 垂直对齐方式

vertical-align 只能用于 行内块 表格 img

1. 在table中使用时。取值:top/middle/bottom
2. 图片和文字的排版

给图片设置vertical-align:设置的是图片前后文字,与图片的垂直对齐;取值:baseline(默认值)/top/middle/bottom
一般设置非基线对齐

* 光标的设置

cursor: default (默认值 箭头)/ pointer(小手)/ text(文本)/ wait(加载)/ help(问号)/ crosshair(加号)

10. 列表样式

1. 列表标识向

list-style-type:none/disc/circle/square

2. 列表项图片

list-style-image:url() 小图
###### 3. 列表项的位置
list-style-position:outside 默认 在li外部 ul内边距里
inside 在li内部
##### 4. 简写方式
list-style:type image position
项目中使用频率最高的list-style:none;
如果有多个div样式相同可以使用多个ul li布局

11. 定位

position:
取值:static 默认值 静态(默认文档流)
relative:相对定位
absolute: 绝对定位
fixed: 固定定位
当一个元素设置了position:取值为这三种种的一种时,这个元素,被称为以定位元素
一定为元素:自动解锁4个偏移属性,
top/right/bottom/left

1. 相对定位

不写偏移属性,页面没有作用,和没写定位一样的,需要配合偏移属性
左右冲突听左的,上下冲突听上的,正值向下,负值向上
相对定位不脱离文档流
相对定位的参照物是自己原来的位置
使用相对定位场合
* 类似margin,元素微调
* 作为绝对定位的祖先元素

2. 绝对定位(大招)

配合偏移属性
脱离文档流(不占空间,,补位 块级,要写宽高)
绝对定位的参照物???????????
>祖先元素,没有已定位元素,那么相对body左上角位移
祖先元素,有已定位元素,那么按最近的祖先元素左上角位移

3. 固定定位 fixed

脱离文档流,相对body偏移,永远在可视区域

4. 堆叠顺序

默认堆叠顺序,后写的顺序高(是html元素编写的顺序)
使用z-index修改顺序
z-index:无单位的数字(只有已定位元素才能用)
堆叠顺序对父子级无效,儿子永远在父亲上面

css3 核心

一. 复杂选择器
兄弟选择器
  1. 相邻兄弟选择器 ,获取选择器1后面紧紧挨着的选择器

选择器1+选择器2

  1. 通用兄弟选择器 ,获取选择器1后面所有符合选择器2的元素

选择器1 ~ 选择器2
用途:
设置一组元素,但大哥不应用此样式

二,属性选择器

elem代表元素 attr代表属性名 val代表属性值
[attr]{} 匹配页面带attr属性的元素
[attr1][attr2]{} 匹配页面带attr1和attr2属性的元素
[attr=val]{} 匹配页面带attr=val属性的元素
elem[attr]{} 匹配页面带attr属性的elem元素

三. 关于属性值的模糊匹配

[title^="ga"]{} 属性值为title并且值 开头 为ga
[title$="ga"]{} 属性值为title并且值 结尾 为ga
[title*="ga"]{} 属性值为title并且值 含有 ga
[title~="ga"]{} 属性值为title并且值 含有 ga 这个单词

四. 伪类选择器

:link/:visited/:hover/:active/:focus

1. 目标伪类 :target

让被激活的锚点,应用一个样式

div{
  display:none;
}
div:target{
display:block;
}
<a href="#hz">1</a>
 <a href="#hz1">2</a>
<div id="hz">1111111111 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Atque, enim, blanditiis, quae sunt accusamus debitis minima in architecto aliquid tempore a at recusandae necessitatibus quasi et laudantium porro sint beatae voluptates officiis nostrum iste est aliquam illum veniam! Quaerat, veritatis eaque harum velit commodi perferendis iste quidem ipsam molestiae eveniet?   </div>
 <div id="hz1">2222222222222Lorem ipsum dolor sit amet, consectetur adipisicing elit. Atque, enim, blanditiis, quae sunt accusamus debitis minima in architecto aliquid tempore a at recusandae necessitatibus quasi et laudantium porro sint beatae voluptates officiis nostrum iste est aliquam illum veniam! Quaerat, veritatis eaque harum velit commodi perferendis iste quidem ipsam molestiae eveniet?   </div>
2. 结构伪类

p:first-child{}
匹配p的父亲的第一个儿子,这个儿子也得是p
p:last-child{}
匹配p的父亲的最后一个儿子,这个儿子也得是p
p:nth-child(n){} n从一开始
匹配p的父亲的第n个儿子,这个儿子也得是p

3. 空元素伪类

:empty{} 匹配 内容区域啥都没有,一个空格都不能有

4. 唯一子元素(匹配有独生子女的标签):only-child{}

a:only-child{} a标签在父元素里是独生子女

5. 否定伪类 :not(条件){}

div:not(:first-child){}除了第一个,其他都选择
elem:not(selector) 符号selector的元素都不要

6. 伪元素选择器

:first-letter (h5) (h4是::first-letter)
给首字母定义样式
:first-line
给首行定义样式
::selection 必须是两个::
匹配用户选取的内容的样式(只能设置文本颜色背景颜色

4.内容生成

使用css命令,添加html元素
:before (h5) (h4是::first-letter)
在元素内容区域最前面添加一个伪元素
默认类似于span;添加的内容用content
content只能写文本或者url
可以设置各种样式
:after (h5) (h4是::first-letter)
在元素内容区域最后面添加一个伪元素
默认类似于span;添加的内容用content
content只能写文本或者url
可以设置各种样式


内容生成,可以解决的问题

> 1.外边距溢出

:before{
display:table;
content:"";
}

2.高度坍塌

:after{
display:block;
content:"";
clear:both;
}

二. 弹性布局

是一种布局方式主要解决的问题,摸个元素中所有子元素的布局方式
为布局提供了很大的灵活性

1.弹性布局专有名词

容器: 设置了display:flex的元素,是个父元素
要发生弹性布局元素们的父元素

项目: 要发生弹性布局的元素们
就是容器的子元素

主轴: 项目们排列的方向,叫做主轴
如果项目们横向排列,主轴是x轴
纵向排列,主轴是y轴
排列顺序成为了主轴的起点和终点

交叉轴:永远与主轴方向垂直的一条轴,叫做交叉轴
项目们在交叉轴上的排列顺序,成为了交叉轴的起点和终点

2.语法:

将元素设置为弹性容器,容器所有子元素都变成弹性项目
这些项目都允许按弹性布局的方式排列
display:

值:flex 将块级元素设置为弹性容器
inline-flex 将行内元素设置为弹性容器

元素设置弹性容器后,容器text-align vertical-align失效
项目float,clear失效

3.容器的属性
  • 主轴:
    flex-direction:
    取值:1.row 默认值 主轴为x,起点左侧
    2.row-reverse 主轴为x,起点右侧
    3.column 主轴为y,起点上侧
    4.column-reverse 主轴为y,起点下侧
设置项目换行

flex-wrap:
取值:nowrap 默认值
wrap
wrap-reverse
主轴方向和换行的缩写
flex-flow:direction wrap

4. 定义项目在主轴上的对齐方式

justify-content:
取值:flex-start 默认值,主轴起点
flex-end:主轴终点对齐
center:主轴中心对齐
space-between: 两端对齐(两端无空白距离)
space-around:每个间距大小相等

5.项目们在交叉轴上的 对齐方式

align-items
取值:
flex-start 默认值,交叉轴起点
flex-end:交叉轴终点对齐
center:交叉轴中心对齐
stretch:如果项目不定义高度,项目充满交叉轴

4.项目的属性,设置在某一个项目上,不影响其他项目
1.项目排列的顺序

order:无单位整数
值越小,越靠近主轴起点,默认值是0

2. flex-grow:无单位整数(定义项目放大比例)

如果主轴剩余空间够大,项目将按比例放大(比例不准确),默认值是0(不放大),

flex-shrink:无单位整数 缩小 默认值是 1

主轴空间不够时,项目将按比例缩小(比例不准确)(数字越大缩的越小)
flex-grow:basis 就是计算项目能放大缩小是占据的空间大小

简写: flex: 0( flex-grow) 1(flex-shrink) auto(flex-basis)

某个项目在交叉轴上的对齐方式
align-self (设置某一个项目)

flex-start 默认值,交叉轴起点
flex-end:交叉轴终点对齐
center:交叉轴中心对齐
stretch:如果项目不定义高度,项目充满交叉轴
auto 使用容器设置的align-items的值

三转换

改变元素在页面中的 位置,大小,角度 以及 形状
2D转换,只有x,y
3D转换,添加了Z轴,模拟3D

转换的属性

transform:
取值:一个或者多个转换函数,函数用空格分开

转换原点,对旋转产生影响

transform-origin:
取值:
两个值(x,y):
三个值(x,y,z)
top bottom left right center
数字px
数字%
学习转换就是学习不同的转换函数

2. 2d转换

1.位移(改变元素的位置)
transform:translate()
取值:translate(x)等同于translateX
指定在x轴上的位移
+值往右,负值往左
translateY
指定在Y轴上的位移
+值往下,负值往上
translate(x,y)同时设置x,y轴的位移

2. 旋转

rotate(ndeg)
n:+ 顺时针 -逆时针
注意:旋转原点会影响旋转效果

旋转连坐标一起旋转,会影响旋转后的位移方向

3.缩放,改变元素的大小

scale(数值)
取值:
1.一个值val>1 x轴y轴同时放大
0<val<1 x轴y轴同时缩小
-1<val<0 x轴y轴同时缩小,翻转val<-1 x轴y轴同时放大翻转
2.两个值,分别设置两轴的缩放
3.scaleX(val)单独设置x轴
4.scaleY(val)

4.倾斜

skewX(角度)等同于skew(角度)
让元素向着x轴发生倾斜,实际上改变的是Y轴的角度
n:+y轴是逆时针 -是顺时针
skewY(角度)
让元素向着Y轴发生倾斜,实际上改变的是X轴的角度
n:+x轴是顺时针 -是逆时针
skew(x,y)

  1. 3d转换 3d旋转
① 透视距离

模拟人的眼睛3d转换之间距离,距离不同,看到的效果不同
perspective:px为单位的数字
此属性要添加在3d转换的父元素上

设置一个3D元素的基数位置

perspective-origin:center center;

让转换的子元素保留3D转换 -- preserve-3d:表示所有子元素在3D空间中呈现

transform-style:preserve-3d;
② 3D转转
transform
取值:

1.rotateX(xdeg) 以x轴为中心轴旋转
2.rotateY(ydeg); 以y轴为中心轴旋转
3.rotateZ(ydeg); 以z轴为中心轴旋转
4.rotate3D(x,y,z,deg) x,y,z为0,该轴不参与旋转
大于 0都会参与旋转,但是速度不同

  1. 过渡
    ①什么是过渡

让css值在一段时间内,平缓变化的效果,(两个值之间的变化)

②过度的语法
设定执行过渡的属性
transition-property:
取值:

  • 执行过渡的样式属性
  • 多个属性用空格分开
  • all 所有支持过度的属性都过渡
    支持过度的属性有?

颜色属性
大多数取值为具体数字的属性
阴影
转换
visibility

指定过渡时长

整个过渡效果持续的时间
transition-duration:3s; s/ms

时间曲线函数

transition-timing-function:ease;(默认值)
取值:ease 慢开 加速 慢关
linear 匀速
ease-in 加速
ease-out 减速
ease-in-out 慢开 先加速后减速 慢关
④延迟过渡执行
transition-delay:2s;
⑤过度代码编写位置
写在原来的选择其中,过渡效果有来有回
写在hover中过渡效果,有去无回
简写方式:transition: all(property) 2s(duration) linear(timing-function) 2s(delay);
最简方式:transition:duration
3.使用过度的时机(只有两个关键帧)
两个点的效果,用过渡
必须使用伪类激发

动画

1.什么是动画
多个过渡效果放到一起
可以不使用伪类激发
2.关键帧,来控制动画的每一个状态
3.动画的使用
①创建动画
@keyframes 动画名称{
0%{}
....
100%{}
}
②调用动画
设置调用动画名称
animation-name:动画名称
设置动画执行时间
animation-duration: 时间;
设置动画的时间曲线函数
animation-timing-function:
取值: ease/linear/ease-in/ease-out/ease-in-out
设置动画的延迟
animation-delay:时间;

动画的其他属性

③播放次数
animation-iteration-count:次数;
取值:
1.具体播放次数
2.无限次 infinite
④动画播放顺序
animation-direction:
取值
正常播放 normal 0~100%去播放
reverse 100%~0去播放
alternate: 轮流播放 奇数正着播放,偶数反着播放
⑤简写方式
animation: name duration timing-function delay count direction
⑥动画的填充方式
animation-fill-mode:
取值:
backwards 延迟时间内,填充动画的第一帧
forwards 动画播放完毕后,填充动画最后一针
both 都填
⑦动画的暂停和播放
animation-play-state:
取值:
paused;暂停
running 播放

动画兼容
如果要兼容低版本浏览器,需要在动画声明前加前缀
@keyframes 动画名称{}
@-webkit-keyframes 动画名称{}
@-ms-keyframes 动画名称{}
@-moz-keyframes 动画名称{}
@-o-keyframes 动画名称{}
动画[2]

六. css优化
css优化的目的

1.减少服务器压力
2.提升用户体验

1.css优化的原则

尽量的减少http请求个数
页面的顶部引入css
将css和js放到外部单独文件中

2.css代码优化

合并样式(能写群组就不单独写,用户简写方式,就把单独定义属性).
缩小样式文件大小
减少样式的重写
选择更优质的样式属性值
代码压缩
避免出现空的src和href

七 css reset和normalize.css

什么是css reset

html标签,在各个浏览器中的默认样式不同
为了统一的开发,吧默认样式统一化,这个行为叫css reset
可以自己写,也可以找业内,比较有名的css reset代码
自己写:
内外边距清0,
input去边框和轮廓
a标签下划线
em i不要斜体
ol ul去点
默认字号,字体系列

2.css reset 弊端

市面上css 实现了html默认样式高度一致性
吧不同的浏览器默认样式,进行高度统一
但是这种处理过于霸道,把一些需要保留的默认样式也清除掉了

3.关于css reset优化方案(不是必须)

normalize.css是一种现代的,为html5准备的优质替代方案
保留了一些可以保留的默认样式,而不是霸道的清除
normalize.css相对平和
不讲究统一,关注通用性和可维护性

附加

雪碧图,精灵图

如果页面出现的小图标比较的多
一般不使用img一个一个的
吧说有的图合成在一个
使用背景与背景定位
目的:有效的减少http请求的次数


  1. 1.找到写样式的元素:从外往里,上往下,左往右
    2.尺寸和大体位置
    3.边框黑背景
    4.文本相关所有
    5.微调

  2. https://daneden.github.io/animate.css/

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一.概述Cascading style sheets 层叠样式表作用:html:负责页面结构的搭建,内容的展示...
    栗子树下_阅读 1,222评论 0 0
  • CSS参考手册 一、初识CSS3 1.1 CSS是什么 CSS3在CSS2.1的基础上增加了很多强大的新功能。目前...
    没汁帅阅读 3,796评论 1 13
  • 查看浏览器是否支持CSS3属性:https://caniuse.com/ 1.利用CSS实现三角形和梯形 2.CS...
    X1028阅读 273评论 0 0
  • 本文目录 1.font:综合设置字体样式 2.CSS复合选择器(交集并集后代子代) 3.CSS 三大特性(层叠性继...
    前端辉羽阅读 601评论 0 7
  • (1). 阴影模糊半径与阴影扩展半径的区别:阴影模糊半径:此参数可选,其值只能是为正值,如果其值为0时,表示阴影不...
    Leisure_blogs阅读 1,557评论 0 6