iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >CSS属性*-gradient怎么用
  • 375
分享到

CSS属性*-gradient怎么用

2023-06-06 12:06:01 375人浏览 八月长安
摘要

小编给大家分享一下CSS属性*-gradient怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!圆锥渐变!对其感兴趣是因为我发现它竟然可以用来做圆饼图! 比如

小编给大家分享一下CSS属性*-gradient怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

圆锥渐变

对其感兴趣是因为我发现它竟然可以用来做圆饼图
比如这样的:
CSS属性*-gradient怎么用
这样的:
CSS属性*-gradient怎么用
其原理也很简单:就是以起始点为中心,然后以顺时针方向绕中心实现渐变效果。其必须接收多种颜色值参数,每个颜色值后可以跟两个百分比,为当前颜色值的起始点和终止点(中间用空格隔开):

CSS属性*-gradient怎么用

background: conic-gradient(pink 0 30%, yellow 0 70%, lime 0 100%);

还可以分开来写:

background: conic-gradient(pink 0, pink 30%, yellow 30%, yellow 70%, lime 70%, lime 100%);

(第二种方式兼容性比第一种好一点)

慢着!上面第二张图片不就是我们想要的吗?
根据图片,我们不难得出下面的代码:

{    width: 200px;    height: 200px;    background: conic-gradient(deeppink 0, deeppink 30%, yellowgreen 30%, yellowgreen 70%, teal 70%, teal 100%);    border-radius: 50%;}

But,这里面完全是“静态”的。

我们大概大部分人都用过echarts绘制图形:根据后端传来的数据渲染到echarts的Map对象的指定参数(数组)中就能得到一个符合要求的不同颜色显示的圆饼图了。这用CSS怎么做呢?

我们当然要借助js的帮助 —— 因为css3推出了 自定义变量 ,它可以很好的让css属性与javascript变量相结合:
经过探索,目前比较好的实践应该就是给gradient的颜色开始与结束位置设置为自定义变量,然后当JavaScript拿到数据后通过改变其值从而改变圆饼图中的颜色分布!

放一个以前写过的演示demo:

:root{--zero:0;--one:50%;}.circle{width: 300px;height: 300px;border-radius: 50%;background: conic-gradient(red var(--zero) var(--one),yellow var(--one) 100%);}
<div class="circle"></div><button id="but">点我改变圆饼图分布</button><script>but.onclick=function(){document.documentElement.style.setProperty('--zero', '10%');document.documentElement.style.setProperty('--one', '70%');}</script>

如果要动态增加颜色值(比如新增调查对象),可以动态修改style中的属性:

xxx.style.xxx="xxx";   //改变

这要比用“::after伪元素”实现起来方便多了!

伪元素的方式可能很多人也玩过:利用transfORM的rotate属性将一个content盒子旋转并显示部分以达到目的。

还有很多“骚操作”网上应该一搜一堆,这里就不再赘述了(:相比于前两年浏览器对此属性的“漠不关心”到现在的部分支持,也是很大进步了,让我们继续期待吧)


关于 linear-gradient

这个属性除了在一些网站上用作某个元素的背景以外,似乎并没有什么值得关注的地方:
比如 条纹背景
“如果多个色标具有相同的位置,它们会产生一个无限小的过渡区域,
过渡的起止色分别是第一个和最后一个指定值。从效果上看,颜色会在那
个位置突然变化,而不是一个平滑的渐变过程。”
因为渐变是一种由代码生成的图像,我们能像对待其他任何背景图像那样对待它,而且还可以通过 background-size 来调整其尺寸;并且由于背景在默认情况下是重复平铺的,整个容器其实已经被填满了水平条纹:

