CSS学习笔记5——渐变属性+盒子模型阶段案例

目录

通俗易懂的解释

渐变的类型

1、线性渐变 

渐变过程

2、径向渐变 

如何理解CSS的径向渐变,以及其渐变属性

通俗易懂的解释

渐变属性

1. 形状(Shape)

2. 大小(Size)

3. 颜色停靠点(Color Stops)

代码解析

渐变过程

3、重复渐变 

4、阶段案例——感动中国人物榜 


CSS 的渐变属性允许你创建从一种颜色平滑过渡到另一种颜色的背景效果。 

通俗易懂的解释

想象一下,你在画一幅画,你想让颜色从红色慢慢变成蓝色。你不会直接在红色旁边画蓝色,而是让它们之间有一个过渡区域,红色逐渐变成蓝色。CSS 的渐变属性就是用来实现这种效果的。

渐变的类型

  1. 线性渐变(Linear Gradient)颜色沿着直线方向变化,比如从左到右、从上到下。

  2. 径向渐变(Radial Gradient)颜色从一个中心点向外扩散,比如从中心到边缘。

总结:CSS 渐变属性让你可以在网页上创建颜色平滑过渡的效果。你可以选择线性渐变(沿直线变化)或径向渐变(从中心向外变化),并指定起始和结束颜色。

1、线性渐变 

