分享几个css3里面常用的基本属性渐变,2D,动画 您所在的位置:网站首页 css3字体颜色渐变 分享几个css3里面常用的基本属性渐变,2D,动画

分享几个css3里面常用的基本属性渐变,2D,动画

2023-04-07 23:52| 来源: 网络整理| 查看: 265

1. 图片原点

 背景图默认填充的区域是 padding 及 content 区域,我们把左上角的padding起点叫做图片的原点。

图片填充整个盒子

background-size: cover;

图片是否换行

background-repeat: no-repeat;

设置背景图的原点为padding区域 : 默认值

background-origin: padding-box;

设置背景图的原点为border区域

background-origin: border-box;

设置背景图的原点为content区域

background-origin: content-box;

2. 图片裁剪

background-clip: 设置背景图的向外裁剪的区域;默认是border-box 只要超出border区域,则多余的部分会被裁减掉。

默认值:超出border区域会被裁减掉:

background-clip: border-box;

超出padding区域就会被裁减掉:

background-clip: padding-box;

超出内容区域就会被裁减掉:

background-clip: content-box;

注意: 如果想让背景图只呈现在文本上,则需要做以下几件事情:

设置文本颜色为透明:color: transparent; 给background-clip前面加上私有前缀 -webkit-:-webkit-background-clip: text; 3. 文本属性 white-space: pre;

该属性类似于pre标签,加上之后,内容会按照原来的写法来展示

 white-space: nowrap;

文本不换行,使用频次相对较高

text-overflow: clip;

超出部分直接被裁减掉,注意,要想生效,必须添加overflow:hidden;

text-overflow: ellipsis;

 超出部分显示省略号 重点掌握

4. 渐变 4.1 线性渐变 background-image: linear-gradient();

渐变的原理其实就是一张背景图片,但是不需要引入图片的指定url的,而是使用内置的特殊的“图片”。

该属性可以实现渐变效果,默认是从上往下的渐变 background-image: linear-gradient(red, yellow, blue); 复制代码 如果要改变线性渐变的方向,则需要使用关键词来处理 to background-image: linear-gradient(to right, red, yellow, blue); background-image: linear-gradient(to right top, red, yellow); 复制代码 如果要改变线性渐变的方向,还能使用角度来处理,从中间画一条线,旋转30°。 background-image: linear-gradient( 30deg,red, yellow, blue); background-image: linear-gradient(red, yellow, blue); 复制代码 调整开始渐变的位置:这行代码意思是指:50px以前是纯红色,50px以后开始渐变,渐变到100px的时候,是纯黄色;然后继续渐变,150px及以后颜色是蓝色 。 background-image: linear-gradient(red 50px, yellow 100px, blue 150px); 复制代码 重复渐变 background-image: repeating-linear-gradient(red 50px, yellow 100px, blue 150px); 复制代码 4.2 径向渐变

径向渐变:多个颜色之间的渐变,默认是从圆心开始往四周扩散,通常是指圆形或者椭圆形。

径向渐变:径是值半径的意思 background-image: radial-gradient(red, yellow, green); 复制代码 设置圆心在左上角 background-image: radial-gradient(at left top, red, yellow, green); 复制代码 设置圆心为x轴50px,y轴100px background-image: radial-gradient(at 50px 100px, red, yellow, green); background-image: radial-gradient(red, yellow, green); 复制代码 调整渐变形状为正圆 background-image: radial-gradient(circle, red, yellow, green); 复制代码 调整渐变的位置,意义与线性渐变相同 background-image: radial-gradient(red 20px ,yellow 50px, rgba(0,0,0,.4) 100px); 复制代码 5. 2D 5.1 transform(位移)

2d位移可以改变元素的位置:

先给元素加上转换属性 transform 给transform具体的值:

translateX: => 设置水平方向位移,需要指定长度,如果是百分比,则参考自身的宽度;

transform: translateX(100px);

translateY: => 设置垂直方向位移,需要指定长度,如果是百分比,则参考自身的高度;

transform: translateY(50px);

translate :   => 一个值代表水平方向, 两个值代表水平和垂直方向;

transform: translate(100px , 50px);

注意:

位移与相对定位很像,都不会脱离文档流,不会影响到其他元素 与相对定位的区别:相对定位的百分比是参照的父元素,位移是参照的自身 浏览器对位移解析的时候,性能会更好,效率会更高 位移对行内元素无效 配合定位,可以实现元素水平垂直居中

面试点:如何让一个未知宽度和高度的子盒子实现水平垂直居中?