background: linear-gradient(#fb3 50%, #58a 50%);background-size: 100% 30px;

CSS属性*-gradient怎么用
垂直条纹
垂直条纹的代码跟水平条纹几乎是一样的,差别主要在于:我们需要在
开头加上一个额外的参数来指定渐变的方向。在水平条纹的代码中,我们其
实也可以加上这个参数,只不过它的默认值 to bottom 本来就跟我们的意
图一致,于是就省略了。最后,我们还需要把 background-size 的值颠倒
一下:

background: linear-gradient(to right, #fb3 50%, #58a 0);background-size: 30px 100%;

需要注意的是:linear-gradient如果加了第一个参数,则其默认方向就会变为“从下向上”的,为此,笔者还向菜鸟教程投过邮件建议他们在文档中修改措辞。

CSS属性*-gradient怎么用

倾斜条纹
“传统的”仅仅改变linear-gradient第一个参数——角度值的方式或者通过background-size增加“精确度”的方式都不能有效的达到真正意义上完美的倾斜背景:它们总是会在大小改变或者换一个倾斜度时把整个图案搞乱!
幸运的是,我们还有更好的方法来创建斜向条纹:一个鲜为人知的真相是 linear-gradient() 和 radial-gradient() 还各有一个循环式的加强版:repeating-linear-gradient() 和 repeating-radial-gradient()。
它们的工作方式跟前两者类似,只有一点不同:色标是无限循环重复的,直
到填满整个背景!

background: repeating-linear-gradient(45deg, #fb3, #58a 30px);

CSS属性*-gradient怎么用
哦,对了,同上面一样,所有的“-gradient”属性在没有限制起始位置和终止位置时都会有“渐变光晕”,如果我们改为下面这样:

background: repeating-linear-gradient(60deg, #fb3 0 15px, #58a 0 30px);

CSS属性*-gradient怎么用

看到这张图你有没有想到一个著名的案例——三角形?

background: #eee;background-image: linear-gradient(45deg, transparent 75%, #bbb 0);

而我们以前用CSS一般是像这样写的:

width: 0;height: 0;border: 50px solid transparent;border-top-color: black ;

其实,linear-gradient用处还远远不止这些…


2020-10-17更新

radial-gradient及整体应用

我们大概都知道:滚动条是一种常见的界面控件,用来提示一个元素除了可以看到的内容之外,还包含了更多内容。但是,它往往太过笨重,在视觉上喧宾夺主,因此现代操作系统已经开始简化它的外观,当用户不与可滚动的元素交互时,滚动条就会被完全隐藏。
目前已知的“去除滚动条”的方法中,最常用的有:::-WEBkit-scrollbar{display:none;} ,但是很显然,IE上无法使用 —— 它只允许改变滚动块的颜色。

在CSS3的时代,我们可以在想要加滚动条的地方外包裹一层p,为其设置overflow:hidden,内部用calc()函数动态计算width使其溢出!这可以有效解决IE下兼容性问题。

我们现在已经很少通过滚动条来滚动页面了(更多的是使用触摸手势),但滚动条对于元素内容可滚动的提示作用仍然是十分有用的,哪怕对于那些没有发生交互的元素也是如此;而且这种提示方式十分巧妙。
据说曾经 Google 推出了一款 RSS 阅读器(已经没了),它的用户体验设计师找到了一种非常优雅的方式来作出类似的提示:当侧边栏的容器还有更多内容时,一层淡淡的阴影会出现在容器的顶部和底部。就像这样:
CSS属性*-gradient怎么用

让我们首先从一段简单的结构代码开始,一个带有示意性内容的普通无序列表:

<ul><li>Ada Catlace</li><li>Alan Purring</li><li>SchrödinGCat</li><li>Tim Purrners-Lee</li><li>WebKitty</li><li>JSON</li><li>Void</li><li>Neko</li><li>NaN</li><li>Cat5</li><li>Vector</li><li>Ada Catlace</li><li>Alan Purring</li><li>Schrödingcat</li><li>Tim Purrners-Lee</li><li>WebKitty</li><li>Json</li><li>Void</li><li>Neko</li><li>NaN</li><li>Cat5</li><li>Vector</li><li>Ada Catlace</li><li>Alan Purring</li><li>Schrödingcat</li><li>Tim Purrners-Lee</li><li>WebKitty</li><li>Json</li><li>Void</li><li>Neko</li><li>NaN</li><li>Cat5</li><li>Vector</li><li>Ada Catlace</li><li>Alan Purring</li><li>Schrödingcat</li><li>Tim Purrners-Lee</li><li>WebKitty</li><li>Json</li><li>Void</li><li>Neko</li><li>NaN</li><li>Cat5</li><li>Vector</li></ul>

我们可以给 <ul> 元素设置一些基本的样式,让它的高度略短于内容,从而让其内容可以滚动:

overflow: auto;width: 10em;height: 8em;padding: .3em .5em;border: 1px solid silver;

接下来,有趣的事情即将发生。我们用一个径向渐变在顶部添加一条阴影:

background: radial-gradient(at top, rgba(0,0,0,.2),transparent 70%) no-repeat;background-size: 100% 15px;

现在,当我们滚动列表时,这条阴影会一直停留在相同的位置。这正是背景图像的默认行为:它的位置是相对于元素固定的!不论元素的内容是否发生了滚动。这一点也适用于 background-attachment: fixed 的背景图像。它们唯一的区别是,当页面滚动时,后者是相对于视口固定的。有没有办法让背景图像跟着元素的内容一起滚动呢?

现在常见的值只有inheritscrollfixed,但是从W3C文档中可以看到:后来为background-attachment 属性增加了一个新的关键字,叫作 local
如果将此属性应用到这条阴影上,它会带给我们正好相反的效果:当我们滚动到最顶端时,能看到一条阴影;但当我们向下滚动时,这条阴影就消失了。

但这不重要,我们的思路对了!

我想到了一个很常用的hack:我们需要两层背景:一层用来生成那条阴影,另一层基本上就是一个用来遮挡阴影的白色矩形,其作用类似于遮罩层。生成阴影的那层背景将具有默认的 background-attachment 值(scroll),因为我们希望它总是保持在原位。我们把遮罩背景的 background-attachment 属性设置为 local,这样它就会在我们滚动到最顶部时盖住阴影,在向下滚动时跟着滚动,从而露出阴影。

background: linear-gradient(white 30%, transparent), radial-gradient(at 50% 0, rgba(0,0,0,.2),transparent 70%);background-repeat: no-repeat;background-size: 100% 50px, 100% 15px;background-attachment: local, scroll;

没错,这就是linear-gradient的另一个应用 —— 渐变遮罩层!

但是现在我们会发现:现在只有上边有,下边怎么搞?
这就需要用到css中的“简写”以及对*-gradient的理解了:如果不加第一个参数(不指明方向),则默认是从上到下渐变的,但是如果加了第一个参数但是没有指明to bottom100%,那么它默认是从下向上渐变的!

background: linear-gradient(white 30%, transparent) top / 100% 50px,radial-gradient(at 50% 0, rgba(0,0,0,.2),transparent 72%) top / 100% 15px,linear-gradient(to top, white 15px, hsla(0,0%,100%,0)) bottom / 100% 50px, radial-gradient(at bottom, rgba(0,0,0,.2), transparent 72%) bottom / 100% 15px;background-repeat: no-repeat;background-attachment: local, scroll,local, scroll;

以上是“CSS属性*-gradient怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: CSS属性*-gradient怎么用

本文链接: https://www.lsjlt.com/news/246985.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • CSS属性*-gradient怎么用
    小编给大家分享一下CSS属性*-gradient怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!圆锥渐变!对其感兴趣是因为我发现它竟然可以用来做圆饼图! 比如...
    99+
    2023-06-06
  • CSS 渐变属性:linear-gradient 和 radial-gradient
    CSS渐变属性是一种强大的工具,可以为元素的背景或文本创建平滑过渡的颜色效果。其中最常用的两种属性是linear-gradient和radial-gradient。本文将详细介绍这两种属性,并提供具体的代码示例。一、linear-gradi...
    99+
    2023-10-21
    CSS 渐变属性:linear-gradient radial-gradient linear-gradient:
  • CSS linear-gradient属性案例详解
    目录一、介绍二、使用技巧2.1 方格背景2.2 棋盘效果linear-gradient是css3的一个属性,功能强大,但是因为使用的灵活性,让没接触过的人感觉不好下手,下面来一起学习...
    99+
    2024-04-02
  • CSS 渐变属性优化技巧:linear-gradient 和 radial-gradient
    CSS 渐变属性优化技巧:linear-gradient 和 radial-gradient在网页设计中,渐变效果是一种非常常见且具有吸引力的效果。而在渐变效果中,CSS的linear-gradient和radial-gradient是两个...
    99+
    2023-10-27
    linear-gradient 渐变优化 radial-gradient
  • CSS 渐变字体属性:linear-gradient 和 font-stretch
    在现代网页设计中,为了吸引用户并增强页面的视觉效果,渐变字体成为了一种流行的设计趋势。CSS提供了一些属性来实现渐变字体的效果,其中包括linear-gradient和font-stretch。本文将重点介绍这两个属性的用法,并提供具体的代...
    99+
    2023-10-21
    CSS渐变 linear-gradient font-stretch
  • CSS中线性渐变linear-gradient属性的示例分析
    小编给大家分享一下CSS中线性渐变linear-gradient属性的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • CSS中的线性渐变linear-gradient怎么用
    这篇文章给大家介绍CSS中的线性渐变linear-gradient怎么用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在CSS3出现之前,渐变效果只能通过图形软件设计图片来实现,可拓展...
    99+
    2024-04-02
  • CSS 渐变背景属性解读:linear-gradient 和 background-image
    简介:在页面开发中,背景颜色的选择是非常重要的环节,而渐变背景颜色可以为网页添加更丰富的视觉效果。CSS 提供了两种方式来实现渐变背景属性:linear-gradient 和 background-image。本文将重点讲解这两种方式的使用...
    99+
    2023-10-21
    背景图像 线性渐变 CSS 渐变属性
  • 如何在CSS3中使用linear-gradient属性
    本篇文章为大家展示了如何在CSS3中使用linear-gradient属性,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、线性渐变在 Mozilla 下的应用语法:-moz-linear-grad...
    99+
    2023-06-08
  • css中的linear-gradient()怎么使用
    这篇文章主要介绍“css中的linear-gradient()怎么使用”,在日常操作中,相信很多人在css中的linear-gradient()怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操...
    99+
    2024-04-02
  • CSS 径向渐变属性优化技巧:radial-gradient 和 background-position
    CSS 径向渐变属性优化技巧:radial-gradient 和 background-position引言:CSS 径向渐变(radial-gradient)是一种用于创建圆形渐变效果的属性,常用于设计网页的背景、按钮样式等。在使用径向渐...
    99+
    2023-10-27
    优化 属性 CSS渐变
  • CSS中position属性怎么用
    这篇文章主要为大家展示了“CSS中position属性怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS中position属性怎么用”这篇文章吧。目前几...
    99+
    2024-04-02
  • 怎么用CSS3中的gradient属性做出背景渐变效果
    小编给大家分享一下怎么用CSS3中的gradient属性做出背景渐变效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!   浏览器支持两种类型的渐变:   linear,用linear...
    99+
    2024-04-02
  • css中position属性及z-index属性怎么用
    这篇文章给大家分享的是有关css中position属性及z-index属性怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在网页设计中,position属性的使用是非常重要的...
    99+
    2024-04-02
  • css中radial-gradient()有什么用
    这篇文章主要介绍了css中radial-gradient()有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。   在css中可以定义...
    99+
    2024-04-02
  • css中怎么使用border属性与display属性
    这篇文章主要介绍css中怎么使用border属性与display属性,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! css中如何使用border属性与display属性 bord...
    99+
    2024-04-02
  • Css字体属性和文本属性怎么用
    这篇文章主要为大家展示了“Css字体属性和文本属性怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Css字体属性和文本属性怎么用”这篇文章吧。字体属性:主要...
    99+
    2024-04-02
  • CSS的margin属性怎么用
    这篇文章主要介绍“CSS的margin属性怎么用”,在日常操作中,相信很多人在CSS的margin属性怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS的margin...
    99+
    2024-04-02
  • css中怎么用transform属性
    这篇文章主要介绍css中怎么用transform属性,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!   旋转rotate   用法:   transform:rotate(45...
    99+
    2024-04-02
  • css display属性怎么使用
    本文小编为大家详细介绍“css display属性怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“css display属性怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作