前端基础——5、CSS border属性与渐变色(详解与实战)

前端基础——5、CSS border属性与渐变色详解

  • CSS border属性与渐变色(详解与实战)
    • 一、border属性全面解析
      • 1. 基础三属性
      • 2. 复合写法
      • 3. 高级特性
      • 附加.border-style详解
      • 使用示例
      • 效果:
  • CSS 渐变终极指南:线性渐变与径向渐变的深度解析
    • 一、线性渐变(Linear Gradient)
      • 1. 基础语法
      • 2. 方向控制
        • 关键词方向:
        • 角度控制:
      • 3. 色标控制
        • 基础色标:
        • 硬边过渡:
        • 颜色提示(Color Hint):
      • 4. 高级应用
        • 透明渐变:
        • 动态渐变:
    • 二、径向渐变(Radial Gradient)
      • 1. 基础语法
      • 2. 形状与位置
        • 形状定义:
        • 位置控制:
      • 3. 大小控制
        • 关键词尺寸:
      • 4. 高级应用
        • 同心圆效果:
        • 波点背景:
        • 3D 球体效果:
    • 三、重复渐变
      • 1. 重复线性渐变
      • 2. 重复径向渐变
    • 四、实战应用示例
      • 1. 渐变按钮
      • 2. 渐变文字
      • 3. 渐变遮罩
    • 五、浏览器兼容性
        • 兼容性提示:
    • 六、性能优化建议
    • 七、调试技巧
  • 案例: 渐变边框实现方案
    • 方案1:border-image
        • 参数说明:
    • 方案2:伪元素叠加
    • 方案3:背景裁剪
  • 进阶特效示例
      • 1. 动态渐变边框
      • 2. 渐变阴影效果
      • 3. 3D立体边框

CSS border属性与渐变色(详解与实战)

一、border属性全面解析

1. 基础三属性

/* 边框样式(必需) */
border-style: solid | dashed | dotted | double | groove | ridge | inset | outset;
/* 边框宽度 */
border-width: 2px; /* 统一宽度 */
border-width: 1px 4px; /* 上下 | 左右 *//* 边框颜色 */
border-color: #ff6b6b; /* 统一颜色 */
border-color: red blue green; /* 上 | 左右 | 下 */

2. 复合写法

/* 完整格式:width style color */
border: 3px dashed rgba(255, 107, 107, 0.8);/* 多方向控制 */
border-top: 2px solid #4ecdc4;
border-right: 4px dotted #ffe66d;

3. 高级特性

/* 圆角边框 */
border-radius: 10px; 
border-radius: 50% 20% 30% 40%; /* 四个角分别设置 *//* 单独设置边角 */
border-top-left-radius: 15px 30px; /* 水平半径 / 垂直半径 *//* 透明边框 */
border: 2px solid transparent;

附加.border-style详解

border-style 是 CSS 中用于定义边框样式的属性,可以为 <div> 或其他元素的边框指定不同的视觉效果。以下是 border-style 所有可能值的介绍及其效果:

  1. none
    • 效果:无边框(默认值)。

• 说明:边框不显示,也不会占据空间。

• 示例:

border-style: none;

  1. hidden
    • 效果:隐藏边框,但保留边框的宽度。

• 说明:与 none 类似,但在某些布局场景(如表格)中会阻止边框冲突。

• 示例:

border-style: hidden;

  1. solid
    • 效果:实线边框。

• 说明:最常见的边框样式,线条连续无间隔。

• 示例:

border-style: solid;

  1. dotted
    • 效果:点状边框。

• 说明:由一系列小圆点组成,点的间距和大小由浏览器决定。

• 示例:

border-style: dotted;

  1. dashed
    • 效果:虚线边框。

• 说明:由短线段组成的虚线,线段长度和间距由浏览器决定。

• 示例:

border-style: dashed;

  1. double
    • 效果:双实线边框。

