-css3高级技术(p)

本文详细介绍了CSS3的一些高级特性,包括box-shadow实现元素阴影、box-reflect创建倒影、text-shadow文本阴影、text-stroke文字描边、gradient线性与径向渐变、border-image背景图片边框、border-radius圆角、filter滤镜效果、transition过渡动画、transform 2D/3D变换以及如何使用will-change开启GPU加速。通过实例和代码演示,帮助开发者深入理解和应用这些CSS3特性。
摘要由CSDN通过智能技术生成

layout: post
title: “CSS3高级技术”
categories: css
tags: css3
excerpt: 这篇文章是写一些css3常用的高级特性的,很好用

对于这些css3属性,在用百分数设置值的时候,都是相对于元素自身的宽高设置的

一、box-shadow(是给元素块添加周边阴影效果影)投影

box-shadow的原理是:在元素的原位置模一个和原元素一样大的阴影,然后再为这个阴影设置其他一些东西。

(1)浏览器支持: IE9+、Firefox 4、Chrome、Opera 以及 Safari 5.1.1

(2)语法:

box-shadow: x-shadow y-shadow blur spread color inset;

x-shadow	必需。水平偏移值。允许负值。	
y-shadow	必需。垂直偏移值。允许负值。	
blur(模糊)	可选。模糊距离。这个值实际上是指,阴影的发散距离,即从阴影有颜色到变成透明的距离。	
spread(范围)	可选。阴影尺寸。这个值实际上是加宽阴影的宽度,如果
                      已经设置border-radius,那么展现出来的阴影也将是圆角效果。
                      即,这个值的实际意思是,元素阴影向各个方向外拓展这个值的长度之后,再开始模糊
color	可选。阴影的颜色。请参阅 CSS 颜色值,可以用rgba,但是不能用gradient
inset	可选。将外部阴影 (outset默认) 改为内部阴影

(3)x-shadow和y-shadow: x-shadow和y-shadow的值,实质上就相当于设置了相对定位之后的top和left的值一样,是把整块元素的阴影相对与以前元素移动。

实例:box-shadow: 10px 10px 5px red;

(4)blur: 这个值实际上是在上下左右各加一半的长度。比如设置为10px;则在上面是5px的阴影,下面也是5px的阴影。

(5)spread:这个值可以设置为负,且一个负值可以在各个方向上缩小阴影的效果。这个值为在上下左右都加这么长的长度。比如设置为5px。就在上面阴影加5px,下面阴影也要加5px。所以,在阴影没有偏移的情况下,如果这个值设置为blur的负的一半,则完全抵消阴影。这个值即,元素阴影向各个方向外拓展这个值的长度之后,再开始模糊

(6)重要特性:叠加性。可以同时设置很多组的值在一个box-shadow上,用逗号“,”隔开。

    实例:box-shadow: 11px 8px #626262,
                      11px 9px #626262,
                      11px 10px #626262,
                      11px 11px #626262,
                      11px 12px #626262;

(7)用box-shadow实现outline圆角框效果:主要是利用了box-shadow的第三个值,和border-radius将框变弯。

    img {
    border-radius: 1px;
    box-shadow: 0 0 0 30px #cd0000;
    }

二、倒影box-reflect

这个属性是创建目标元素的一个倒影(仅仅是创建一个css效果,不占据空间尺寸,这个css效果会覆盖到其它元素的上面,和outline,box-shadow类似)。也要加上-webkit前缀才能使用。

-webkit-box-reflect: [ above | below | right | left ]? ? ?
具体来说-webkit-box-reflect最多可以由3部分组成
方位:
可以是下面4个值中的1个,above,below,left,right,分别表示上下左右。如果不是使用类似inherit等全局关键字,则此方位值是不能缺省的。
偏移大小:
倒影和原始元素偏移距离。可以是数值(可以是负数),也可以是百分比值。如果是百分比值,则百分比大小是相对于元素自身尺寸计算的。和transform中translate的百分比计算是一致的。
遮罩图片:
对元素倒影的遮罩控制。语法类似于background-image。可以用一个渐变来控制。即,也可以给reflect出来的图形整体加上一个渐变效果,,这个值可以慢慢深究一下
-webkit-box-reflect: below 10px linear-gradient(transparent, white);

三、text-shadow(是给文本添加阴影效果)投影

(1)浏览器支持: IE9以及以下不支持

(2)语法:相比box-shadow少了一个spread属性

text-shadow: h-shadow v-shadow blur color;

x-shadow	必需。水平偏移值。允许负值。	
y-shadow	必需。垂直偏移值。允许负值。	
blur	可选。阴影模糊半径。	

color	可选。阴影的颜色。这个值可以用HSL(A)或者RGB(A),不能用gradient

四、文字描边text-stroke

这个属性现在是firefox和edge支持。不过虽然edge不是-webkit内核,它也使用-webkit前缀。即,-webkit-text-stroke

这个属性是一个混合属性,包含text-stroke-width和text-stroke-color也就是描边的宽度和描边的颜色,只不过不能指定描边的类型,默认为实线描边,且为居中描边

// 第一个宽度参数是必须的,第二个颜色参数如果不加的话,默认为用字体颜色填充
  -webkit-text-stroke: 2px green; 

五、渐变gradient

1、简介

  • 渐变是属于background-image的,即在background-image中设置。渐变就是多种颜色之间平滑过度

  • 渐变在一个拥有尺寸的盒子中被生成,被称之为渐变盒,但是渐变本身并没有内在的尺寸,也就说如果在一个没有尺寸的容器上定义渐变,将无法被呈现

  • 可以应用在所有接受图像的属性上

  • 渐变一共有4种linear-gradient() | repeating-linear-gradient() | radial-gradient() | repeating-radial-gradient()

2、linear-gradient

注:由于兼容性的问题,渐变有很多种写法,推荐用自动补全的工具来兼容所有浏览器

  • 语法:第一个值为指定渐变的方向,后面的值都为色标(由颜色值和位置组成,必须颜色值在前面而位置在后面).且色标至少需要两个
    • 位置可以省略: 浏览器会把第一个颜色位置设置为0%,最后一个颜色位置设置为100%,所以可以省略那两个颜色值的位置
    • 如果只设置了两种颜色,位置为n%和m%,那么浏览器会把0-n%设置为颜色1纯色,m%-100%设置为颜色2纯色,n%-m%设置为颜色1到颜色2的渐变
    • 如果多种颜色占据同一个位置,如a、b、c三色均占据n%这一位置,则0%-n%为前一种颜色与a颜色的颜色渐变;然后是n%-n%的a颜色与c颜色的颜色突变;n%-100%是c颜色与后一种颜色的颜色渐变。所以,多种颜色占据一个位置的话,只有第一个与最后一个颜色是有用的
    • 如果所有颜色都没有指定位置,则所有颜色均匀分部
    • 颜色值可以用任意一种颜色模式,而位置可以用百分比和数值
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值