博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CSS3 高级技术
阅读量:5789 次
发布时间:2019-06-18

本文共 1886 字,大约阅读时间需要 6 分钟。

盒阴影容许在元素的内部或者外部创建盒状的阴影效果。它们遵循相同的语法:水平偏移值、垂直偏移值、模糊距离、阴影尺寸,以及阴影颜色。.shadow{ box-shadow:0 3px 5px #444;}默认的box-shadow是设置在元素外部的。另外一个可选关键词inset容许在元素内部使用box-shadow。box-shadow属性可以用于建立一个Inset阴影。使用的语法和普通盒阴影效果唯一的区别是,在前头添加了Inset关键字。.inset{ box-shadow: inset 0 0 40px #000;}所有的功能和之前的是一致的,但是inset声明让浏览器把阴影设在了元素的内部。 多重阴影:和text-shadow一样,可以添加多个box-shadow。使用逗号分隔box-shadow,它们会从底部到顶部(从最后一个到第一个)的顺序被添加。在代码越接近顶层的效果在浏览器展示的时候也越接近顶层。

线性渐变语法 linear-gradient的最简表达方式:

.linear-gradient{
background:linear-gradient(red,blue);}

一般而言,渐变将从设定的方向的反方向开始。当没有设置方向的时候,渐变会默认从顶部到底部。

.line-gradient{
background:linear-gradient(to top right,red,blue); }

  渐变的方向设定为顶部右侧。那么它会从底部左侧开始从红色渐变为蓝色。也可以在第一个参数中写角度。45deg。也可以让渐变效果从不可见的区域中开始。例如:linear-gradient(red -50%, blue);这样渐变会从容器内部不可见的地方就开始渲染。  

  渐变效果中的色标是用逗号进行分隔的。第一部分是颜色,第二部分是颜色的位置。

  要兼容不支持背景渐变效果的浏览器,只需要在之前定义一个背景颜色就可以了。

  在CSS里建立一个径向渐变也是十分简单的。效果一般是从一个中心发散成为圆形或者椭圆形的渐变效果。

  CSS滤镜

  box-shadow有一个显而易见的问题。顾名思义,元素的阴影只能是矩形。然而这并不是想要的结果。我们可以用CSS滤镜来解决这个问题。CSS滤镜是FEML1文档中的一部分。它的支持度并没有box-shadow那么高,但是在渐进增强的方式依然十分不错。如果浏览器不支持滤镜,那么它会将其忽略。

.filter-drop-shadow{
filter:drop-shadow(8px 8px 6px #333);}

  在filter属性后我们首先要声明使用哪种滤镜。drop-shadow和box-shadow拥有相似的语法;X方向偏移量、Y方向偏移量、模糊大小、阴影尺寸和颜色(尺寸和颜色都是可选的)。

  可用的CSS滤镜。filter:url('./img/');顶一个SVG滤镜来使用。filter:blur(3px);使用一个简单的长度值。filter:brightness(2):使用从0到1的值或者从0%到100%的值。filter:contrast(2):对比度。值也是0到1。filter:drop-shadow(4px 4px 6px #333):先前提到过。filter:grayscale(.8):使用从0到1或者从0%到100%的值来表示元素灰度化的程度。filter:hue-rotate(25deg):使用0度到360度表示颜色在色轮上的变化角度。filter:invert(75%):使用从0到1的值表示元素中反色的程度。filterLopcaity(50%):使用从0到1的值来改变元素的透明度。这和熟悉的opcity属性是相似的。滤镜是可以多个同时使用的额,这让透明效果可以和其他滤镜效果结合在一起。可以轻松地使用多个滤镜:用空格分隔它们即可。

  CSS性能的警告

  “括号外的决定了页面的架构,括号内的决定了页面的性能。-Ben Frain”

  一些聪明、昂贵的CSS属性会让页面慢下来。它们给浏览器带来了极高的负荷。这是浏览器讨厌做的繁重活。

  那些在渲染前必须进行计算工作。举个例子,一个是只有单一背景变色的标准DIV容易,另外一个是在多种渐变背景上叠加的一幅半透明的图像,后者必然更加昂贵。因此要慎重的使用滤镜效果。

转载于:https://www.cnblogs.com/wlxll/p/8418917.html

你可能感兴趣的文章
Open Graph Protocol(开放内容协议)
查看>>
模块化(1):基本思路
查看>>
Ubuntu18.04中配置QT5.11开发环境
查看>>
Exception的妙用
查看>>
基于浏览器的开源“管理+开发”工具,Pivotal MySQL*Web正式上线!
查看>>
JavaScript(五):变量的作用域
查看>>
知识图谱在互联网金融中的应用
查看>>
MySQL 到底能不能放到 Docker 里跑?
查看>>
wpf 自定义窗口,最大化时覆盖任务栏解决方案
查看>>
【docker】关于docker 中 镜像、容器的关系理解
查看>>
information_schema系列五(表,触发器,视图,存储过程和函数)
查看>>
瓜子二手车的谎言!
查看>>
[转]使用Git Submodule管理子模块
查看>>
DICOM简介
查看>>
Scrum之 Sprint计划会议
查看>>
List<T> to DataTable
查看>>
[Java]Socket和ServerSocket学习笔记
查看>>
stupid soso spider
查看>>
svn命令在linux下的使用
查看>>
There is insufficient system memory to run this query 错误
查看>>