• 说明:显示两条平行的实线,中间有空白区域。总宽度 = 上边框宽度 + 空白宽度 + 下边框宽度。

• 示例:

border-style: double;

  1. groove
    • 效果:3D 凹槽效果。

• 说明:根据 border-color 的颜色值,模拟光照下的凹槽效果(亮色在左上方,暗色在右下方)。

• 示例:

border-style: groove;

  1. ridge
    • 效果:3D 凸起效果。

• 说明:与 groove 相反,模拟光照下的凸起效果(亮色在右下方,暗色在左上方)。

• 示例:

border-style: ridge;

  1. inset
    • 效果:3D 内嵌效果。

• 说明:元素整体看起来像是嵌入页面中,类似按钮按下的效果。

• 示例:

border-style: inset;

  1. outset
    • 效果:3D 外凸效果。

• 说明:与 inset 相反,元素看起来像是凸出页面,类似按钮未按下的效果。

• 示例:

border-style: outset;

使用示例

        .son{width: 100px;height: 100px;background-color: #456bff;border-top: 10px  solid #000 ;border-right: 15px dotted #b70c0c ;border-bottom: 20px dashed #b3aa0d;border-left: 25px double #e66465;margin: 0 auto;}.son1{width: 100px;height: 100px;padding:0px 10px 20px 30px;margin: 30px 20px 10px 0px;background-color: #456bff;border-top: 10px  groove #000;border-right: 15px ridge #b70c0c;border-bottom: 20px inset #b3aa0d;border-left: 25px outset #e66465;}

效果:

在这里插入图片描述
在这里插入图片描述

注意事项

  1. 浏览器兼容性:某些样式(如 grooveridgeinsetoutset)的 3D 效果在不同浏览器中可能有细微差异。
  2. 组合使用:可以为四个方向(上、右、下、左)单独设置不同的样式:
    border-style: solid dotted double dashed; /* 上 右 下 左 */
    
  3. 视觉效果依赖颜色:3D 效果(如 groove)需要合适的 border-color 对比度才能明显。

希望这些说明能帮助你选择合适的边框样式!如果需要进一步调整效果,可以结合 border-widthborder-color 属性。


CSS 渐变终极指南:线性渐变与径向渐变的深度解析

一、线性渐变(Linear Gradient)

1. 基础语法

background: linear-gradient([方向或角度], [颜色1] [位置], [颜色2] [位置], ...
);

2. 方向控制

关键词方向:
/* 基本方向 */
linear-gradient(to right, red, blue)      /* 从左到右 */
linear-gradient(to bottom, red, blue)     /* 从上到下 */
linear-gradient(to top right, red, blue)  /* 对角线 *//* 反向渐变 */
linear-gradient(to left, red, blue)       /* 从右到左 */
角度控制:
/* 0deg = 从下到上 */
linear-gradient(45deg, red, blue)         /* 45度对角线 */
linear-gradient(180deg, red, blue)        /* 从上到下 */

角度对照表

  • 0deg ➔ 向上
  • 90deg ➔ 向右
  • 180deg ➔ 向下
  • 270deg ➔ 向左

3. 色标控制

基础色标:
/* 两色均匀渐变 */
linear-gradient(to right, red, blue)/* 三色分段 */
linear-gradient(to right, red 0%, green 50%, blue 100%)

两色过渡
三色过渡

硬边过渡:
/* 条纹效果 */
linear-gradient(to right, red 0%, red 30%,blue 30%, blue 60%,green 60%, green 100%
)

在这里插入图片描述

颜色提示(Color Hint):
/* 中间过渡区域控制 */
linear-gradient(to right, red 20%, /* 中间过渡区域 */50%, blue 80%
)

在这里插入图片描述

4. 高级应用

透明渐变:
/* 透明到实色 */
linear-gradient(to bottom, rgba(255,0,0,0), rgba(255,0,0,1)
)/* 叠加效果 */
background: linear-gradient(45deg, rgba(255,0,0,0.3), transparent),linear-gradient(-45deg, rgba(0,0,255,0.3), transparent);

在这里插入图片描述
在这里插入图片描述

动态渐变:
@keyframes gradient-flow {0% { background-position: 0% 50%; }50% { background-position: 100% 50%; }100% { background-position: 0% 50%; }
}.animated-bg {background: linear-gradient(45deg, red, blue, green);background-size: 400% 400%;animation: gradient-flow 5s ease infinite;
}

在这里插入图片描述

二、径向渐变(Radial Gradient)

1. 基础语法

background: radial-gradient([形状] [位置], [颜色1] [位置], [颜色2] [位置], ...
);

2. 形状与位置

形状定义:
/* 默认椭圆 */
radial-gradient(red, blue)/* 正圆 */
radial-gradient(circle, red, blue)/* 显式尺寸 */
radial-gradient(100px 50px, red, blue)  /* 水平半径 | 垂直半径 */
位置控制:
/* 中心位置 */
radial-gradient(circle at center, red, blue)/* 自定义位置 */
radial-gradient(circle at 20% 30%, red, blue)
radial-gradient(at right bottom, red, blue)

3. 大小控制

关键词尺寸:
radial-gradient(closest-side at 30% 30%, red, blue
)  /* 渐变结束于最近边 */radial-gradient(farthest-corner at 20% 40%, red, blue
)  /* 渐变结束于最远角 */

在这里插入图片描述
在这里插入图片描述

尺寸关键字

  • closest-side
  • farthest-side
  • closest-corner
  • farthest-corner

4. 高级应用

同心圆效果:
radial-gradient(circle, red 0%, red 10%, blue 10%, blue 20%, green 20%, green 30%
)

在这里插入图片描述

波点背景:
background: radial-gradient(circle at 50% 50%, rgba(255,255,255,0.2) 10%,transparent 11%),#09f;
background-size: 30px 30px;

在这里插入图片描述

3D 球体效果:
.sphere {width: 200px;height: 200px;border-radius: 50%;background: radial-gradient(circle at 30% 30%,white 0%,#09f 50%,darkblue 100%);box-shadow: inset -10px -10px 20px rgba(0,0,0,0.2);
}

在这里插入图片描述


三、重复渐变

1. 重复线性渐变

repeating-linear-gradient(45deg,red 0px, red 10px,blue 10px, blue 20px
)  /* 条纹背景 *//* 动态斜纹 */
repeating-linear-gradient(-45deg,transparent 0px, transparent 20px,rgba(255,0,0,0.3) 20px,rgba(255,0,0,0.3) 40px
)

在这里插入图片描述
在这里插入图片描述

2. 重复径向渐变

repeating-radial-gradient(circle,red 0%, red 10%,blue 10%, blue 20%
)  /* 同心圆波纹 *//* 扫描雷达效果 */
repeating-radial-gradient(circle,transparent 0%,transparent 2%,rgba(0,255,0,0.3) 2%,rgba(0,255,0,0.3) 5%
)

在这里插入图片描述
在这里插入图片描述


四、实战应用示例

1. 渐变按钮

.btn-gradient {padding: 12px 24px;background: linear-gradient(45deg, #ff6b6b, #4ecdc4);border: none;border-radius: 8px;color: white;transition: 0.3s;
}.btn-gradient:hover {background: linear-gradient(45deg, #ff8787, #6bd3cc);box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}

在这里插入图片描述

2. 渐变文字

.gradient-text {background: linear-gradient(90deg, red, blue);-webkit-background-clip: text;background-clip: text;color: transparent;font-size: 48px;
}

3. 渐变遮罩

.image-overlay {position: relative;
}.image-overlay::after {content: '';position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: linear-gradient(to top,rgba(0,0,0,0.8) 0%,transparent 60%);
}

在这里插入图片描述


五、浏览器兼容性

特性ChromeFirefoxSafariEdge
基础渐变26+16+6.1+12+
重复渐变26+16+6.1+12+
渐变动画43+16+12.1+79+
兼容性提示:
  1. 始终添加 -webkit- 前缀:
    background: -webkit-linear-gradient(...);
    background: linear-gradient(...);
    
  2. IE9 及以下使用滤镜降级:
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0000', endColorstr='#0000ff', GradientType=1
    );
    

六、性能优化建议

  1. 避免过度使用:复杂渐变会影响重绘性能
  2. 固定背景尺寸:使用 background-size 限制渐变区域
  3. 硬件加速:对动画渐变使用 transform: translateZ(0)
  4. 缓存渐变:重复使用相同渐变时定义CSS变量
    :root {--main-gradient: linear-gradient(45deg, red, blue);
    }
    

七、调试技巧

  1. 使用浏览器开发者工具:
    • 实时调整色标位置
    • 可视化角度/位置
  2. 测试不同分辨率下的显示效果
  3. 使用 CSS Gradient Generator 快速生成代码

通过掌握这些渐变技巧,您将能轻松创建从简约到复杂的视觉效果。立即动手实践,让您的网页设计更加生动!🚀

希望这篇指南能帮助您全面掌握CSS渐变技术!如有更多问题,欢迎随时交流讨论。

案例: 渐变边框实现方案

方案1:border-image

.box {width: 200px;height: 200px;border: 4px solid;border-image: linear-gradient(45deg, #ff6b6b, #4ecdc4) 1;border-radius: 10px; /* 注意:border-radius 需要配合 overflow: hidden */
}

在这里插入图片描述

参数说明:
  • border-image-source: 渐变色
  • border-image-slice: 切割比例(默认1)

方案2:伪元素叠加

.gradient-border {width:100px;height:100px;position: relative;background: white;border-radius: 12px;
}.gradient-border::before {content: '';position: absolute;top: -2px;left: -2px;right: -2px;bottom: -2px;background: linear-gradient(45deg, #ff6b6b, #4ecdc4);border-radius: 14px; /* 比主体大2px */z-index: -1;
}

在这里插入图片描述

方案3:背景裁剪

.gradient-box {width:100px;height:100px;padding: 2px; /* 边框宽度 */background: linear-gradient(45deg, #ff6b6b, #4ecdc4);border-radius: 12px;/* 内部内容背景 */> .content {width:100px;height:100px;background: white;border-radius: 10px;}
}

在这里插入图片描述


进阶特效示例

1. 动态渐变边框

@keyframes border-glow {0% { border-color: #ff6b6b; }50% { border-color: #4ecdc4; }100% { border-color: #ffe66d; }
}.animated-border {width:100px;height:100px;border: 2px solid;animation: border-glow 2s infinite;
}

在这里插入图片描述

2. 渐变阴影效果

.glow-box {position: relative;
}.glow-box::after {content: '';position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: linear-gradient(45deg, #ff6b6b, #4ecdc4);filter: blur(20px);z-index: -1;opacity: 0.5;
}

在这里插入图片描述

3. 3D立体边框

.3d-border {width:100px;height:100px;border: 4px solid;border-color: #ff6b6b           /* 上 */#4ecdc4           /* 右 */#ffe66d           /* 下 */rgba(0,0,0,0.3);  /* 左 */box-shadow: 2px 2px 4px rgba(0,0,0,0.1),inset 1px 1px 3px rgba(255,255,255,0.5);
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/79013.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业出海降本:如何将应用从 AWS EC2 快速无缝迁移至DigitalOcean Droplet

企业出海已经成为目前最热门的趋势。然而不论你是做跨境电商&#xff0c;还是短剧出海&#xff0c;或处于最热门的AI 赛道&#xff0c;你都需要使用海外的云主机或GPU云服务。海外一线的云服务平台尽管覆盖区域广泛&#xff0c;但是往往费用成本较高。所以降本始终是企业出海关…

解决Spring Boot多模块自动配置失效问题

前言 在Spring Boot多模块项目中&#xff0c;模块间配置不生效是一个复杂但可解决的问题&#xff0c;尤其涉及自动配置类、依赖冲突、条件注解以及IDE配置。 一、问题背景与场景 1.1 场景描述 假设存在两个模块&#xff1a; 模块A&#xff1a;提供通用配置&#xff08;如跨…

WEBSTORM前端 —— 第2章:CSS —— 第4节:盒子模型

目录 1.画盒子 2.Pxcook软件 3.盒子模型——组成 4.盒子模型 ——边框线 5.盒子模型——内外边距 6.盒子模型——尺寸计算 7.清除默认样式 8.盒子模型——元素溢出 9.外边距问题 ①合并现象 ②塌陷问题 10.行内元素——内外边距问题 11.盒子模型——圆角 12.盒子…

Kafka和flume整合

需求1&#xff1a;利用flume监控某目录中新生成的文件&#xff0c;将监控到的变更数据发送给kafka&#xff0c;kafka将收到的数据打印到控制台&#xff1a; 在flume/conf下添加.conf文件&#xff0c; vi flume-kafka.conf # 定义 Agent 组件 a1.sourcesr1 a1.sinksk1 a1.c…

Idea 如何配合 grep console过滤并分析文件

这里写自定义目录标题 [grep console插件]()右击打开文件目录&#xff0c;选择 tail in console 同时可以添加自己的快捷键。 ![新的改变](https://i-blog.csdnimg.cn/direct/03423e27cf6c40c5abd2d53982547b61.png) 随后会在idea的菜单栏中出现tail菜单。这里&#xff0c;接下…

怎样学习Electron

学习 Electron 是一个很好的选择&#xff0c;特别是如果你想构建跨平台的桌面应用程序&#xff0c;并且已经有前端开发经验。以下是一个循序渐进的学习指南&#xff0c;帮助你从零开始掌握 Electron。 1. 基础知识 HTML/CSS/JavaScript 确保你对这些基础技术有扎实的理解&am…

MySQL 大数据量分页查询优化指南

问题分析 当对包含50万条记录的edu_test表进行分页查询时&#xff0c;发现随着分页越深入&#xff0c;查询时间越长&#xff1a; limit 0,10&#xff1a;0.05秒limit 200000,10&#xff1a;0.14秒limit 499000,10&#xff1a;0.21秒 通过EXPLAIN分析发现&#xff0c;limit o…

【仿真】Ubuntu 22.04 安装MuJoCo 3.3.2

官方GIthub下载: https://github.com/google-deepmind/mujoco/releases 官网&#xff1a;MuJoCo — Advanced Physics Simulation 文档&#xff1a;Overview - MuJoCo Documentation 主要参考&#xff1a;Ubuntu 22.04 安装Mujoco 3.22 - RobotStudent的文章 - 知乎 简…

最新字节跳动运维云原生面经分享

继续分享最新的go面经。 今天分享的是组织内部的朋友在字节的go运维工程师岗位的云原生方向的面经&#xff0c;涉及Prometheus、Kubernetes、CI/CD、网络代理、MySQL主从、Redis哨兵、系统调优及基础命令行工具等知识点&#xff0c;问题我都整理在下面了 面经详解 Prometheus …

PyQt6实例_pyqtgraph散点图显示工具_代码分享

目录 描述&#xff1a; 效果&#xff1a; 代码&#xff1a; 返回结果对象 字符型横坐标 通用散点图工具 工具主界面 使用举例 描述&#xff1a; 1 本例结合实际应用场景描述散点图的使用。在财报分析中&#xff0c;需要将数值放在同行业中进行比较&#xff0c;从而判…

纯C协程框架NtyCo

原文是由写的&#xff0c;写的真的很好&#xff0c;原文链接&#xff1a;纯c协程框架NtyCo实现与原理-CSDN博客 1.为什么会有协程&#xff0c;协程解决了什么问题&#xff1f; 网络IO优化 在CS&#xff0c;BS的开发模式下&#xff0c;服务器的吞吐量是一个受关注的参数&#x…

信息系统项目管理师——第10章 项目进度管理 笔记

10项目进度管理 1.规划进度管理&#xff1a;项目章程、项目管理计划&#xff08;开发方法、范围管理计划&#xff09;、事业环境因素、组织过程资产——专家判断、数据分析&#xff08;备选方案分析&#xff09;、会议——进度管理计划 2.定义活动&#xff1a;WBS进一步分解&am…

通过门店销售明细表用SQL得到每月每个门店的销冠和按月的同比环比数据

假设我在Snowflake里有销售表&#xff0c;包含ID主键、门店ID、日期、销售员姓名和销售额&#xff0c;需要统计出每个月所有门店和各门店销售额最高的人&#xff0c;不一定是一个人&#xff0c;以及他所在的门店ID和月总销售额。 统计每个月份下&#xff0c;各门店内销售额最高…

移远通信LG69T赋能零跑B10:高精度定位护航,共赴汽车智联未来

当前&#xff0c;汽车行业正以前所未有的速度迈向智能化时代&#xff0c;组合辅助驾驶技术已然成为车厂突出重围的关键所在。高精度定位技术作为实现车辆精准感知与高效协同的基石&#xff0c;其重要性日益凸显。 作为全球领先的物联网及车联网整体解决方案供应商&#xff0c;移…

jmeter-Beashell获取http请求体json

在JMeter中&#xff0c;使用BeanShell处理器或BeanShell Sampler来获取HTTP请求体中的JSON数据是很常见的需求。这通常用于在测试计划中处理和修改请求体&#xff0c;或者在响应后进行验证。以下是一些步骤和示例代码&#xff0c;帮助你使用BeanShell来获取HTTP请求体中的JSON数…

若干查找算法

一、顺序查找 1.原理 2.代码 #if 0 const int FindBySeq(const vector<int>& ListSeq, const int KeyData) {int retrIdx -1;int size ListSeq.size();for(int i 0; i < size; i) {if (ListSeq.at(i) KeyData){retrIdx i;break;}}return retrIdx; } #else c…

Uniapp(vue):生命周期

目录 一、Vue生命周期二、Uniapp中页面的生命周期三、执行顺序比较一、Vue生命周期 setup():是在beforeCreate和created之前运行的,所以可以用setup代替这两个钩子函数。onBeforeMount():已经完成了模板的编译,但是组件还未挂载到DOM上的函数。onMounted():组件挂载到DOM完…

Prometheus监控

1、docker - prometheusgrafana监控与集成到spring boot 服务_grafana spring boot-CSDN博客 2、【IT运维】普罗米修斯基本介绍及监控平台部署&#xff08;PrometheusGrafana&#xff09;-CSDN博客 3、Prometheus监控SpringBoot-CSDN博客 4、springboot集成普罗米修斯-CSDN博客…

C#进阶学习(十四)反射的概念以及关键类Type

目录 本文末尾有相关类中的总结&#xff0c;如有需要直接跳到最后即可 前置知识&#xff1a; 1、程序集&#xff08;Assembly&#xff09; 2、元数据&#xff08;Metadata&#xff09; 3、中间语言&#xff08;IL, Intermediate Language&#xff09; 中间语言&#xff08;…

Kotlin中的also、apply、invoke用法详解

以下是 Kotlin 中作用域函数(let、run、with、also、apply)和 invoke 操作符的完整总结,结合代码示例和对比说明,帮助您理解它们的用法和区别。 一、作用域函数:简化对象操作 作用域函数用于在对象的上下文中执行代码块,并根据函数的不同返回对象本身或 lambda 的结果。…