css3-2

css读取顺序从右往左

3D学习

景深:指的是物体近大远小的效果
是一个不可继承属性,但他作用于它的后代元素(不做用于本身)
原理:景深越大,灭点越远,元素变形越小,反之
perspective:depth深度的意思用px perspective:100px 一定要在一个包裹器上
另一种写法作用于本身transform:perspective()使用这种写法 perspective必须放在首位不然没有效果
//例子 transform:perspective(perspective rotate(360deg))
:hover{transform:perspective(perspective rotate(0deg))}//一般不会用
灭点:指的是三D图形各延申线所产生的相交点,透视点的消失点
perspective-origin(视角的位置,默认值为50% 50%)
transform只能用在块级元素
animation动画
/动画内的属性/
animation-name: demo;
animation-duration: 2s;/不能为负值 设置时间/
/animation-timing-function: ease;先加速后减速/ timing-function 作用于每两个关键帧之间,而不是整个动画 step
steps函数,它可以传入两个参数,第一个是一个大于0的整数,他是将间隔动画等分成指定数目的小间隔动画,然后根据第二个参数来决定显示效果。
第二个参数设置后其实和step-start,step-end同义,在分成的小间隔动画中判断显示效果。可以看出:steps(1, start) 等于step-start,steps(1,end)等于step-end
animation-timing-function: linear;/匀速/
animation-delay: 3s;/延迟时间 这个是动画外的属性/
/* transform: translate3d(-50%,-50%,0);设置垂直水平居中的*/
animation-iteration-count: 3;/转动次数,只管动画内的属性值 所以上面只执行延迟一次 重复的也是关键帧/
animation-direction: normal;/改变方向有四个属性 反转的是关键帧 默认值是normal alternate轮流反转/
/元素在动画外的状态 from之前 to之后/
animation-fill-mode: backwards;
/backwards from之前的状态与from的状态保持一致/
/foreards from之后的状态与to的状态保持一致/
/both backwards+forwards/
animation-play-state: paused;/控制动画是否暂停 默认值为running/
斯基兔的实现
#demo1{
position: absolute;
left: 50%;
top: 50%;
transform: translate3d(-50%,-50%,0);
width: 48px;
height: 48px;
background-image:url(animation.png);.8s执行from到to
animation:tjs .8s steps(12,end) infinite;/steps将from到to分成12个阶段来完成,而不是整个keyframes/
}
@keyframes tjs{
from{
background-position: 0 0;
}
to{
background-position: -576px 0;
}
}

