搜索

CSS 教学

基本介绍

认识 CSS 开始使用 CSS CSS 语法规则 CSS 命名原则 CSS 常用样式属性

CSS 选择器

认识 CSS 选择器 优先级 ( 权重 ) 样式继承与联集 使用巢状结构语法 元素选择器 ID 和 Class 选择器 属性选择器 文件结构选择器 虚拟类别选择器 ( 结构 ) 虚拟类别选择器 ( 类型 ) 虚拟类别选择器 ( 输入 ) 虚拟类别选择器 ( 行为 ) 虚拟类别选择器 ( 超链接 ) 虚拟类别选择器 ( 逻辑 ) 虚拟类别选择器 ( 其他 ) 虚拟元素选择器 群组与组合选择器

数值与单位

全域关键字与文字数值 长度与角度单位 位置名称与时间单位 特殊样式属性 ( all、appearance)

规则与定义

变数 ( Variables ) 媒体查询 ( @media ) 容器查询 ( @container ) 自订属性值 ( @property ) 导入样式 ( @import ) 分层优先级 ( @layer ) 选择器作用域 ( @scope ) 定义字型 ( @font-face ) 计数规则 ( @counter-style ) 打印网页 ( @page )

函数类型

数学计算 文字与清单计数 形状与线段 路径 ( path )

颜色与滤镜

颜色单位 色彩模型 相对颜色 渐层色 图像滤镜 ( filter ) 背景滤镜 ( backdrop-filter ) 混合模式 ( mix-blend-mode )

文字与段落

设定字型 ( font-family ) 使用外部字型 文字尺寸 文字样式 ( 常用 ) 文字样式 ( 其他实用 ) 文字样式 ( 特殊用途 ) 文字换行 文字空白与 Tab 大小 文字行高与缩排 文字水平与垂直对齐 文字书写方向 文字自动分栏 使用 Color Font ( 彩色字型 ) 使用 Icon Font ( 图示文字 ) 制作自己的 Icon Font 显示生成内容与引号

元素容器

容器显示类型 ( display ) 元素 display 对照表 盒子模型 ( Box Model ) 宽高尺寸 ( width、height ) 显示与比例 ( box-sizing、aspect-ratio ) 内边距 ( padding ) 外边界 ( margin ) 边框 ( border ) 边框圆角 ( border-radius ) 图像边框 ( border-image ) 轮廓 ( outline ) 内容溢出与裁切 ( overflow ) 内容范围 ( contain ) 可见性与透明度 缩放与调整 ( zoom、resize )

背景与阴影

背景 ( 背景色、背景裁切 ) 背景图 ( 定位、尺寸 ) 背景图 ( 固定、重复 ) 背景图 ( 多重背景、混合 ) 背景缩写 ( background ) 容器阴影 ( box-shadow )

清单与表格

清单样式 清单计数器 表格基本样式 表格边框重叠与间距 表格内容宽度与对齐

基本排版与定位

元素排版方式 浮动 ( float ) 浮动形状 ( shape-* ) 定位 ( position ) 逻辑属性 ( logical properties ) 重置 CSS ( Reset CSS ) 水平置中技巧 垂直置中技巧

Flex 弹性排版

Flexbox 弹性盒子 Flex 对齐方式 Flex 弹性伸缩

Grid 网格排版

Grid 网格容器与格线 Grid 网格空间与命名 Grid 网格流向与间距 Grid 排列网格项目 Grid 项目对齐与顺序

转场与动画

转场 ( transition ) 转场触发事件 动画 ( animation ) 自订动画路径 ( offset ) 动画触发事件 多重动画的权重与顺序 动画进度控制 ( timeline )

变形、裁切与遮罩

裁切路径 ( clip-path ) 图像遮罩 ( mask ) 对象填满方式与定位 转换函数 ( transform ) 平移、旋转与缩放 3D 转换与透视

视窗与用户行为

卷轴样式 ( scrollbar ) 拉霸、滑杆样式 ( slider ) 鼠标光标图示 ( cursor ) 鼠标事件 ( pointer-events ) 用户选取 ( user-select ) 卷动行为 ( scroll、overscroll ) 打印换页 ( break-* )

