CSS中translate(-100%)和left:(-100%)区别

html-css07

CSS中translate(-100%)和left:(-100%)区别,第1张

在对元素实现显示位置时,经常会用到定位position或者translate属性。

在当子元素的width和height未知时,可以通过设置translate属性来进行水平垂直居中。

在translate函数中的百分比的计算是通过该元素的content,padding,border为标准来计算的。

在使用translate或者position都会使元素产生位移,其中的区别在于 offsetLeft 和 offsetTop 属性上

offsetLeft : 258

test.html:31 offsettop : 108

offsetLeft : 208

test.html:31 offsettop : 108

使用 translate 的offsetTop和 offsetLeft 与没有产生位移的元素没有区别,这offsetTop和 offsetLeft 的值都是 固定不变 的。

offsetLeft :8

test.html:29 offsettop : 8

offsetLeft :8

test.html:29 offsettop : 8

代码如下:

扩展资料

关于CSS固定某个div始终位于页面右侧主要的positon属性介绍:

该属性规定元素的定位类型,这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型。相对定位元素会相对于它在正常流中的默认位置偏移。

可能的值:

(1)absolute。生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

(2)fixed。生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

(3)、relative。生成相对定位的元素,相对于其正常位置进行定位。因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。

(4)、static。默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。 

(5)、inherit。规定应该从父元素继承 position 属性的值。

CSS的动画过程中可以使用贝塞尔曲线等函数指定缓动的动画动作,还可以指定过渡中的每一步骤的状态,这种应用场景通常在创建定格动画的时候,比如一个DOM元素需要展示不同的图组动画,那么前端可以将多个动画图组存放到一个文件夹中,然后通过设置定位,让元素每次显示其中的一个图像。

我们可以尝试在网上找一个动画组的图片。

如果只使用 background-position 属性来实现背景动画,如果使用线性或缓动过渡,那么背景图片只会滑动,无法构成动画,因此,我们使用 steps() 步进函数通过将动画组图片拆解为多个步骤下发出去来完成过渡。

这里的 steps(6, start) 函数指的是“把过渡过程切分为6个不同的步骤,在每一次开始时改变属性”。加上开始的状态,就这样创建了7个帧。

一般steps(6)会在每一步结束时改变属性,但也可以通过传入start或者end作为第二个参数进行说明来明确的指定。

同时需要对步进函数进行声明的是:在完成过渡后,指令结束也就是指鼠标移开的话,过渡则会反向发生,反转的动画仍有6个步骤,这几个步骤不会与原来的背景位置吻合,也就是说当鼠标移开时,会产生动画错乱。

因此后面几种过渡技术可以相对的避免这种情况发生: