问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ss3的渐变如何使用

发布网友 发布时间:2023-08-03 15:14

我来回答

1个回答

热心网友 时间:2024-10-31 00:31


这次给大家带来ss3的渐变如何使用,使用ss3的渐变的注意事项有哪些,下面就是实战案例,一起来看一下。
《CSS揭秘》这本书非常不错,充满了干货和惊喜。以下主要是关于使用渐变做出来的一些效果的笔记。请用最新的现代浏览器观看。
首先要回顾下一个css语句:
linear-gradient([ [ <angle> | to <side-or-corner> ] ,]? <color-stop>[, <color-stop>]+)这是一个线性渐变,第一参数是渐变方向,是可选的。可以是角度,angle的值是度数,比如45deg,90deg。也可以使用to side-or-corner .比如 to left(从右到左) ,to bottom(从上到下);第二个和第三个参数都是渐变颜色。所以最简单的写法可以有:
background: linear-gradient(aquamarine,orange)
默认是从上往下渐变。但如果我们不想要渐变,就要颜色条。诀窍就是两种颜色之间不要留空隙,因为留了空隙就会出现渐变的过渡效果。所以我们可以设置各占50%。这个50%代表颜色位置。也可以是长度单位。
background: linear-gradient(aquamarine 50%,orange 50%)
如果我们需要多种颜色呢,比如一个蓝白红。
background: linear-gradient(90deg,aqua 0 ,aqua 33%,white 0 ,white 67%,crimson 0 ,crimson )
注意到三个0和最后的crimon颜色没有色标。第一个aqua 0 ,aqua 33% 表示aqua占了33%,而第二个白色却是 white 0 ,white 67%,看上去是占了67%,其实是从33%开始的。
如果某个色标的位置比它之前的位置都要小,则色标的位置会被设置为前面所以色标位置的最大值。
所以第二个0代表的是33%,第三个0代表的是67%。你可以将0改成小于这两个值的值,效果是一样的。而最后一个颜色,不用色标也会自动填充。所以如果我们只想画个线条,渐变颜色可以使用透明色:
linear-gradient(white 2px, transparent 0)但如果我们要实现重复效果,还需要background-size的配合。background-size默认是 100% 100%。但如果定义了大小,等于是把整个面积分割成重复的小块。
网格1:
.grid {
width: 225px;
height: 225px;
background: #58a;
background-image: linear-gradient(white 2px, transparent 0),linear-gradient(90deg,white 2px,transparent 0);
background-size: 75px 75px, 75px, 75px;
}第一个渐变是将225px 横着分成了三等分。然后第二个渐变,垂直分成了三等分。这是肉眼看到的效果,其实是9个75px*75px的方块拼出来的结果。
网格2:
background-image: linear-gradient(white 2px, transparent 0),linear-gradient(90deg,white 2px,transparent 0),linear-gradient(hsla(0,0%,100%,.3) 1px,transparent 0),linear-gradient(90deg, hsla(0,0%,100%,.3) 1px,transparent 0);
background-size: 75px 75px, 75px 75px,15px 15px,15px 15px;那这个网格实现就简单了。再叠加渐变,每个75再分成5个15。这效果看着像瓷砖。
棋盘
但是如何画出一个棋盘呢?注意线条不是连贯的哦。如上图,根据上面background-size的思路,我们知道这样的棋盘是有多个这样的正方形组成的。
而这两个正方形,又是由四个三角形组成的。线性渐变的一个特点就是会在background-size的区域里,一条线上只有一种颜色。
background-image: linear-gradient(45deg, #bbb 25%, transparent 0),linear-gradient(45deg, transparent 75%,#bbb 0),linear-gradient(45deg, #ffbb33 25%, transparent 0),linear-gradient(45deg, transparent 75%,#ffbb33 0);
background-size: 30px 30px;
background-position: 0 0, 15px 15px,15px 15px, 30px 30px;注意到还使用了一组background-position,第一个#bbb色是占了45度方向的25%,而第二个#bbb色是占45度方向最后的25%。如果把第二个三角形换成红色,然后位置从0,0开始就一目了然了。
background-image: linear-gradient(45deg, #bbb 25%, transparent 0),linear-gradient(45deg, transparent 75%,red 0);
background-size: 30px 30px;
background-position: 0 0, 0px 0px,15px 15px, 30px 30px;
将红色三角形位置改为15px,15px 就凑成了一个正方形。同理再叠加出一个正方形就得到了棋盘的格式。同理,我们可以拼凑一个歇着的格子。
让三角形每次转90度,且不必移动位置。
background-image: linear-gradient(45deg, red 0, red 25%,transparent 0), linear-gradient(135deg, orange 0, orange 25%,transparent 0),linear-gradient(225deg, yellow 0, yellow 25%,transparent 0),linear-gradient(315deg, green 0, green 25%,transparent 0)
斜网格有了上面的积累,画一个斜格子就简单了:
background-image: linear-gradient(45deg,transparent 49% ,black 0,black 51% ,transparent 0), linear-gradient(135deg,transparent 49% ,black 0,black 51% ,transparent 0);
background-size: 30px 30px;
相当于是每个单元就渐变了两条斜线。
斜格子一直去拼这种单元可能让你有点烦,于是出来了repeating-linear-gradient。
background: repeating-linear-gradient( 45deg, transparent, transparent 1em, moccasin 0, moccasin 2em, transparent 0, transparent 3em, powderblue 0, powderblue 4em, transparent 0, transparent 5em, lavender 0, lavender 6em, transparent 0, transparent 7em, beige 0, beige 8em), repeating-linear-gradient( -45deg, transparent, transparent 1em, khaki 0, khaki 2em, transparent 0, transparent 3em, beige 0, beige 4em, transparent 0, transparent 5em, peachpuff 0, peachpuff 6em );注意到颜色都是成对出现。这样才会出现我们的色条。注意这里使用了background-blend-mode: multiply; 混合模式。不然效果没有这么好看。
圆点:思路和上面一样,使用径向渐变叠加和错位
background-image:radial-gradient(#fff 5px,transparent 0),radial-gradient(#fff 10px, transparent 0);
background-size: 40px;
background-position: 0 0, 20px 20px;沙发沙发这个效果比较复杂,使用了径向渐变制作圆点和阴影,线性渐变勾勒出线条。
background:
radial-gradient(hsl(0, 100%, 27%) 4%, hsl(0, 100%, 18%) 9%, hsla(0, 100%, 20%, 0) 9%) 0 0,
radial-gradient(hsl(0, 100%, 27%) 4%, hsl(0, 100%, 18%) 8%, hsla(0, 100%, 20%, 0) 10%) 50px 50px,
radial-gradient(hsla(0, 100%, 30%, 0.8) 20%, hsla(0, 100%, 20%, 0)) 50px 0,
radial-gradient(hsla(0, 100%, 30%, 0.8) 20%, hsla(0, 100%, 20%, 0)) 0 50px,
radial-gradient(hsla(0, 100%, 20%, 1) 35%, hsla(0, 100%, 20%, 0) 60%) 50px 0,
radial-gradient(hsla(0, 100%, 20%, 1) 35%, hsla(0, 100%, 20%, 0) 60%) 100px 50px,
radial-gradient(hsla(0, 100%, 15%, 0.7), hsla(0, 100%, 20%, 0)) 0 0,
radial-gradient(hsla(0, 100%, 15%, 0.7), hsla(0, 100%, 20%, 0)) 50px 50px,
linear-gradient(45deg, hsla(0, 100%, 20%, 0) 49%, hsla(0, 100%, 0%, 1) 50%, hsla(0, 100%, 20%, 0) 70%) 0 0,
linear-gradient(-45deg, hsla(0, 100%, 20%, 0) 49%, hsla(0, 100%, 0%, 1) 50%, hsla(0, 100%, 20%, 0) 70%) 0 0
;
background-color: #300;
background-size: 100px 100px;radial-gradient语法:
radial-gradient(
[ [ circle || <length> ] [ at <position> ]? , |
[ ellipse || [ <length> | <percentage> ]{2} ] [ at <position> ]? , |
[ [ circle | ellipse ] || <extent-keyword> ] [ at <position> ]? , |
at <position> ,
]?
<color-stop> [ , <color-stop> ]+
)看上去有点复杂,[]表示一个参数,[]?表示这个参数可选,| 表示这两个参数二选一,||表示这两个参数可以同时存在,','号表示这个参数结束。包含形状,中心点位置,扩展关键字和颜色。形状分圆形(circle)和椭圆(ellipse),位置可以是长度/百分比/简写的left、center等。颜色和线性渐变一样,比如渐变一个太阳:
background:radial-gradient(at 45px 45px,rgb(248, 242, 209),gold,#FFF);
不过这里的at不仅影响着渐变的中心点而且还影响着渐变的形状。 如果加上background-size我们可以得到一块饼干:想吃么 (*^^*) ??
而扩展关键字主要有下面几种情况
closest-side:指定径向渐变的半径长度为从圆心到离圆心最近的边
background:radial-gradient(circle closest-side ,aqua,gold);
closest-corner:指定径向渐变的半径长度为从圆心到离圆心最近的角
background:radial-gradient(circle closest-corner ,aqua,gold);
farthest-side:指定径向渐变的半径长度为从圆心到离圆心最远的边
background:radial-gradient(circle farthest-side at 30% 30% ,aqua,gold);
farthest-corner:指定径向渐变的半径长度为从圆心到离圆心最远的角
background:radial-gradient(circle farthest-corner at 30% 30% ,aqua,gold);
如果我们想画出色圈呢,这就要用到线性渐变中的技巧。
background:radial-gradient(white 0,white 10%,red 0, red 20%,white 0,white 30%,red 0,red 40%,white 0,white 50%,red 0,red 60%,white 0,white 100%);小结:这些效果还是蛮有意思的,这一篇主要是学习了 linear-gradient,repeating-linear-gradient以及background-size、background-position来实现网格效果,最后还用到了radial-gradient,径向渐变的花样更多,所有的效果基本都是基于渐变叠加和重复,更多的效果可以参考下面的链接。
相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
推荐阅读:
jQuery、Angular、node中的Promise详解

H5的视频播放库video.js详解
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
蒲公英不只是“天然抗生素”,常泡水喝有8个好处,但注意3个禁忌_百度... 蒲公英茶的功效与作用,抗菌笑容和美容养颜/清热去火 喝蒲公英水可以去火吗 伦敦看展实录-Damien Hirst 做个俗人,贪财“好色”,说的便是达明安·赫斯特 瓷砖抗静电地板 Win10共享硬盘访问不了怎么办 何为《老师对我说》读后感150 有本小说里写的师生恋发生在大学里,老师让学生写何为勇者 学生只写了5... 白酒能泡洋葱吗 2022年十堰自学考试专升本在哪里报名? 湖北省十堰市有哪些本科大学? 小牛电动有录音功能吗 winflo8和飞马38哪个轻 种花的时候底下的叶子,枯了是怎么回事? ...申请做长租公寓经营许可证,什么样房子可以改造经营长租公寓?_百 ... 有哪些酒店改造长租公寓 江苏项美康尔新材料科技有限公司怎么样? 女儿两岁了怎么祝福呢 项美科技健康管理中心是正规吗? 冀唐学院招研究生吗 2016款别克英朗GT1.5N自动挡 行驶中在D挡位滑行时感觉车子在减速很明... 名爵gt锐行2016款车灯是远近一体吗? 募集善款用于残疾人公益项目的意义 为什么要用30位掩码的ip来做互联地址 ...不想印自己名字,可以印什么好点的英文单词或者一些 西南大学实验技术人员培训管理办法的学习培训管理 2015年广东省属药学初级专业技术人员网络远程继续教育通知 买剪茶机主要看中什么? 植物中的大熊猫是哪一种植物植物中的大熊猫介绍 十堰自学考试专升本都有什么专业怎么报考? 十堰成人高考函授专科专升本在哪里报名?学费标准是什么? 哈尔滨剑桥学院专升本学费 哈尔滨剑桥学院:自费学费多少 哈尔滨剑桥学院学费多少钱? 每天喝杯咖啡与荷叶茶有冲突吗 荷叶灰能和咖啡一起喝吗 河南省上蔡县招教考试科目 上蔡中学好进吗 上蔡二十二小今年还需要老师吗 SASA的成长历史 说话有点撇 预防针霍乱吃了两次糖丸第三次不吃有影响吗 红蜻蜓皮鞋上有classic是假的吗 作文-六年级-记叙文 霍乱疫苗5月27日吃了一个第二个和第三个是什么时候吃 小学六年级下期语文作文类型是什么? 吃了一次霍乱疫苗,不接着吃可以吗? 六年级下册第五单元作文,人教版,写人的记叙文,要一人一事,不低于450字... 哈工大航空学院复合材料与工程专业毕业生好就业吗