CSS 预处理器

认识 CSS 预处理器 Less ( 安装、开始使用 ) Less ( 巢状结构、选择器 ) Less ( 变数、import ) Less ( Extend、Mixin ) Less ( 逻辑、循环、函数 )

范例效果

CSS 多重绕圈 3D 动画 CSS 圆饼图 CSS 跑马灯 Google 加载动画 电子时钟数字 渐层色的转场与动画 渐层色制作星空背景 渐层色边框 渐层色制作图案背景 不规则形状动画 弹跳的正方形动画 3D 正多面体 超链接底线动画效果 恶心黏黏球效果 CSS 视差滚动效果 卷轴控制放射形选单 卷轴改变文字背景色 CSS 页面卷动进度条 CSS 水波效果 圆点加载动画 ( 阴影动画 ) 字母翻牌效果 探照灯动画 立体双色跑马灯 楼梯文字动态效果 渐层色文字、双色文字 流动色彩文字 空心文字、文字水波背景 左右倾斜的背景效果 Icon 图示形状变换 故障文字效果 按钮的多种 hover 效果 点击展开或收折的选单 点击爱心图案放射效果 纯 CSS 数字加载进度条 纯 CSS 码表 ( 可计时 )

渐层色

CSS 除了可以使用“单一颜色”设定样式,也能使用“渐层色”函数来产生线性渐层、放射渐层或重复渐层等色彩效果,这篇教学会介绍“渐层色”相关的 CSS 函数,例如 linear-gradient()、radial-gradient()、conic-gradient() 等等,透过多种颜色位置的设定,让网页的色彩更丰富更多变化。

CSS 教学 - CSS 函数 ( 渐层色 )

教学影片

搭配教学影片一起阅读,效果会更好!欢迎大家订阅 STEAM 教育学习网的 Youtube 频道。

前往:https://www.youtube.com/@steam.oxxostudio

“渐层色”的 CSS 函数

下方列出“渐层色”类型的 CSS 函数 ( 支援度 All 表示主流浏览器都支援 ):

定义颜色函数 说明 支援度
linear-gradient() 线性渐层。 All
radial-gradient() 放射渐层。 All
conic-gradient() 圆锥形渐层。 IE 不支援
repeating-linear-gradient() 线性重复渐层。 All
repeating-radial-gradient() 放射重复渐层。 All
repeating-conic-gradient() 圆锥形重复渐层。 IE 不支援

linear-gradient()

“linear-gradient()”是“线性渐层”CSS 函数,基本上具有两个必填的颜色参数,和三个选填参数。

参数 数值范围 说明
angle ( 选填 ) 0~359 deg,默认 180deg 往哪个角度填满渐层,0deg 是正上方,角度顺时针增加。
color1 颜色 开始的颜色。
p1 ( 选填 ) 0%~100% 浮点数 开始颜色的位置。
color2 颜色数值 结束的颜色。
p2 ( 选填 ) 0%~100% 浮点数 结束颜色的位置。

下方范例执行后,会使用“基本”写法,将三个 div 套用红色到黄色的渐层背景色。

线上展示:https://codepen.io/oxxo/pen/GRarMGb

<!-- HTML 程式碼 -->
<div class="a">a</div>
<div class="b">b</div>
<div class="c">c</div>

<!-- CSS 程式碼 -->
<style>
  div {
    border: 1px solid #000;
    width: 100px;
    height: 100px;
    float: left;
    margin: 5px;       
  }
  .a {
    /* 漸層從上往下 */
    background: linear-gradient(red, yellow);   
  }
  .b {
    /* 按照角度漸層,顏色等比例分配位置 */
    background: linear-gradient(0deg, red, yellow);  
  }
  .c {
    /* 按照角度漸層,顏色根據指定位置出現 */ 
    background: linear-gradient(0deg, red 0%, yellow 100%);  
  }
</style>

CSS 教学 - CSS 函数 ( 渐层色 ) - linear-gradient()

