美文网首页
CSS视觉效果

CSS视觉效果

作者: 曼路x_x | 来源:发表于2016-12-18 09:21 被阅读44次

title: CSS视觉效果
date: 2016-12-17
tags: CSS Secrets


0x00 投影的绘画机制

当为一个元素添加 box-shadow 时,我们便会从视觉上得到一个投影的效果。

比如:

#box{
    width: 100px;
    height: 100px;
    background: deeppink;
    box-shadow: 5px 6px 4px rgba(0,0,0,0.5);
}
box-shadow

我们对 div#box 添加了 box-shadow 属性,并指定了三个长度值和一个颜色值。对于这样的用法,我们再熟悉不过了。要得到上图的效果,浏览器渲染引擎其实进行了四步:

  1. 以该元素相同的位置和尺寸,画一个 rgba(0,0,0,0.5) 的矩形。
  2. 把它向右偏移 5px,向下偏移 6px
  3. 使用高斯模糊算法对其进行 4px 的模糊处理。
  4. 模糊后的矩形与原始元素的交集部分会被裁切掉。
box-shaow的绘制原理

所以,从投影绘制的机制来看,绘制的投影其实是在元素的上层的。


单侧投影

box-shadow 鲜为人知的第四个参数,称为 扩张半径。这个参数会根据指定的值去扩大(当指定负值时)或缩小投影的尺寸。比如,一个 -5px 的扩张半径会把投影的宽度和高度各减少 10px (即每边各 5px)。

那么,当应用一个负的扩张半径,而它的值刚好等于模糊半径,那么投影的尺寸就会与投影所属元素的尺寸一致,如果不使用偏移参数来移动它,将看不见任何投影。

这正是我们想要的。

box-shadow: 0px 5px 4px -4px black;

我们给了投影一个正的垂直偏移量,而在另外三侧是没有投影的。

单侧投影

双侧投影

目前为止,还无法指定投影在水平方向上放大,而在垂直方向上缩小,要实现双侧投影的效果唯一的办法就是使用两块投影来达到目的。

box-shadow: 6px 0px 5px -4px yellow,
            -6px 0px 5px -4px green;
双侧投影

未完待续。。。

相关文章

  • CSS视觉效果

    title: CSS视觉效果date: 2016-12-17tags: CSS Secrets 0x00 投影的绘...

  • CSS中的视觉效果

    1.单侧投影 重点:box-shadow的第四个长度参数,扩张半径。 单侧投影: 邻边投影: 双侧投影: 2.不规...

  • [java]25、HTML+CSS

    1、网页的组成 1、HTML:内容结构2、CSS:视觉效果3、JavaScript:网页的逻辑处理 2、标签的书写...

  • CSS新特性介绍

    Time: 20200131 本课程是技术胖的课程笔记。 新特性介绍 CSS3选择器 抛弃图片的视觉效果(不能完全...

  • CSS操作

    CSS与JavaScript是两个有着明确分工的领域,前者负责页面的视觉效果,后者负责与用户的行为互动。但是,它们...

  • CSS3新特性---图解CSS3读书笔记(1)

    强大的选择器CSS3选择器设计类似jQuery 新视觉效果如 圆角、阴影、半透明、渐变背景、图片边框等 背景的变革...

  • 使用CSS滤镜属性filter实现电影、模糊及融合效果

    前言 在处理图片时,若想让一张图像呈现各种不同的视觉效果,可使用CSS中的filter属性,可为元素指定各种滤镜效...

  • DOM模型(八)—— CSS操作

    CSS与JS是两个有着明确分工的领域,前者负责页面的视觉效果,后者负责与用户的行为互动。但是,它们毕竟同属网页开发...

  • CSS透明属性详解(20130917)

    最近流行各种“朦胧感”,找到点透明CSS属性记录一下。 透明往往能产生不错的网页视觉效果,先奉上兼容主流浏览器的C...

  • css3实现3D场景照片墙拖动特效

    本特效由H5+CSS3+JS携手打造,3D场景照片墙,环形,倒影,可拖动打造良好的视觉效果和用户体验。主要使用tr...

网友评论

      本文标题:CSS视觉效果

      本文链接:https://www.haomeiwen.com/subject/xddamttx.html