记录:CSS3 模糊效果

html-css08

记录:CSS3 模糊效果,第1张

最近在写活动页面遇到一个效果,在黑色透明蒙层后面的元素要有模糊,毛玻璃的效果,最初想到的就是 filter: blur(2px) ,直接在元素上使用,但是整个子元素都被模糊了,而且蒙层的背景并没有效果,经过百般搜索和尝试,发现还有一个属性可以实现专门针对有透明度的元素做模糊的效果,而且还不会影响到子元素的展示,它就是 backdrop-filter: blur(3px) ,完美的实现了设计稿的要求。

下面就来看看这两个属性的区别,遇到的问题以及解决方案。

filter CSS属性将模糊或颜色偏移等图形效果应用于元素。滤镜通常用于调整图像,背景和边框的渲染。

想要模糊图像或者某个不带透明度的元素,可以直接在元素上加 filter: blur(2px) ,如果这个元素下面有子元素,这样写子元素也会被模糊,解决方法是使用伪元素加定位效果实现:

backdrop-filter CSS 属性可以让你为一个元素后面区域添加图形效果(如模糊或颜色偏移)。 因为它适用于元素 背后 的所有元素,为了看到效果,必须使元素或其背景至少部分透明。

所以给蒙层的后面添加模糊的效果,可以直接在蒙层元素上使用 backdrop-filter: blur(2px)即可。

这两个属性的使用可以详细的参考 mdn上的描述:

backdrop-filter

filter

属性:一个最多可指定四个border-*-radius属性的 符合属性 ,这个属性允许你为元素添加圆角边框!

语法:border-radius:1-4 length|% / 1-4length|%

【length可为任意长度单位,比如px、em。

当使用%的时候,相对的不是字体的大小而是对应边的长度的百分比,例如border-top-left-radius:50%,那么左上角的圆角在左边的弧度是边框左边长度的50%、在上边的弧度是边框上边长度的50%;

因此如果设置border-radius:50%,那么边框将会变为一个椭圆】

兼容性:IE9+、Firefox4+,Chrome,Safari5+,Opera

-------------------------------------------------

CSS3指定每个圆角:

多值:

border-radius(四个值):左上角 右上角 右下角 左下角

border-radius(三个值):左上角 右上角和左下角 右下角

border-radius(两个值):左上角和右下角 右上角和左下角

border-radius(一个值):四个圆角值相同

border-top-left-radius:定义了左上角的弧度

border-top-right-radius:定义了右上角的弧度

border-bottom-left-radius:定义了右下角的弧度

border-bottom-right-radius:定义了左下角的弧度

box-shadow属性:可以设置一个或多个下拉阴影的框

语法:

box-shadow:h-shadow(水平位置偏移量)允许负值。必写;

v-shadow(处置位置偏移量)允许负值。必写;

blur(模糊距离)可选;

spread(阴影尺寸)可选;

color(阴影颜色)可选;

inset(内部阴影)可选;扩展属性,正值缩小,负值增大

box-shadow: 10px(横向,正值往右,负值往左) 10px(纵向,正值往下,负值网上) 10px(模糊,从边框到内容,完成渐变模糊) 10px(扩展,四周边界往外扩展10px) yellow(阴影颜色)

border-image

属性:使用border-image-*属性来构建美丽的可扩展按钮

语法:border-image:source slice width outset repeat;

兼容性:IE不兼容、Firefox、Chrome、Safari6+、Opera不兼容

-------------------------------------------------

border-image-source属性

border-image-source属性指定要使用的图像,而不是由border-style属性设置的边框样式

语法

border-image-source:none;

border-image-source:url("...");

-------------------------------------------------

border-image-slice属性

border-image-slice属性指定图像的边界向内偏移

语法

border-image-slice:number|%|fill;

-------------------------------------------------

border-image-width属性

brder-image-width属性指定图像边界的宽度

语法

border-image-width:number|%|auto;

-------------------------------------------------

border-image-outset属性

border-image-outset用于指定在边框外部绘制border-image-area的量

语法

border-image-outset:length|number;

-------------------------------------------------

border-image-repeat属性

该属性用于图像边界是否重复(repeated)、拉伸(stretched)或铺满(rounded)

语法:border-image-repeat:stretch|repeat|round|initial|inherit;