angel 参数除了可以使用 deg 单位设定角度,也可以使用下列八种“方向名称”代替指定的方位角度:

方向 角度 说明
to top 0deg 下到上
to bottom 180deg 上到下
to left 90deg 右到左
to right 270deg 左到右
to left top 135deg 右下到左上
to left bottom 45deg 右上到左下
to right top 215deg 左下到右上
to right bottom 305deg 左上到右下

下方范例执行后,会使用方向名称的写法,将三个 div 套用红色到黄色的渐层背景色。

线上展示:https://codepen.io/oxxo/pen/XWwpeBz

<!-- HTML 程式碼 -->
<div class="a">a</div>
<div class="b">b</div>
<div class="c">c</div>

<!-- CSS 程式碼 -->
<style>
  div {
    border: 1px solid #000;
    width: 100px;
    height: 100px;
    float: left;
    margin: 5px;       
  }
  .a {
    /* 漸層從下往上 */
    background: linear-gradient(to top, red, yellow);
  }
  .b {
    /* 漸層從右上往左下 */
    background: linear-gradient(to left bottom, red, yellow);
  }
  .c {
    /* 漸層從左下往右上 */
    background: linear-gradient(to right top, red 0%, yellow 100%);
  }
</style>

CSS 教学 - CSS 函数 ( 渐层色 ) - linear-gradient() 方向名称

虽然 linear-gradient() 默认两种颜色,但可以按照自己的需求扩充颜色和位置参数,默认位置从 0% 开始 100% 结束,但如果从大于 0% 的位置开始或小于 100% 的位置结束,则会使用开始或结束的颜色,填满到 0% 或 100%。

下方会用多种颜色渐层,填满不同的 div,可以看到如果红色从 40% 的位置开始,则 0%~40% 的区域都会被填满红色,如果紫色从 60% 的位置结束,则 60%~100% 的区域都会被填满紫色,其他的颜色就从 40%~60% 之间平均分配。

线上展示:https://codepen.io/oxxo/pen/WNBRZYx

<!-- HTML 程式碼 -->
<div class="a">a</div>
<div class="b">b</div>
<div class="c">c</div>

<!-- CSS 程式碼 -->
<style>
  div {
    border: 1px solid #000;
    width: 100px;
    height: 100px;
    float: left;
    margin: 5px;       
  }
  .a {
    background: linear-gradient(red, yellow, green, blue, purple);
  }
  .b {
    background: linear-gradient(red 50%, yellow, green, blue, purple);
  }
  .c {
    background: linear-gradient(45deg, red 40%, yellow, green, blue, purple 60%);
  }
</style>

CSS 教学 - CSS 函数 ( 渐层色 ) - linear-gradient() 多种颜色

如果设定“颜色位置重叠”,渐层的效果将会消失,直接呈现清楚的分色效果,若前后边界没有设定颜色,则会以最靠近该边界的颜色补满,下方的范例会清楚的呈现两种颜色与七种颜色,而不会出现颜色之间的渐层。

线上展示:https://codepen.io/oxxo/pen/xxNgXBJ

<!-- HTML 程式碼 -->
<div class="a">a</div>
<div class="b">b</div>

<!-- CSS 程式碼 -->
<style>
  div {
    border: 1px solid #000;
    width: 100px;
    height: 100px; 
    float: left;
    margin: 5px;
  }
  .a {
    background: linear-gradient(90deg, red 50%,black 50%);
  }
  .b {
    background: linear-gradient(90deg,
      red 0%, red 15%,
      orange 15%, orange 30%,
      yellow 30%, yellow 45%,
      green 45%, green 60%,
      blue 60%, blue 75%,
      indigo 75%, indigo 90%,
      black 90%, black 100%);
  }
</style>

CSS 教学 - CSS 函数 ( 渐层色 ) - linear-gradient() 分色效果

radial-gradient()

“radial-gradient()”是“放射状渐层”CSS 函数,具有下列必填和选填的参数:

参数 数值范围 说明
shape ( 选填 ) circle、ellipse ( 默认 ) 使用哪种形状填满渐层。
size ( 选填 ) closest-side、farthest-side、closest-corner、farthest-corner ( 默认 ) 放射半径属性。
position ( 选填 ) at center ( 默认 )、at top、at bottom、at left、at right 中心点位置。
color1 颜色 开始的颜色。
p1 ( 选填 ) 0%~100% 浮点数 开始颜色的位置。
color2 颜色数值 结束的颜色。
p2 ( 选填 ) 0%~100% 浮点数 结束颜色的位置。

下方范例执行后,会使用“基本”写法,将三个 div 套用红色到黄色的放射状渐层背景色。

线上展示:https://codepen.io/oxxo/pen/NWVdwGd

<!-- HTML 程式碼 -->
<div class="a">a</div>
<div class="b">b</div>
<div class="c">c</div>

<!-- CSS 程式碼 -->
<style>
  div {
    border: 1px solid #000;
    width: 100px;
    height: 100px; 
    float: left;
    margin: 5px;
  }
  .a {
    /* 紅色到黑色放射漸層 */
    background: radial-gradient(red, black);
  }
  .b {
    /* 中心點在正上方,紅色到黑色放射漸層 */
    background: radial-gradient(at top, red, black);
  }
  .c {
    /* 中心點在正上方,碰到最近角落,圓形,紅色到黑色放射漸層 */
    background: radial-gradient(circle closest-corner at top , red, black);
  }
</style>

CSS 教学 - CSS 函数 ( 渐层色 ) - radial-gradient()

shape 参数可以设定“两种不同形状”的放射状渐层,下方列出参数的说明:

填满形状 说明
circle 圆形,左右百分比相同时自动采用。
ellipse 椭圆形,左右百分比不同时自动采用。

两者在正方形的中心点区域没有太大差异,但如果是类似下方范例长方形的区域或正方形边缘,就会看出不同的填满效果。

线上展示:https://codepen.io/oxxo/pen/vYwgWGY

<!-- HTML 程式碼 -->
<div class="a"></div>
<div class="b"></div>
<div class="c"></div>
<div class="d"></div>

<!-- CSS 程式碼 -->
<style>
  div {
    border: 1px solid #000;
    width: 100px;
    height: 100px; 
    float: left;
    margin: 5px;
  }
  .a {
    /* 長方形,橢圓填滿 */
    width: 250px;
    background: radial-gradient(ellipse, red, black);
  }
  .b {
    /* 長方形,圓形填滿 */
    width: 250px;
    background: radial-gradient(circle, red, black);
  }
  .c {
    /* 橢圓填滿,中心點在正上方 */
    background: radial-gradient(ellipse at top, red, black);
  }
  .d {
    /* 圓形填滿,中心點在正上方 */
    background: radial-gradient(circle at top, red, black);
  }
</style>

CSS 教学 - CSS 函数 ( 渐层色 ) - radial-gradient() 方向名称

size 参数可以设定放射渐层的“填满的方式”,下方列出参数的说明:

填满方式 说明
closest-side 离中心点最近的元素边缘
farthest-side 离中心点最远的元素边缘
closest-corner 离中心点最近的元素角落
farthest-corner 离中心点最远的元素角落 ( 默认值 )

下方范例呈现四种填满方式所产生的效果。

线上展示:https://codepen.io/oxxo/pen/jOoyaVG

<!-- HTML 程式碼 -->
<div class="a"></div>
<div class="b"></div>
<div class="c"></div>
<div class="d"></div>

<!-- CSS 程式碼 -->
<style>
  div {
    border: 1px solid #000;
    width: 200px;
    height: 100px; 
    float: left;
    margin: 5px;
  }
  .a {
    /* 最近邊 */
    background: radial-gradient(circle closest-side, red, black);
  }
  .b {
    /* 最遠邊 */
    background: radial-gradient(circle farthest-side, red, black);
  }
  .c {
    /* 最近角 */
    background: radial-gradient(circle closest-corner at top, red, black);
  }
  .d {
    /* 最遠角 */
    background: radial-gradient(circle farthest-corner at top, red, black);
  }
</style>\

