本文分2部分:
参考文章:
知识点:
参考文章:
知识点:
参考文章:
知识点:
参考文章:
知识点:
- transition使用简单,可以作用到css大多数属性上;transition只有一个时间段动画效果;transition不能控制动画次数,播放方向(正向还是逆向);
- animation使用稍微复杂,但是功能强大;animation可以有好几个时间短动画,可以循环播放等控制播放次数及播放方向;
- transition可以实现的,animation一定可以实现,反之不然;可以理解为transition是animation的一个语法糖实现。
参考文章:
知识点:
参考文章:
知识点:
所谓CSS组件就是按照约定的DOM结构+组件class,即可实现组件展示效果,与js无关。现在有很多前端UI,比如:Bootstrap,妹子UI,layui就有很多CSS组件,甚至目前流行的前端3剑客:angular, react, vue都有很多对应的css组件。比如:栅格布局;导航、面包线、选项卡;表单、按钮;徽章、引用块等。除此之外,实际项目中我们也会积累一些自主的css组件和特效。
.table .box {position: relative; width: 120px; height: 90px; text-align: center; line-height: 90px; background: #2F4056; font-size: 14px; color: #fff;}
.table .box::before { content: ''; position: absolute; }
.table .arr-l::before { top: 30px; left: -10px; border-top: 10px solid transparent; border-bottom: 10px solid transparent; border-right: 10px solid #2F4056; }
.table .arr-l2::before { top: 30px; left: -10px; border-bottom: 10px solid transparent; border-right: 10px solid #2F4056; }
.table .arr-r::before { top: 30px; left: 120px; border-top: 10px solid transparent; border-bottom: 10px solid transparent; border-left: 10px solid #2F4056; }
.table .arr-r2::before { top: 30px; left: 120px; border-top: 3px solid transparent; border-bottom: 12px solid transparent; border-left: 12px solid #2F4056; }
.table .arr-b::before { top: 90px; left: 60px; border-left: 10px solid transparent; border-right: 10px solid transparent; border-top: 10px solid #2F4056; }
.table .arr-t::before { top: -10px; left: 50px; border-left: 10px solid transparent; border-right: 10px solid transparent; border-bottom: 10px solid #2F4056; }
<table class='table table-bordered'>
<tr>
<td><div class='box arr-l'>arr-ldiv>td>
<td><div class='box arr-l2'>arr-l2div>td>
<td><div class='box arr-r'>arr-rdiv>td>
<td><div class='box arr-r2'>arr-r2div>td>
<td><div class='box arr-t'>arr-tdiv>td>
<td><div class='box arr-b'>arr-bdiv>td>
tr>
table>
.box{position: relative; width: 101px; height: 81px; text-align: center; line-height: 80px;}
.box-arrow .rect {width: 100%; height: 100%; border: 1px solid #666; background: rgba(0, 0, 255, 0.6)}
.box-arrow .line {display:block; font-size:0; line-height:0; position:absolute; z-index:9}
.box-arrow .hline{width:116px; height:0; top: 40px; left: -8px; border-top:1px solid #666; }
.box-arrow .vline{width:0px; height:96px; top: -8px; left: 50px; border-left:1px solid #666; }
.box-arrow .arrow {position: absolute; display: block; width: 5px; height: 5px; text-indent: -999px; transform: rotate(45deg);}
.box-arrow .arrow-t { left: 48px; top: -8px; border-left: 1px solid #666; border-top: 1px solid #666; }
.box-arrow .arrow-b { left: 48px; bottom: -8px; border-right: 1px solid #666; border-bottom: 1px solid #666;}
.box-arrow .arrow-l { left: -8px; top: 38px; border-left: 1px solid #666; border-bottom: 1px solid #666; }
.box-arrow .arrow-r { right: -8px; top: 38px; border-right: 1px solid #666; border-top: 1px solid #666; }
<div class="box box-arrow">
<div class="rect">box1div>
<span class="line vline">span>
<span class="line hline">span>
<span class="arrow arrow-t">span>
<span class="arrow arrow-b">span>
<span class="arrow arrow-r">span>
<span class="arrow arrow-l">span>
div>
滤镜通常用于调整图像,背景和边框的渲染,以实现一些特殊视觉效果,如:模糊滤镜、灰度滤镜、透明度滤镜、增强滤镜等。
关于滤镜具体说明,请参考MDN Filter,我们只要知道碰到特殊场景可以使用某些滤镜即可,如之前的汶川大地震,我们就需要使用灰度滤镜将网页变灰,常用滤镜列表如下:
- 模糊滤镜,filter: blur(5px);
- 明暗度滤镜,filter: brightness(0.4);
- 对比度滤, filter: contrast(200%);
- 阴影效果滤镜,filter: drop-shadow(16px 16px 20px blue);
- 灰度滤镜,filter: grayscale(50%);
- 色相旋转滤镜,filter: hue-rotate(90deg);
- 反转图像滤镜,filter: invert(75%);
- 透明度滤镜,filter: opacity(25%);
- 转换图像饱和度filter: saturate(30%);
- 将图像转换为深褐色,filter: sepia(60%);