渐变是真的好玩,真是一个有趣的特性

简介: css 渐变是一种特殊的 image 格式,使用 gradient 表示, gradient 属于 image 的子集,用于表示渐变的 image , gradient 的语法如下

css渐变是一种特殊的image格式,使用gradient表示,gradient属于image的子集,用于表示渐变的imagegradient的语法如下:

1. gradient 语法

div {
   
    background-image: linear-gradient(gradient_direction, color_stop1, color_stop2, ...);
}

其中,gradient_direction表示渐变的方向,color_stop表示渐变的颜色,可以有多个,表示渐变的颜色。

2. gradient_direction

gradient_direction表示渐变的方向,可以是角度,也可以是方向,如下:

div {
   
    background-image: linear-gradient(90deg, red, blue);
    background-image: linear-gradient(to right, red, blue);
}

默认gradient_direction是可以省略的,省略后,渐变的方向是从上到下。

角度使用更加灵活,但是方向更加直观;

角度的取值范围是0deg360deg

方向的取值范围是to topto rightto bottomto leftto top rightto top leftto bottom rightto bottom left

3. color_stop

color_stop表示渐变的颜色,可以是颜色值,也可以是颜色值加上百分比,如下:

div {
   
    background-image: linear-gradient(red, blue);
    background-image: linear-gradient(red 10%, blue 20%);
}

这里的数值表示渐变色的位置,数值的取值范围是0%100%,这里的10%表示渐变色从左边的10%的位置开始,20%表示渐变色从左边的20%的位置结束。

当然这里的数值也可以超过100%,然后可以使用position属性来控制渐变色的位置,这个后面可以使用实际的例子来说明。

除了可以使用%表示渐变色的位置,还可以使用px表示渐变色的位置,同时这里的颜色可以有无数个,如下:

div {
   
    background-image: linear-gradient(red 10px, blue 20px, green 30px, yellow 40px);
}

这里如果不指定位置,那么就是平均分配,如果起始位置大于或者等于结束位置,那么就不会显示渐变色。

div {
   
    background-image: linear-gradient(red 50%, blue 50%);
}

这样就不会显示渐变色,而是上下平分两个颜色,即上面是红色,下面是蓝色。

4. 使用场景

渐变色可以理解为一个图片,所以在css任何可以使用image的地方都可以使用渐变色,如下:

li {
   
    background-image: linear-gradient(red, blue);
    border: 30px solid;
    border-image: linear-gradient(green, yellow) 1;
    list-style-image: linear-gradient(orange, purple);
}

这里的border-image表示边框的图片,list-style-image表示列表的图片。

5. 例子

5.1 创建一个三角形

div {
   
    width: 100px;
    height: 100px;
    background-image: linear-gradient(45deg, red 50%, transparent 50%);
}

这里的45deg表示渐变的方向是从左上角到右下角,red 50%表示渐变色从左上角的50%的位置开始,transparent 50%表示渐变色从左上角的50%的位置结束,这样就可以创建一个三角形。

以前我们可以使用border来创建一个三角形,但是这样的话,三角形的颜色是固定的,不仅代码多,大小不好控制,而且还不能设置渐变色,现在我们可以使用background-image来创建一个三角形,同时可以设置渐变色。

5.2 色相环

div {
   
    width: 100px;
    height: 100px;
    background: conic-gradient(
            from 90deg,
            hsl(0deg, 100%, 50%),
            hsl(60deg, 100%, 50%),
            hsl(120deg, 100%, 50%),
            hsl(180deg, 100%, 50%),
            hsl(240deg, 100%, 50%),
            hsl(300deg, 100%, 50%),
            hsl(360deg, 100%, 50%)
    );
    border-radius: 50%;}

这里使用了conic-gradient来创建一个色相环,hs1表示色相,s表示饱和度,l表示亮度,from 90deg表示从90度开始,这样就可以创建一个色相环。

5.3 做一个渐变的边框

div {
   
    width: 100px;
    height: 100px;
    background: repeating-linear-gradient(-45deg, red, red 5px, blue 5px, blue 10px);
    background-size: 200% 200%;
    background-position: 10px 10px;
    border-radius: 10px;
    -webkit-mask:
            linear-gradient(black 10px, transparent 10px),
            linear-gradient(90deg, black 10px, transparent 10px),
            linear-gradient(360deg, black 10px, transparent 10px),
            linear-gradient(270deg, black 10px, transparent 10px);
    transition: all .3s;
}

div:hover {
   
    background-position: 20px 20px;
}

这里没有使用border-image,而是使用了background来创建一个渐变的边框,因为border-image不支持圆角,同时使用了-webkit-mask来创建一个遮罩,这样就可以创建一个渐变的边框。

同时还加上了一个hover的动画,让这个边框动起来,更有乐趣。

代码片段

6. 参考

CSS3渐变

目录
相关文章
|
Android开发
Android 如何实现带滚动条的TextView,在更新文字时自动滚动到最后一行
1、主布局代码:       2、主要代码 :   package com.android09; import android.
2662 0
|
传感器 监控 测试技术
LabVIEW程序闪退问题
LabVIEW程序闪退问题
381 2
|
敏捷开发 资源调度 测试技术
阿里云云效产品使用合集之怎么解绑钉钉组织
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
10月前
|
存储 人工智能 算法
《AI浪潮下,别让数据隐私与算法偏见拖后腿》
在数字化时代,AI技术融入生活各领域,带来便利的同时也引发数据隐私与算法偏见两大难题。数据隐私问题体现在数据收集、存储、传输和使用过程中,存在告知不明确、授权不充分等隐患;算法偏见源于训练数据偏差和设计缺陷,导致不公平结果。为应对这些挑战,需从技术、法律和伦理层面采取措施,确保AI健康发展,造福人类社会。
532 2
|
SQL Java 数据库连接
求求你别乱脱敏了!MyBatis 插件 + 注解轻松实现数据脱敏,So easy~!
求求你别乱脱敏了!MyBatis 插件 + 注解轻松实现数据脱敏,So easy~!
963 0
|
存储 人工智能 自然语言处理
阿里云Elasticsearch AI场景语义搜索最佳实践
本文介绍了如何使用阿里云Elasticsearch结合搜索开发工作台搭建AI语义搜索。
17885 68
|
Web App开发 前端开发 JavaScript
如何检测 CSS 性能瓶颈并进行优化?
【10月更文挑战第28天】通过使用上述性能检测工具,结合对常见CSS性能瓶颈的分析和相应的优化方法,可以有效地提高CSS的性能,提升网页的加载速度和渲染效率,为用户提供更流畅、快速的浏览体验。
220 14
|
缓存 Ubuntu 网络协议
ubuntu ifconfig命令找不到
通过上述指导,无论你是面临 `ifconfig`命令缺失的困惑,还是希望深入了解Ubuntu系统下的网络管理技巧,都能找到针对性的解决方案,进一步提升你的系统管理能力。
532 2
|
SQL 存储 安全
Web安全-CSRF跨站请求伪造
Web安全-CSRF跨站请求伪造
393 4
|
关系型数据库 Java MySQL
Linux安装JDK1.8 & tomcat & MariaDB(MySQL删减版)
本教程提供了在Linux环境下安装JDK1.8、Tomcat和MariaDB的详细步骤。这三个组件的组合为Java Web开发和部署提供了一个强大的基础。通过遵循这些简单的指导步骤,您可以轻松建立起一个稳定、高效的开发和部署环境。希望这个指导对您的开发工作有所帮助。
461 8