CSS 教学 - CSS 函数 ( 渐层色 ) - radial-gradient() 填满方式

position 参数除了使用方向名称设定放射渐层的“中心点位置”,也可以使用“左右百分比 上下百分比”的方式设定位置 ( 可设定 0%~100% 区间内的数值),主要位置参考下表:

方向 效果等同 说明
at center at 50% 50% 中心 ( 默认 )
at top at 50% 0% 中间上方
at bottom at 50% 100% 中间下方
at left at 0% 50% 中间左边
at right at 0% 50% 中间右边
at left top at 0% 0% 左上角
at left bottom at 0% 100% 左下角
at right top at 100% 0% 右上角
at right bottom at 100% 100% 右下角

下方范例呈现不同中心点位置的放射状渐层效果。

线上展示:https://codepen.io/oxxo/pen/MWdJOpV

<!-- HTML 程式碼 -->
<div class="a"></div>
<div class="b"></div>
<div class="c"></div>
<div class="d"></div>

<!-- CSS 程式碼 -->
<style>
  div {
    border: 1px solid #000;
    width: 100px;
    height: 100px; 
    float: left;
    margin: 5px;
  }
  .a {
    /* 中間上方 */
    background: radial-gradient(at top, red, black);
  }
  .b {
    /* 中間下方 */
    background: radial-gradient(at bottom, red, black);
  }
  .c {
    /* 右上方 */
    background: radial-gradient(at top right, red, black);
  }
  .d {
    /* 使用百分比使其放在靠右下方的位置 */
    background: radial-gradient(at 60% 60%, red, black);
  }
</style>

CSS 教学 - CSS 函数 ( 渐层色 ) - radial-gradient() 中心点位置

虽然 radial-gradient() 默认两种颜色,但可以按照自己的需求扩充颜色和位置参数,默认位置从 0% 开始 100% 结束,但如果从大于 0% 的位置开始或小于 100% 的位置结束,则会使用开始或结束的颜色,填满到 0% 或 100%。如果设定的“颜色位置重叠”,渐层的效果将会消失,直接呈现清楚的分色效果,若前后边界没有设定颜色,则会以最靠近该边界的颜色补满。

下方会用多种颜色的放射状渐层,填满不同的 div,除了有前后从 40% 和 60% 开始的渐层,也有颜色位置重叠的渐层。

线上展示:https://codepen.io/oxxo/pen/NWVdwvg

<!-- HTML 程式碼 -->
<div class="a"></div>
<div class="b"></div>
<div class="c"></div>
<div class="d"></div>

<!-- CSS 程式碼 -->
<style>
  div {
    border: 1px solid #000;
    width: 100px;
    height: 100px; 
    float: left;
    margin: 5px;
  }
  .a {
    /* 使用自動分配位置 */
    background: radial-gradient(red, orange, yellow, green, blue, purple);
  }
  .b {
    /* 第一項和最後一項設定位置,其餘顏色使用自動分配位置 */
    background: radial-gradient(red 40%, orange, yellow, green, blue, purple 60%);
  }
  .c {
    /* 顏色位置重疊 */
    background: radial-gradient(red 50%, black 50%);
  }
  .d {
    /* 多色位置重疊 */
    background: radial-gradient(
      red 0%, red 15%,
      orange 15%, orange 30%,
      yellow 30%, yellow 45%, 
      green 45%, green 60%,
      blue 60%, blue 75%,
      purple 75%, purple 100%);
  }
</style>

CSS 教学 - CSS 函数 ( 渐层色 ) - radial-gradient() 多种颜色

运用放射状渐层的中心点以及颜色位置,甚至可以模拟一个立体圆球的渐层颜色。

线上展示:https://codepen.io/oxxo/pen/OJYWOzW

<!-- HTML 程式碼 -->
<div></div>

