一、 边框线条动画效果展示
正方形
长方形
1.1 实现思路
内部一个 DIV 盒子做矩形,外层用伪类生成两个 DIV 盒子做线条,需要比里面的 DIV 盒子大,动画效果开始执行时,使用 clip 属性对外层的两个 DIV 盒子进行截取,形成半折角,为了外层两条线条对称环绕,动画开始时使用 animation-delay
延迟 1/2
时间就可以了。
1.2 正方形代码
1 |
|
1.3 长方形代码
动画详细数值计算看注释。
1 |
|
二、属性详解
1.1 Clip属性
通过对元素进行剪切来控制元素的可显示区域,默认情况下,元素是不进行任何剪切的,但是也有可能剪切区域也显示的设置了clip属性。
1 | .selector { |
clip属性只接受三个不同的属性值:
<shape>
:shape是一个函数功能,当使用仅使用rect()属性;
auto:这是一个默认值,clip设置auto值和没有进行剪切是一样的效果;
inherit:继承父元素的clip属性值。
clip属性只能在元素设置了“position:absolute”或者“position:fixed”属性起作用。clip无法在设置“position:relative”和“position:static”上工作。
1.2 Rect()使用
rect()需要设置四个值:top, right, bottom和left。他们之间需要用逗号隔开,而且rect()属性值和margin、padding以及bodrder具有一样的标准,遵循TRBL顺时针旋转的规则。
1 | clip: rect(<top>, <right>, <bottom>, <left>); |
rect()和 <top>
和 <bottom>
指定偏移量是从元素盒子顶部边缘算起;<left>
和 <right>
指定的偏移量是从元素盒子左边边缘算起。
例子:
1 | p#one { clip: rect(5px, 40px, 45px, 5px); } |
上面的例子是在50X55px的长方形盒子中是行剪切,得到虚线的长方形。
end
部分转载