flex弹性布局

		弹性盒模型,分老版(box)与新版(flex)
		要分清flex容器(就是包裹器)
		flex项目  项目永远在主轴的正方向上排列
		**老版主轴与侧轴分别是哪一根**以及**主轴排列方向**
		-webkit-box-orient:horizontal 主轴是水平方向上的那个
		-webkit-box-orient:vertical 主轴是垂直方向上的那个
		-webkit-box-direction:reverse//决定主轴方向(富裕空间跟他没关系)
		**新版主轴与侧轴分别是哪一根**
		给容器加上display:flex以及flex-direction:row 行就是水平上的
		flex-direction:column-reverse列垂直方向上的  决定主轴排列方向也是这个属性(在正方向上排列)reverse(从右往左)normal从左往右
		**老版富裕空间管理(主轴)****只决定富裕空间的位置,不会给项目分配空间**
		**-webkit-box-pack: justify;
			/*start 富裕空间在最右边(x) 最下边(y轴)
			 * end 富裕空间在最左边(x)	最上边(y轴)
			 * center 在两边
			 * justify 在项目之间
			 /**
			 **老版富裕空间管理(侧轴)**
			 -webkit-box-align:start 富裕空间在最下 富裕空间在最右边(主轴x) 最下边(主轴是y轴)
			 end		富裕空间在上面
			 center	富裕空间在两边

		**新版本富裕空间管理(主轴)**
			justify-content:flex-start 切记富裕空间在主轴的正方向
			justify-content:flex-end 富裕空间在主轴反方向
			center 富裕空间在两边
			space-between 富裕空间在项目之间
			space-around(box老版没有) 富裕空间在项目两边
			
			**新版本富裕空间管理(测轴)**
			align-items
			stretch拉伸所有行/列来填满剩余空间,剩余空间平均的分配给每一行/列
			flex-start 切记富裕空间在侧轴的正方向
			flex-end 切记富裕空间在侧轴的反方向
			center 富裕空间在项目两边(box没有)
			baseline 按基线对齐
			**富裕空间管理 只决定富裕空间的位置,不会给项目去分配空间**
			
			**弹性空间管理是项目上的属性**
			老版本-webkit-box-flex:0 弹性因子
			弹性空间管理是把主轴上富裕空间按比例分配到项目上
			#wrap{
			width: 300px;
			height: 400px;
			border: 1px solid;
			display: -webkit-box;
		}
		.item{
			width: 50px;
			height: 50px;
			background: pink;
			text-align: center;
			-webkit-box-flex: 1;//每个item分一个比例//老版本
		}
		
		**新版本**
		弹性空间管理flex:0默认值
		#wrap{
			width: 300px;
			height: 400px;
			border: 1px solid;
			display: flex
		}
		.item{
			width: 50px;
			height: 50px;
			background: pink;
			text-align: center;
			flex-grow: 1;//与上面方法一样 弹性因子
		}
		
		**flex容器新增版本**
		flex-wrap nowrap 默认值 规定灵活项目不拆行或不拆列(相当于无侧轴) wrap必要时拆行拆列 wrap-reverse 必要时拆行拆列但是以相反的顺序
		flex-flow 属性是设置“flex-direction”和“flex-wrap”的简写 默认值row nowrap 不可继承
		控制主轴和侧轴的位置和方向
		当单行单列时,align-items
		多行多列时,富裕空间的管理,会把所有行,列看成一个整体align-content
		
		**新版本项目新增**
		order将项目进行排序,数值越小越靠前
		flex-basis:伸缩规则计算的基准值(默认拿width或height的值)
		align-self自己管理自己的富裕空间 auto.....有六个值
		flex-shrink:收缩因子(默认值为1)


6.伸缩规则
	flex-basis(默认值为auto)
	flex-grow(默认值为0)
		可用空间 = (容器大小 - 所有相邻项目flex-basis的总和)//当flex-basis指定值的时候富裕空间与可用空间不相同
		可扩展空间 = (可用空间/所有相邻项目flex-grow的总和)
		每项伸缩大小 = (伸缩基准值flex-basis + (可扩展空间 x flex-grow值))
	flex-shrink(默认值为1)
		   --.计算收缩因子与基准值乘的总和  
		   			var a = 每一项flex-shrink*flex-basis之和
		   --.计算收缩因数
		                     收缩因数=(项目的收缩因子*项目基准值)/第一步计算总和   
		             var b =  (flex-shrink*flex-basis)/a
		   --.移除空间的计算
		                      移除空间= 项目收缩因数 x 负溢出的空间 
		             var c =    b * 溢出的空间      

7.侧轴富裕空间的管理
	单行单列
		align-items
		align-self(优先级高)
	多行多列
		align-content(优先级比上面的高)
练习 http://flexboxfroggy.com/
8.flex的简写属性
	flex:1  (flex-basis:0% flex-grow:1 flex-shrink:1)**建议初学者不要用语法糖**
	等分布局	

#wrap{
width: 100px;
height: 400px;
border:1px solid black ;
display: flex;

		}
		#inner{
			width: 50px;
			height: 50px;
			background:pink;
			flex-grow: 1;
			flex-basis: 0;/*将五个项目元素都等于0,此时富裕空间400,再一一分配给五个项目元素*/
			/*flex-shrink: 0;当flex-basis等于0时,他不起作用
		}

响应式布局

###响应式布局核心 CSS3媒体查询选择器
@media 媒体类型 and(关键字) 带条件的媒体属性 and 带条件的媒体属性 {
//规则
}

媒体类型
	all
	screen
	print
	
媒体属性
	
	width:浏览器的窗口尺寸
	device-width:设备尺寸
	device-pixel-ratio(必须加webkit前缀):像素比
	pc端像素比为1
	手机端具体看参数
		---以上三个媒体属性可加 min 和 max 前缀
				min:最小值为谁
				max:最大值为谁
	
	横竖屏切换
		orientation:landscape(横屏)
		orientation:portrait (竖屏)
关键字
	only:处理浏览器兼容问题,让老的浏览器失效
	and:连接一条查询规则,一般连接媒体类型与媒体属性
	,:连接多条查询规则 两条数据的时候相当于或的意思
	not:取反
	多列布局
	#wrap{
			border: 1px solid;
			width: 600px;
			margin: 0 auto;
			/*column-width:100px;*/ 栏目宽度
			column-count:3;栏目列数
			column-gap:40px;栏目间距
			column-rule:1px solid red;栏目分割线
		}

预编译处理器less
less是一种动态样式语言,属于css预处理器的范畴,它扩展了css语言,增加了变量,MIxin,函数等特性,使css更维护和扩展
less既可以在客户端运行,也可以借助node.js在服务端运行
less编译工具-----koala
less注释
以//开头的注释,不会被编译到css的文件中
以/**/包裹的注释会被编译到注释中
less中的变量
使用@来申明一个变量:@pink:pink;
1.作为普通属性值来使用:直接使用@pink
2.作为选择器和属性名:@{selector的值}的形式
3.作为URL:@{url}
4.变量的延迟加载
.class{
@var:1;
.brass{
@var:2;
three:@var;//3,变量会延迟加载,等.brass执行完在加载
@var:3;
}
one:@var
}*/
less中的嵌套规则
1.基本使用规则
2.&的使用

less混合
混合是将一系列属性从一个规则集引用到另一个规则集
1.普通混合#XXX
2.不带输出的混合#XXX()
3.带参数混合#XXX(@X)
4.带参数且有默认值的混合#XXX(@X:10px)
5.带多个参数的混合
6.命名参数@X:10px
7.匹配模式:相同的放在一个结果集里面#triangle(),再定义相同的名字把不相同的放进去#triangle(参数),
8.argument变量
.border(@1,@2,@3){
border:@arguments;
}
.wrap>.inner{
.border(10px,soild,black);
}
less运算
简单的加减乘除计算
less继承
继承实质上将.father选择器和#test组合成一个选择器,声明块使用.father的
all:继承所有和.father相关的声明块(切记父类不能定义混合)

#test{
&:extend(.father(一个父类))
}
性能比混合好,但没有混合灵活
.juzhong {
position: absolute;
left: 0;
right: 0;
bottom: 0;
top: 0;
margin: auto;
}

继承.less主文件
@import “mixin/conter-extend.less”;
.wrap{
position: relative;
border: 1px solid;
width: 300px;
height: 300px;
margin: auto;
.inner:extend(.juzhong){/继承不能不能用参数形式的/

    &:nth-child(1){
        width: 100px;
        height: 100px;
        background: red;
    }
    &:nth-child(2){
        width: 200px;
        height: 200px;
        background: yellow;
    }
}

}
2.less的避免编译
~“不会被编译的内容”,变量在less中属于块级块级作用域,延迟加载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值