<!-- CSS 程式碼 -->
<style>
  div {
    width: 100px;
    height: 100px; 
    border-radius:50%;
    background:radial-gradient(
      circle at 35% 25%,
      #fff 0,#ccc 20%,
      #999 40%,#000 90%,
      #666 95%,#999 100%);
  }
</style>

CSS 教学 - CSS 函数 ( 渐层色 ) - radial-gradient() 模拟立体球

conic-gradient()

“conic-gradient()”是“圆锥形渐层”CSS 函数,是 CSS Level 4 才出现的渐层函数,具有至少两个必填的“颜色”参数和选填的“角度”参数,角度使用“顺时针”的方式增加。

参数 数值范围 说明
position ( 选填 ) at center ( 默认 )、at top、at bottom、at left、at right 中心点位置。
color1 颜色 开始的颜色。
angle1 ( 选填 ) 0deg ~ 359deg 开始颜色的角度,正上方为 0deg,顺时针增加。
color2 颜色数值 结束的颜色。
angle2 ( 选填 ) 0deg ~ 359deg 结束颜色的角度,正上方为 0deg,顺时针增加。

下方使用基本的 conic-gradient() 写法,将不同的 div 套用不同的渐层色,使用多种颜色甚至可以做出彩虹的圆锥形渐层。

线上展示:https://codepen.io/oxxo/pen/gOJgXjg

<!-- HTML 程式碼 -->
<div class="a"></div>
<div class="b"></div>
<div class="c"></div>

<!-- CSS 程式碼 -->
<style>
  div {
    border: 1px solid #000;
    width: 100px;
    height: 100px; 
    float: left;
    margin: 5px;
  }
  .a {
    /* 雙色圓錐漸層 */
    background: conic-gradient(yellow, blue);
  }
  .b {
    /* 雙色圓錐漸層 */
    background: conic-gradient(white, black);
  }
  .c {
    /* 彩虹圓錐漸層 */
    background: conic-gradient(red, orange, yellow, green, blue, purple, red);
  }
</style>

CSS 教学 - CSS 函数 ( 渐层色 ) - conic-gradient()

如果将颜色的“角度重叠”,就可以很轻松地做出“分色效果”,如果搭配数据产生指定角度,再将 div 设定为圆形,甚至可以做出类似“圆饼图”的效果 ( 圆心 position 写法与 radial-gradient 相同 )。

线上展示:https://codepen.io/oxxo/pen/MWdJOzP

<!-- HTML 程式碼 -->
<div class="a"></div>
<div class="b"></div>

<!-- CSS 程式碼 -->
<style>
  div {
    border: 1px solid #000;
    width: 100px;
    height: 100px; 
    float: left;
    margin: 5px;
  }
  .a {
    background:conic-gradient(
      #500 0, #500 45deg,
      #f00 45deg, #f00 90deg,
      #f50 90deg, #f50 135deg,
      #ff0 135deg,#ff0 180deg,
      #0c0 180deg, #0c0 225deg,
      #09d 225deg, #09d 270deg,
      #00b 270deg, #00b 315deg,
      #909 315deg, #909 360deg
    );
  }
  .b{
    border-radius:50%;
    background:conic-gradient(
      #fc0 0, 
      #fc0 45deg,
      #59f 45deg
    );
  }
</style>

CSS 教学 - CSS 函数 ( 渐层色 ) - conic-gradient() 分色与圆饼图

repeating-linear-gradient()

“repeating-linear-gradient()”是“线性重复渐层”CSS 函数,所有的设定值和 linear-gradient() 相同,只是重复渐层的颜色位置参数不会指定到 100%,剩下没有指定的区域,就会按照前方的百分比设定的规律,进行重复填满的动作,举例来说,下方 div 的重复颜色最多都只设定到 20% 或 30%,剩下来 70%~80% 的空间,就会按照重复的规律进行填满。

线上展示:https://codepen.io/oxxo/pen/LYoxeYG

<!-- HTML 程式碼 -->
<div class="a"></div>
<div class="b"></div>
<div class="c"></div>
<div class="d"></div>

<!-- CSS 程式碼 -->
<style>
  div {
    border: 1px solid #000;
    width: 100px;
    height: 100px; 
    float: left;
    margin: 5px;
  }
  .a {
    /* 橘色黑色重複漸層 */
    background: repeating-linear-gradient(orange 0%, black 20%);
  }
  .b {
    /* 左下往右上,橘色黑色重複漸層 */
    background: repeating-linear-gradient(45deg, orange 0%, black 20%);
  }
  .c {
    /* 下往上,橘色黑色重複漸層 */
    background: repeating-linear-gradient(to top, orange 0%, black 20%);
  }
  .d {
    /* 右上往左下,橘色白色黑色重複漸層 */
    background: repeating-linear-gradient(to left bottom, orange 0%, white 25%, black 50%);
  }
</style>

CSS 教学 - CSS 函数 ( 渐层色 ) - repeating-linear-gradient()

如果颜色的“位置重叠”,就能做出漂亮的“分色效果”,如果搭配“多重背景”的样式,甚至还能做出颜色交叠的格纹背景效果。

线上展示:https://codepen.io/oxxo/pen/OJYWzyz

<!-- HTML 程式碼 -->
<div class="a"></div>
<div class="b"></div>
<div class="c"></div>

<!-- CSS 程式碼 -->
<style>
  div {
    border: 1px solid #000;
    width: 100px;
    height: 100px; 
    float: left;
    margin: 5px;
  }
  .a {
    /* 橘色黑色位置重複,分色效果 */
    background: repeating-linear-gradient(
      orange 0%,  orange 10%,
      black 10%, black 20%);
  }
  .b {
    /* 橘色黑色位置重複,分色效果,45deg */
    background: repeating-linear-gradient(
      45deg,
      orange 0%,  orange 10%,
      black 10%, black 20%);
  }
  .c {
    /* 橘色黑色位置重複,分色效果,多重背景,transparent 表示全透明 */
    background: 
      repeating-linear-gradient(
      45deg,
      transparent 0%,  transparent 10%,
      black 10%, black 20%),
      repeating-linear-gradient(
      -45deg,
      orange 0%,  orange 10%,
      black 10%, black 20%)
  }
</style>

CSS 教学 - CSS 函数 ( 渐层色 ) - repeating-linear-gradient() 分色效果

如果将 div 的高度缩小,甚至可以做出各种不同的“虚线”样式。

线上展示:https://codepen.io/oxxo/pen/wvbgpdx

<!-- HTML 程式碼 -->
<div class="a"></div>
<div class="b"></div>
<div class="c"></div>

<!-- CSS 程式碼 -->
<style>
  div {
    width: 300px;
    height: 5px;
    margin: 10px;
  }
  .a {
    background: repeating-linear-gradient(
      to right,
      white 0%,  white 2%,
      black 2%, black 3%);
  }
  .b {
    background: repeating-linear-gradient(
      to right,
      white 0%,  white 2%,
      black 2%, black 5%,
      white 5%, white 6%,
      black 6%, black 7%);
  }
  .c {
    background: repeating-linear-gradient(
      45deg,
      white 0%,  white 2%,
      black 2%, black 6%);
  }
</style>

CSS 教学 - CSS 函数 ( 渐层色 ) - repeating-linear-gradient() 虚线效果

repeating-radial-gradient()

“repeating-radial-gradient()”是“放射状重复渐层”CSS 函数,所有的设定值和 radial-gradient() 相同,只是重复渐层的颜色位置参数不会指定到 100%,剩下没有指定的区域,就会按照前方的百分比设定的规律,进行重复填满的动作å。

线上展示:https://codepen.io/oxxo/pen/XWwpVjr

<!-- HTML 程式碼 -->
<div class="a"></div>
<div class="b"></div>
<div class="c"></div>
<div class="d"></div>

<!-- CSS 程式碼 -->
<style>
  div {
    border: 1px solid #000;
    width: 100px;
    height: 100px; 
    float: left;
    margin: 5px;
  }
  .a {
    /* 橘色黑色重複放射漸層 */
    background: repeating-radial-gradient(orange 0%, black 20%);
  }
  .b {
    /* 中間正上方,橘色黑色重複放射漸層 */
    background: repeating-radial-gradient(at top, orange 0%, black 20%);
  }
  .c {
    /* 右下方,橘色黑色重複放射漸層 */
    background: repeating-radial-gradient(at 70% 70%, orange 0%, black 20%);
  }
  .d {
    /* 左下角,橘色白色黑色重複放射漸層 */
    background: repeating-radial-gradient(at left bottom, orange 0%, white 5%, black 10%);
  }
</style>

CSS 教学 - CSS 函数 ( 渐层色 ) - repeating-radial-gradient()

如果颜色的“位置重叠”,就能做出漂亮的“分色效果”,如果搭配“多重背景”的样式,甚至还能做出颜色交叠的格纹背景效果。

线上展示:https://codepen.io/oxxo/pen/KKLaZNJ

<!-- HTML 程式碼 -->
<div class="a"></div>
<div class="b"></div>

<!-- CSS 程式碼 -->
<style>
  div {
    border: 1px solid #000;
    width: 100px;
    height: 100px; 
    float: left;
    margin: 5px;
  }
  .a {
    /* 橘色黑色重複放射漸層,位置重疊 */
    background: repeating-radial-gradient(
      orange 0%, orange 10%,
      black 10%, black 20%);
  }
  .b {
    /* 橘色黑色重複放射漸層,位置重疊,多重背景,transparent 為透明色 */
    background: repeating-radial-gradient(
      circle at left bottom, 
      transparent 0%, transparent 5%,
      black 5%, black 8%),
      repeating-radial-gradient(
      circle at right top, 
      orange 0%, orange 5%,
      black 5%, black 8%);
  }
</style>

CSS 教学 - CSS 函数 ( 渐层色 ) - repeating-radial-gradient() 分色效果

repeating-conic-gradient()

“repeating-conic-gradient()”是“圆锥形重复渐层”CSS 函数,所有的设定值和 conic-gradient() 相同,只是重复渐层的颜色位置参数不会指定到 100%,剩下没有指定的区域,就会按照前方的百分比设定的规律,进行重复填满的动作。

线上展示:https://codepen.io/oxxo/pen/ExzZobP

<!-- HTML 程式碼 -->
<div class="a"></div>
<div class="b"></div>
<div class="c"></div>
<div class="d"></div>

<!-- CSS 程式碼 -->
<style>
  div {
    border: 1px solid #000;
    width: 100px;
    height: 100px;
    margin: 10px;
    float: left;
  }
  .a {
    background: repeating-conic-gradient(
        orange 0deg, black 20deg);
  }
  .b {
    background: repeating-conic-gradient(
      at top,  
      orange 0deg, black 20deg);
  }
  .c {
    background: repeating-conic-gradient(
      at 70% 70%,  
      orange 0deg, black 20deg);
  }
  .d {
    background: repeating-conic-gradient(
      orange 0deg, black 15deg, orange 30deg);
  }
</style>

CSS 教学 - CSS 函数 ( 渐层色 ) - repeating-conic-gradient()

如果颜色的“位置重叠”,就能做出漂亮的“分色效果”,而圆锥重复渐层的分色效果,更是可以做出各种有趣的“放射线”效果。

线上展示:https://codepen.io/oxxo/pen/LYoxeQW

<!-- HTML 程式碼 -->
<div class="a"></div>
<div class="b"></div>

<!-- CSS 程式碼 -->
<style>
  div {
    border: 1px solid #000;
    width: 100px;
    height: 100px;
    margin: 10px;
    float: left;
  }
  .a {
    background: repeating-conic-gradient(
        red 0deg, red 20deg,
        white 20deg, white 40deg
    );
  }
  .b {
    background: repeating-conic-gradient(
        at bottom,
        red 0deg, red 10deg,
        white 10deg, white 20deg
    );
  }
</style>

CSS 教学 - CSS 函数 ( 渐层色 ) - repeating-conic-gradient() 放射线

小结

CSS 的“渐层色”函数相当好用,真的是“不用不知道,一用就爱上!”如果有渐层色的需求,不妨先使用渐层色函数来处理,也可以省去许多背景图片的空间和流量。

意见反馈

微信二维码 微信扫码关注 抖音二维码 抖音扫码关注