<!DOCTYPE html>
<html>
<head><meta charset="utf-8" /><title>盒子模型</title><style type="text/css">p{width: 200px;height: 200px;background-image: linear-gradient(30deg,#0f0 50%,#ccc 70%,red 80%);}</style> 
</head>
<body><p>"但行好事,莫问前程" 是镌刻在文明基因里的生命密码。</p>
</body>
</html>

渐变核心代码(background-image: linear-gradient(30deg,#0f0 50%,#ccc 70%,red 80%);)解释:  

  1. background-image:

    • 这是一个CSS属性,用于为元素设置背景图像。

    • 在这个例子中,背景图像是一个线性渐变。

  2. linear-gradient:

    • 这是一个CSS函数,用于创建线性渐变。

    • 它接受多个参数来定义渐变的方向和颜色。

  3. 30deg:

    • 这是渐变的角度,表示渐变线与水平线的夹角。

    • 30deg 表示渐变线与水平线成30度角,从左下方向右上方渐变。

  4. #0f0 50%:

    • 这是第一个颜色停靠点。

    • #0f0 是绿色的十六进制颜色代码。

    • 50% 表示这个颜色在渐变的50%位置。

  5. #ccc 70%:

    • 这是第二个颜色停靠点。

    • #ccc 是浅灰色的十六进制颜色代码。

    • 70% 表示这个颜色在渐变的70%位置。

  6. red 80%:

    • 这是第三个颜色停靠点。

    • red 是红色。

    • 80% 表示这个颜色在渐变的80%位置。

渐变过程

  • 从起点(0%)到50%位置:背景颜色从透明逐渐变为绿色(#0f0)。

  • 从50%到70%位置:背景颜色从绿色(#0f0)逐渐变为浅灰色(#ccc)。

  • 从70%到80%位置:背景颜色从浅灰色(#ccc)逐渐变为红色(red)。

  • 从80%到终点(100%):背景颜色保持为红色(red)。

效果展示

2、径向渐变 

如何理解CSS的径向渐变,以及其渐变属性

CSS的径向渐变(Radial Gradient)是一种从中心点向外扩散的颜色过渡效果。你可以把它想象成一个圆形或椭圆形的光环,颜色从中心向边缘逐渐变化。

通俗易懂的解释

想象一下,你有一个光源,光线从中心向四周扩散。光线的强度和颜色在扩散过程中逐渐变化,这就是径向渐变的效果。在CSS中,你可以通过radial-gradient()函数来实现这种效果。

渐变属性

1. 形状(Shape)
  • circle:创建一个圆形渐变。

  • ellipse:创建一个椭圆形渐变。

2. 大小(Size)
  • closest-side:渐变的终点在离中心最近的边缘。

  • farthest-side:渐变的终点在离中心最远的边缘。

  • closest-corner:渐变的终点在离中心最近的角。

  • farthest-corner:渐变的终点在离中心最远的角。

3. 颜色停靠点(Color Stops)
  • 颜色停靠点是指定渐变中颜色变化的位置。

  • 你可以定义多个颜色停靠点,每个停靠点包括一个颜色值和一个位置值。

  • 位置值可以是百分比(如30%)或具体的长度值(如100px)。

 基本径向渐变

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>径向渐变示例</title><style>.box {width: 300px;height: 300px;background-image: radial-gradient(circle, red, yellow, green);}</style>
</head>
<body><div class="box"></div>
</body>
</html>

效果展示 

 指定形状、大小、位置和颜色停靠点

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>径向渐变示例</title><style>.box {width: 300px;height: 200px;background-image: radial-gradient(ellipse farthest-side at left, red 20%, yellow 40%, green 60%);}</style>
</head>
<body><div class="box"></div>
</body>
</html>

核心代码解析 

代码解析

background-image: radial-gradient(ellipse farthest-side at left, red 20%, yellow 40%, green 60%);
  1. background-image:

    • 这是一个CSS属性,用于为元素设置背景图像。

    • 在这个例子中,背景图像是一个径向渐变。

  2. radial-gradient:

    • 这是一个CSS函数,用于创建径向渐变。

    • 它接受多个参数来定义渐变的形状、大小、位置和颜色。

  3. ellipse farthest-side at left:

    • ellipse:表示渐变的形状是椭圆形。

    • farthest-side:表示渐变的大小,渐变会延伸到离中心最远的边缘。

    • at left:表示渐变的中心位置在元素的左侧。

  4. red 20%:

    • 这是第一个颜色停靠点。

    • red 是红色。

    • 20% 表示这个颜色在渐变的20%位置。

  5. yellow 40%:

    • 这是第二个颜色停靠点。

    • yellow 是黄色。

    • 40% 表示这个颜色在渐变的40%位置。

  6. green 60%:

    • 这是第三个颜色停靠点。

    • green 是绿色。

    • 60% 表示这个颜色在渐变的60%位置。

渐变过程

  • 从中心(左侧)到20%位置:背景颜色从红色(red)开始。

  • 从20%到40%位置:背景颜色从红色(red)逐渐变为黄色(yellow)。

  • 从40%到60%位置:背景颜色从黄色(yellow)逐渐变为绿色(green)。

  • 从60%到边缘:背景颜色保持为绿色(green)。

 效果展示

3、重复渐变 

【1】重复线性渐变

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>径向渐变示例</title><style>p{width: 200px;height: 200px;background-image: repeating-linear-gradient(90deg,#e50743,#e8ed30,#3fa62e 20%);/* 最后一个位置参数为20%,说明有五个充分周期,每个周期长度为边框宽度的20% */}</style>
</head>
<body><p></p>
</body>
</html>

效果展示 

【2】重复径向渐变

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>径向渐变示例</title><style>p{width: 200px;height: 200px;background-image: repeating-radial-gradient(circle at center, #e50743,#e8ed30,#3fa62e 20%);/* 最后一个位置参数为20%,说明有五个充分周期,每个周期长度为边框宽度的20% */}</style>
</head>
<body><p></p>
</body>
</html>

效果展示 

4、阶段案例——感动中国人物榜 

HTML代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>感动中国人物榜</title><link href="css/style24.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="bg"><ul><li class="tp"></li><li>彭士禄</li><li>杨振宁</li><li>顾诵芬</li><li>吴天一</li><li class="yj">朱彦夫</li></ul>
</div>
</body>
</html>

CSS代码

*{margin:0; padding:0; list-style:none; outline:none;}
/*整体控制人物榜模块*/
.bg{width:600px; height:550px; background-image:repeating-radial-gradient(circle at 50% 50%,#c9120a,#9e110b 1%);margin:50px auto; padding:40px;  border-radius:50%;padding-top:50px;border:10px solid #eee;}
/*人物名字部分*/	
ul{width:372px; height:530px; background:#e94632; border-radius:30px; box-shadow:15px 15px 12px #000; margin:0 auto;
}
ul li{width:372px; height:55px; background:#da171b url(../img/huo.png) no-repeat 70px 20px; margin-bottom:2px;font-size:18px; color:#fdc578; line-height:55px; text-align:center; font-family:"微软雅黑";}
/*需要单独控制的列表项*/		
ul .tp{width:372px; height:247px;background:#da171b; background-image:url(../img/gandong.png),url(../img/wenzi.png);background-repeat:no-repeat;background-position:87px 16px,99px 192px;border-radius:30px 30px 0 0;}
ul .yj{border-radius:0 0 30px 30px;}

效果展示 

两张背景图片的分布位置解析(直接看结论版):

  1. 层级关系

    • 先写的 gandong.png 像「贴纸」盖在 wenzi.png 上方(若位置重叠)

  2. 精确坐标

    • 第一张图(gandong.png)

      • 距离容器左侧87px

      • 距离容器顶部16px

      • 相当于贴在容器左上区域,靠近顶部

    • 第二张图(wenzi.png)

      • 距离容器左侧99px

      • 距离容器顶部192px

      • 相当于贴在容器左下区域,靠近底部

  3. 直观示意图

    复制

    ┌───────────────────────┐(容器372x247px)
    │     红色背景          │
    │                       │
    │  🖼️gandong.png        │ ← 贴在(87,16)位置
    │                       │
    │                       │
    │                       │
    │                       │
    │     🖼️wenzi.png       │ ← 贴在(99,192)位置
    └───────────────────────┘(底部直角)

补充提示

  • 实际显示效果需确保图片尺寸 ≤ 容器剩余空间(如 gandong.png 宽度应 ≤ 372-87=285px

  • 用浏览器按 F12 审查元素,在样式面板拖动坐标值可实时观察图片移动

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

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

相关文章

Java StringUtils工具类常用方法详解

StringUtils是Apache Commons Lang库中一个极其常用的工具类&#xff0c;它提供了大量处理字符串的静态方法&#xff0c;能够简化我们的日常开发工作&#xff0c;提高代码的可读性和健壮性。下面我将详细介绍StringUtils类中最常用的方法及其使用场景。 一、StringUtils的基本…

设计模式(创建型)- 原型模式

目录 定义 类图 角色 优缺点 优点 缺点 应用场景 案例展示 浅克隆 深克隆 定义 原型模式旨在创建重复的对象&#xff0c;同时确保良好的性能表现。它通过复制现有对象&#xff08;原型&#xff09;来创建新对象&#xff0c;而非使用传统的构造函数创建方式。这种设计…

MQ的数据一致性,如何保证?

1 数据一致性问题的原因 这些年在Kafka、RabbitMQ、RocketMQ踩过的坑&#xff0c;总结成四类致命原因&#xff1a; 生产者悲剧&#xff1a;消息成功进Broker&#xff0c;却没写入磁盘就断电。消费者悲剧&#xff1a;消息消费成功&#xff0c;但业务执行失败。轮盘赌局&#x…

Angular由一个bug说起之十五:自定义基于Overlay的Tooltip

背景 工具提示&#xff08;tooltip&#xff09;是一个常见的 UI 组件&#xff0c;用于在用户与页面元素交互时提供额外的信息。由于angular/material/tooltip的matTooltip只能显示纯文本&#xff0c;所以我们可以通过自定义Directive来实现一个灵活且功能丰富的tooltip Overlay…

简单介绍一下Unity中的ScriptableObject

ScriptableObject的本质 ScriptableObject是Unity引擎中的一个特殊基类&#xff0c;允许你创建不依附于游戏对象的数据容器&#xff0c;以资产(Asset)形式存储在项目中。这些资产&#xff1a; 可在编辑器中创建和配置 在构建后作为资产打包 可通过Resources或AssetBundle加…

ubuntu24.04.2 NVIDIA GeForce RTX 4060笔记本安装驱动

https://www.nvidia.cn/drivers/details/242281/ 上面是下载地址 sudo chmod x NVIDIA-Linux-x86_64-570.133.07.run # 赋予执行权限把下载的驱动复制到家目录下&#xff0c;基本工具准备&#xff0c;如下 sudo apt update sudo apt install build-essential libglvnd-dev …

LabVIEW 布尔控件回车键触发程序退出

在 LabVIEW 开发过程中&#xff0c;部分用户可能会遇到按下回车键&#xff08;Enter&#xff09;后&#xff0c;程序意外退出的问题。该问题主要源于布尔控件的属性设置冲突&#xff0c;包括键分配、数据绑定及 Tab 键行为等。本文将详细分析问题根源&#xff0c;并提供一套完整…

分布式系统面试总结:3、分布式锁(和本地锁的区别、特点、常见实现方案)

仅供自学回顾使用&#xff0c;请支持javaGuide原版书籍。 本篇文章涉及到的分布式锁&#xff0c;在本人其他文章中也有涉及。 《JUC&#xff1a;三、两阶段终止模式、死锁的jconsole检测、乐观锁&#xff08;版本号机制CAS实现&#xff09;悲观锁》&#xff1a;https://blog.…

WebWorkers在项目中的使用案例

Worker | 文档 worker 线程的关闭在主线程和 worker 线程都能进行操作&#xff0c;但对 worker 线程的影响略有不同。 // main.js&#xff08;主线程&#xff09; const myWorker new Worker(/worker.js); // 创建worker myWorker.terminate(); // 关闭worker 复制代码 // wor…

vue ts+Windi CSS

1、创建vue项目 trae&#xff08;字节&#xff09;打开一个空文件夹 npm install -g vue/cli vue create my-project cd my-project vue add typescript npm run serve vue项目创建完成 2、安装windicss vue add windicss vue.config.js配置 npm install vue-router …

【HTML 基础教程】HTML 编辑器

HTML 编辑器推荐 可以使用专业的 HTML 编辑器来编辑 HTML&#xff0c;菜鸟教程为大家推荐几款常用的编辑器&#xff1a; VS Code&#xff1a;Visual Studio Code - Code Editing. RedefinedSublime Text&#xff1a;http://www.sublimetext.com/在线编辑器&#xff1a;HTML/C…

文件上传的小点总结(2)

4.黑名单绕过(.htaccess方法) 源码一打开&#xff0c;遇到这样的黑名单是不是看的头皮发麻&#xff0c;这么多后缀都禁用。 .htaccess可以启用或禁用apache的功能&#xff0c;利用这个特点&#xff0c;我们可以使用该文件来禁用上述黑名单功能&#xff0c;从而上传**文件。 简…

mysql--主从复制--部署

MySQL 主从复制部署教程 一、主节点&#xff08;Master&#xff09;配置 1. 创建目录结构 mkdir -p /usr/local/src/mysql_demo/master_replica/{logs,configFile,data}2. 编写主节点的 MySQL 配置文件 my.cnf 路径&#xff1a;/usr/local/src/mysql_demo/master_replica/co…

Qt弹出新窗口并关闭(一个按钮)

参考&#xff1a;Qt基础 练习&#xff1a;弹出新窗口并关闭的两种实现方式&#xff08;两个按钮、一个按钮&#xff09;_qt打开一个窗口另一个关闭-CSDN博客 实现&#xff1a; 一个按钮&#xff0c;点击一次&#xff0c;按钮的名字从open window变为close window&#xff0c;…

游戏引擎学习第185天

回顾并计划今天的内容 我们完成了开始整理这些数据的工作&#xff0c;但我们还没有机会真正去查看这些数据的具体内容&#xff0c;因为我们只是刚刚开始了数据整理的基本工作。我们收集了大量的信息&#xff0c;但到目前为止&#xff0c;仍然没有足够的可视化工具来帮助我们理…

《一本书讲透Elasticsearch:原理、进阶与工程实践》读书笔记

1&#xff1a;es的组成部分&#xff1a; Elasticsearch 引擎&#xff1a;核心组件&#xff0c;处理索引和搜索请求 Kibana&#xff1a;es的可视化的数据界面&#xff0c;用于分析和展示数据 Beats&#xff08;可选&#xff09;轻量级的日志采集器 2&#xff1a;基本概念 es开…

[React 进阶系列] 组合组件 复合组件

[React 进阶系列] 组合组件 & 复合组件 今天写个人项目练手的时候搜到了一个比价有趣的实现&#xff0c;于是用了一下&#xff0c;发现这个 concept 不是特别的熟&#xff0c;于是上网找了下&#xff0c;返现了一个叫 复合组件(compound components) 的概念。搜索了一下后…

HarmonyOS NEXT 鸿蒙中关系型数据库@ohos.data.relationalStore API 9+

核心API ohos.data.relationalStore API 9 数据库 数据库是存储和管理数据的系统 数据库&#xff08;Database&#xff09;是一个以特定方式组织、存储和管理数据的集合&#xff0c;通常用于支持各种应用程序和系统的运行。它不仅是存放数据的仓库&#xff0c;还通过一定的…

用HTML和CSS生成炫光动画卡片

这个效果结合了渐变、旋转和悬浮效果的炫酷动画示例&#xff0c;使用HTML和CSS实现。 一、效果 二、实现 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport&quo…

蓝桥杯第10届 后缀表达式

题目描述 给定 N 个加号、M 个减号以及 NM1 个整数 A1,A2,⋅⋅⋅,ANM1​&#xff0c;小明想知道在所有由这N 个加号、M 个减号以及 NM1 个整数凑出的合法的 后缀表达式中&#xff0c;结果最大的是哪一个&#xff1f; 请你输出这个最大的结果。 例如使用 1 2 3 -&#xff0c…