css3知识总结
边框
|---盒子圆角 border-radius
|---盒子阴影 box-shadow:
背景
|---引入背景 background-image
|---背景尺寸 background-size
|---背景平铺 background-repeat
|---背景位置
|-----位置定位1(background-origin)
|------根据文本位置:content-box
|------根据边框位置:border-box
|------根据内边距位置:padding-box
|------使用这个属性,必须设置背景为no-repeat
|-----位置定位2(background-position)
|------ top rihgt bottom left;background-position:距左多少 距右多少
|---多重背景:逗号分割:background-image:url(images/bg_flower.gif), url(images/border.png);
background-repeat:no-repeat;
文字
|---文本阴影:text-shadow:三个值:分别代表距离左侧、距离上侧、阴影颜色 阴影会显示文字
text-shadow:四个值:分别代表距离左侧、距离上侧、模糊程度及阴影颜色
|---文本溢出属性
|-----overflow: hidden; white-space:nowrap;让文本强制不换行 要先设置这两个属性
|-----text-overflow
|------clip:修剪文本。
|------ellipsis:显示省略符号来代表被修剪的文本
|------自定义(string):自己定义符号,给定的字符串来代表被修剪的文本
|---文本换行属性 word-break:
|-----word-break:break-all 内容长度到200px时自动换行。如果最后是一个完整的长单词,它会把单词截断
|-----word-break:break-word; 会把句末单词完整的放到下一行的开头
颜色之RGBA与透明度opcity
|---R:红 G:绿 B:蓝 alpha:透明度的参数
|---RGB的取值范围是0~255/0~100% alpha的取值范围是0~1 不可为负值
|---透明度 opcity:取值范围0~1
渐变颜色
|---background-image: linear-gradient(to bottom,#fff,red);
|---说明:参数说明:第一个参数指定渐变方向 to top,to bottom,to right,to left,to top left......
第二和第三个参数:是指定开始与结束的颜色值 可以有多个颜色background-image: linear-gradient(to bottom,#fff,black,red);
旋转
|---2D
|-----transform:
|------rotate()——进行旋转,括号内部写旋转角度,默认顺时针旋转.允许负值,元素将进行逆时针旋转
|------translate()——从当前位置进行移动,括号内为x,y值。允许负值,将反方向移动
transform:translate(30px,30px):向右30px,向下30px移动,原来位置保存
|------scale()——改变原始尺寸,按照倍数变化,括号内为width、height的倍数
transform:scale(2,4):宽度变为2倍,高度变为4倍
|------skew()——水平、垂直方向进行扭转,括号内是水平扭转角度、垂直扭转角度
transform:skew(30deg,0deg);将横向扭转30度的div,内部文字会跟随扭转
transform:skew(0deg,30deg);将纵向扭转30度的div,内部文字会跟随扭转
transform:skew(30deg,30deg);将横向扭转30度、纵向扭转30度的div,内部文字会跟随扭转
|---3D
|-----transform
|------rotateX()——沿水平X轴进行垂直的翻转,括号内写转动度数
|------rotateY()——沿垂直Y轴进行水平的翻转,括号内写转动度数
|---2D与3D的区别
|-----2D转换跟3D转换的区别:2D转换仅仅在于平面,文字可以看出并没有反过来
3D转换是相当于镜面效果的,进行了前后空间(涉及到了Z轴)的占用进行的翻转。
过度
|---transition:专门应对颜色、长度、宽度、位置等变化的过渡
#aaa{ width:200px; height: 200px; border: 1px solid red; transition:2s; } #aaa:hover{ width: 500px; }
效果是鼠标移上之后框会有过程放大
动画
|---1、@keyframes规则用于创建动画。在@keyframes中规定某项CSS样式,就能创建由当前样式逐渐改为新样式的动画效果
2、使用animation进行动画捆绑。两个值:动画名称、时长
3、我们一般情况下使用0%~100%来规定动画发生的时机。或者使用关键词from...to...,效果等同于0%~100%。
4、加上一个infinite值就可以无限执行了
5、ease——默认开始慢慢加速,结束时慢慢减速。
linear——默认始终使用相同速度运行。
alternate——交替执行(也可以成为正反执行)
div{ width:300px; height:300px; background:black; position:relative;/*由于需要进行位置改变,所以增加了position属性*/ animation:myfirst 5s infinite alternate;/*动画捆绑,两个值,动画名称、时长,加上一个无限执行,交替执行*/ } @keyframes myfirst {/*改变位置和背景颜色*/ 0% {background:red; border-radius:90px; box-shadow:-35px 0px 15px gray; left:0px; top:0px;} 25% {background:yellow; border-radius:0px; left:400px; top:0px;} 50% {background:blue; border-radius:90px; left:400px; top:300px;} 75% {background:green; border-radius:0px; box-shadow:0px 30px 15px gray; left:0px; top:300px;} 100% {background:red; border-radius:20px; left:0px; top:0px;} }
弹性盒子
|--- CSS3 的一种新的布局模式。
|----- display: flex;考虑浏览器兼容问题:定义为弹性盒子
|-----弹性子元素在父容器中的位置排列(横向、纵向)
|------flex-direction
|------- row:横向从左到右排列(左对齐),默认的排列方式。
|------- row-reverse:反转横向排列(右对齐,从后往前排,最后一项排在最前面。
|------- column:纵向排列。
|-------column-reverse:反转纵向排列,从后往前排,最后一项排在最上面。
|-----弹性盒子的子元素换行方式
|------flex-wrap:nowrap - 默认, 弹性容器为单行。该情况下弹性子项可能会溢出容器。
wrap - 弹性容器为多行。该情况下弹性子项溢出的部分会被放置到新行,子项内部会发生断行
wrap-reverse -反转 wrap 排列
|-----弹性子元素在父容器中的对齐方式
|------横向对齐:justify-content:
|------纵向对其:align-items:
|-----弹性子元素如何分配空间
|------flex:
.flex-container { display: flex; width: 400px; height: 250px; } .item1 { flex: 2; } .item2 { flex: 1; } .item3 { flex: 1; }
|-----子元素的属性
|------排序:order
|------边距:margin
|------纵轴对齐方式:align-self