a:使用定位配合位移

父盒子设置相对定位 子盒子设置绝对定位,且 left50%,top50% 子盒子 transform: translate(-50%,-50%)

b:使用 flex布局

父盒子设置flex 父盒子加上 justify-content: center && align-items: center; 5.2 缩放

2D缩放是值: 让元素放大或缩小

使用:

给元素加上transform属性 设置transform的值 scaleX : 设置水平方向的缩放比例,值为一个数字。1表示不缩放,维持原样。大于1等于放大,小于1等于缩小 scaleY : 设置垂直方向的缩放比例,值为一个数字。1表示不缩放,维持原样。大于1等于放大,小于1等于缩小 scale : 同时设置水平和垂直方向 div:hover { transform: scale(1.5); } 复制代码 5.3 旋转

2d旋转:让元素在二维平面内,顺时针或者逆时针渲染

方法:

给元素添加转换属性 transform 编写具体值 rotate  正数是顺时针,负数是逆时针 transform: rotateZ(1deg); 复制代码 5.4 复合写法

这是复合写法,通常如果我们要写2d效果的时候,先写位移,再写缩放,最后再写旋转。否则可能会出现旋转之后中心点位置偏移的问题。

transform: translate(100px) scale(1.3) rotate(60deg); 复制代码 6. 动画

动画:

关键帧: 指在构成一段动画的若干帧中,起决定性作用的那几帧。

使用动画:

定义关键帧 (定义动画); 使用animation来调用动画 动画名字 + 持续时间 是必填的

简单定义动画

@keyframes  : 声明一个动画语法; pgm : 动画名字 可以随便自定义 @keyframes pgm { from { } to { transform: scale(1.5); } } 复制代码

复杂动画定义

@keyframes move2 { 25% { background-color: skyblue; } 50% { background-color: orange; } 75% { background-color: blue; border-radius: 50%; } 100% { background-color: yellowgreen; border-radius: 50%; transform: translate(100px); } } 复制代码

几个必须调用动画的参数

必填: 动画名字 animation-name: move; 复制代码 必填: 持续时间 animation-duration: 2s; 复制代码 设置动画的类型 ,可选 animation-timing-function: linear; 复制代码 设置动画延迟时间, 可选 animation-delay: 0s; 复制代码 设置动画的播放次数 可选:值为number的时候,可以指定动画播放次数,也可以指定为infinite,无限次的意思。 animation-iteration-count: infinite; 复制代码 设置动画方向, 可选  normal默认值  reverse反方向 alternate 先正常再反向 alternate-reverse 先翻转再正常。 animation-direction: normal; 复制代码 设置动画结束的状态 forwards: 动画结束时,保持最终定点状态 backwards 回到最开始状态。 animation-fill-mode: backwards; 复制代码 复合写法 animation: move2 3s linear infinite alternate; 复制代码 设置动画播放状态, running代表播放, paused代表暂停 。 div:hover { animation-play-state: paused; } 复制代码 6.1 练习

利用动画和2d来实现轮播图模型

核心在于控制main这个盒子的滚动,最外层wrapper还是需要保持固定;所以flex要加在mian中。

而且,滚动到最后一个盒子的时候,会有一个盒子的空白距离,所以,把第一个盒子复制一份放到最后,就刚好可以弥补这个空白距离; 当空白距离滚动结束之后,动画也完成了一次循环,所以第一张图又会从起点开始滚动,刚好能够衔接上。

.wrapper { margin: auto; width: 300px; height: 100px; border: 1px solid red; overflow: hidden; } .main { display: flex; animation: move 6s linear infinite; } .box { flex-shrink: 0; width: 300px; height: 100px; } .inner1 { background-image: linear-gradient(yellow,green,skyblue); } .inner2 { background-image: linear-gradient(pink,purple); } .inner3 { background-image: linear-gradient(red, orange); } @keyframes move { from { } to { transform: translateX(-900px); } } 盒子1 盒子2 盒子3 盒子1 复制代码 7. 过渡

transition:  过渡可以在不使用动画的情况下,让元素从一种样式平滑过渡到另一种样式。

特别注意: 哪个元素需要过渡,就加在哪个元素身上,而不是hover;持续时间和需要过渡的元素是必填的。

需要过渡的属性,多个值以逗号分隔。 transition-property: width,background-color; 复制代码 过渡持续时间 transition-duration: 1s; 复制代码 延迟时间 transition-delay: 1s; 复制代码 过渡类型 transition-timing-function: linear; 复制代码 复合写法 transition: all 1s; 复制代码


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有