零基础教你学前端——44、矩形、圆形和椭圆形
zhezhongyun 2025-07-09 00:19 1 浏览
使用SVG绘制矩形、圆形和椭圆形。
SVG有一些预定义的形状元素,可以供开发者使用。这些元素分别是矩形、圆形 circle 、椭圆 ellipse、线条 line、多线条 polyline、多边形 polygon、路径 path 。
我们先来学习矩形的绘制。
绘制矩形使用 rect 标签,它是 rectangle 的缩写,就是矩形的意思。它是一个单标签,基本语法为:尖角号 rect,斜线尖角号。
注意,任何一个 HTML 单标签,都可以在第二个尖角号前写一个斜线,表示标签闭合了,也就是说,用闭合标签来表示单标签,其实这样写更加严谨。
它有几个重要的属性:
width,定义矩形的宽度,值是一个数字。
height,定义矩形的高度,值也是一个数字。
fill [fl],定义矩形的填充颜色,值可以是任意合法的颜色值,比如颜色名称,rgb颜色值,十六进制颜色值等。
stroke-width [strok wdθ] ,笔画宽度,定义了矩形的边框宽度,值是一个数字。
stroke [strok] ,描边,定义矩形边框的颜色。
我们来举个例子。
打开编辑器,创建一个 rect_circle_ellipse.html 文件,补全基础代码,在 body 里添加一个 svg 标签,定义属性 width 等于 400,height 等于 110。
在svg里添加 rect 标签,定义属性 width 等于 300,height 等于 100,fill 颜色填充值为 blue,蓝色,stroke-width 笔画宽度属性值为 3, stroke 描边属性值为 black,黑色。保存文件。
在浏览器中预览,一个矩形就绘制好了。
再来学习几个矩形的属性:
width,定义矩形的宽度,值是一个数字。
x,定义矩形的左边位置,值是一个数字。
y,定义矩形的顶部位置,值是一个数字。
fill-opacity,定义填充颜色的不透明度,合法值的范围是0 到 1。
stroke-opacity,定义描边颜色的不透明度,合法值的范围是0 到 1。
回到编辑器,在上个 svg 结尾处添加一个 br 标签。
回车换行。添加一个新的 svg 标签,属性 width 等于 400,height 等于 180。
在 svg 里面添加一个 rect 标签,属性 x 等于 50,y 等于 20,width 等于 150,height 等于 150,fill 等于 blue,stroke 等于 tomato,stroke-width 等于 5,fill-opacity 等于 0.1,stroke-opacity 等于 0.9。保存。
回到浏览器,刷新,一个边长为150,背景色为蓝色,描边为番茄色,并带有一定透明度的矩形就绘制好了。
仔细观察,背景的透明度高,边框的透明度低,它们的透明度值分别为0.1 和 0.9。这说明:透明度的值越小,透明度越高。如果值为 0,就完全透明了。
我们也可以给 rect 定义一个 opacity 属性,用来设置整个元素的不透明度值,合法值的范围也是 0 到 1。
回到编辑器,我们去掉这个矩形的 fill-opacity 和 stroke-opacity 属性,定义一个opacity 属性,值为 0.5。保存。
回到浏览器,刷新,整个矩形透明了0.5,也就是描边和背景都透明了50%。
最后,我们来绘制一个圆角矩形。
圆角矩形通过给 rect 定义 rx,ry 两个属性来实现。
rx,定义圆角x轴方向的半径长度,值是一个数字。
ry,定义圆角y轴方向的半径长度,值是一个数字。
如果两个值相等,就是一个圆形的角,两个值不相等,就是一个椭圆形的角。
回到编辑器,在上个svg结尾处添加一个 br 标签。
回车换行。添加一个新的 svg 标签,属性 width 等于 400,height 等于 180。
在 svg 里面添加一个 rect 标签,属性 x 等于 50,y 等于 20,width 等于 150,height 等于 150,fill 等于 red,stroke 等于 black,stroke-width 等于 5,opacity 等于 0.5。
最后给rect 添加 rx 等于 20,ry 等于 20。保存。
回到浏览器,刷新,一个圆角矩形做好了。
返回编辑器,如果将 ry 改为 30。保存。
回到浏览器,刷新,矩形的四个角就变成椭圆形了。
接下来,我们学习绘制圆形。
绘制圆形使用 circle 标签,circle 就是圆的意思。它是一个单标签,基本语法为:尖角号 circle,斜线尖角号。
它有三个重要的属性:
cx 和 cy 属性,定义圆心的 x 和 y 坐标。如果省略了cx和cy,圆的中心会被设置为(0,0)。
r 属性,定义圆的半径。
和绘制矩形一样,通过定义 stroke、stroke-width、fill 属性来设置边框颜色、边框宽度和背景色填充等等。
提示一下, stroke、stroke-width、fill 这三个属性,常见的图形绘制都可以使用它们。
回到编辑器,在上个svg结尾处添加一个 br 标签。回车换行。
添加一个新的 svg 标签,属性 width 等于 100,height 等于 100。
在 svg 里面添加一个 circle 标签,属性 cx 等于 50,cy 等于 50,r 等于 40,stroke 等于 black,stroke-width 等于 3,fill 等于 red。保存。
回到浏览器,刷新,一个圆形就绘制好了。
最后,我们学习绘制椭圆形。
绘制椭圆形使用 ellipse 标签,ellipse 就是椭圆的意思。它是一个单标签,基本语法为:尖角号 ellipse,斜线尖角号。
椭圆与圆密切相关。不同的是,椭圆的 x 和 y 半径是不同的,而圆的 x 和 y 半径是相等的。
ellipse 有四个重要的属性:
cx 属性,定义椭圆中心的 x 坐标。
cy 属性,定义椭圆中心的 y 坐标。
rx 属性,定义水平半径。
ry 属性,定义垂直半径。
回到编辑器,在上个svg结尾处添加一个 br 标签。回车换行。
添加一个新的 svg 标签,属性 width 等于 140,height 等于 500。
在 svg 里面添加一个 ellipse 标签,属性 cx 等于 200,cy 等于 80,rx 等于 100,ry 等于 50,fill 等于yellow,stroke 等于 purple,stroke-width 等于 2。保存。
回到浏览器,刷新,一个椭圆形就绘制好了。
返回编辑器,我们绘制三个堆叠的椭圆。在上个svg结尾处添加一个 br 标签。回车换行。
添加一个新的 svg 标签,属性 width 等于 150,height 等于 500。
在 svg 里面添加一个 ellipse 标签,属性 cx 等于 240,cy 等于 100,rx 等于 220,ry 等于 30,fill 等于purple。
再添加一个 ellipse 标签,属性 cx 等于 220,cy 等于 70,rx 等于 190,ry 等于 20,fill 等于lime。
再添加一个 ellipse 标签,属性 cx 等于 210,cy 等于 45,rx 等于 170,ry 等于 50,fill 等于yellow。保存。
回到浏览器,刷新,三个逐渐缩小的堆叠椭圆就做好了。
仔细观察发现,三个椭圆的堆叠顺序并不是html的书写顺序。这是因为他们的位置和大小是由 cx, cy, rx, ry 来决定的,不是由 html 书写顺序来决定的。根据这个特点,我们可以将多个椭圆组合起来。
返回编辑器,在上个svg结尾处添加一个 br 标签。回车换行。
添加一个新的 svg 标签,属性 width 等于 100,height 等于 500。
在 svg 里面添加一个 ellipse 标签,属性 cx 等于 240,cy 等于 50,rx 等于 220,ry 等于 30,fill 等于 yellow。
再添加一个 ellipse 标签,属性 cx 等于 220,cy 等于 50,rx 等于 190,ry 等于 20,fill 等于white。保存。
回到浏览器,刷新,视觉上看,一个空心的椭圆就绘制好了。
文章配套视频链接「链接」
相关推荐
- 一篇文章带你了解SVG 渐变知识(svg动画效果)
-
渐变是一种从一种颜色到另一种颜色的平滑过渡。另外,可以把多个颜色的过渡应用到同一个元素上。SVG渐变主要有两种类型:(Linear,Radial)。一、SVG线性渐变<linearGradie...
- Vue3 实战指南:15 个高效组件开发技巧解析
-
Vue.js作为一款流行的JavaScript框架,在前端开发领域占据着重要地位。Vue3的发布,更是带来了诸多令人兴奋的新特性和改进,让开发者能够更高效地构建应用程序。今天,我们就来深入探讨...
- CSS渲染性能优化(低阻抗喷油器阻值一般为多少欧)
-
在当今快节奏的互联网环境中,网页加载速度直接影响用户体验和业务转化率。页面加载时间每增加100毫秒,就会导致显著的流量和收入损失。作为前端开发的重要组成部分,CSS的渲染性能优化不容忽视。为什么CSS...
- 前端面试题-Vue 项目中,你做过哪些性能优化?
-
在Vue项目中,以下是我在生产环境中实践过且用户反馈较好的性能优化方案,整理为分类要点:一、代码层面优化1.代码分割与懒加载路由懒加载:使用`()=>import()`动态导入组件,结...
- 如何通过JavaScript判断Web页面按钮是否置灰?
-
在JavaScript语言中判断Web页面按钮是否置灰(禁用状态),可以通过以下几种方式实现,其具体情形取决于按钮的禁用方式(原生disabled属性或CSS样式控制):一、检查原生dis...
- 「图片显示移植-1」 尝试用opengl/GLFW显示图片
-
GLFW【https://www.glfw.org】调用了opengl来做图形的显示。我最近需要用opengl来显示图像,不能使用opencv等库。看了一个glfw的官网,里面有github:http...
- 大模型实战:Flask+H5三件套实现大模型基础聊天界面
-
本文使用Flask和H5三件套(HTML+JS+CSS)实现大模型聊天应用的基本方式话不多说,先贴上实现效果:流式输出:思考输出:聊天界面模型设置:模型设置会话切换:前言大模型的聊天应用从功能...
- ae基础知识(二)(ae必学知识)
-
hi,大家好,我今天要给大家继续分享的还是ae的基础知识,今天主要分享的就是关于ae的路径文字制作步骤(时间关系没有截图)、动态文字的制作知识、以及ae特效的扭曲的一些基本操作。最后再次复习一下ae的...
- YSLOW性能测试前端调优23大规则(二十一)---避免过滤器
-
AlphalmageLoader过滤器是IE浏览器专有的一个关于图片的属性,主要是为了解决半透明真彩色的PNG显示问题。AlphalmageLoader的语法如下:filter:progid:DX...
- Chrome浏览器的渲染流程详解(chrome预览)
-
我们来详细介绍一下浏览器的**渲染流程**。渲染流程是浏览器将从网络获取到的HTML、CSS和JavaScript文件,最终转化为用户屏幕上可见的、可交互的像素画面的过程。它是一个复杂但高度优...
- 在 WordPress 中如何设置背景色透明度?
-
最近开始写一些WordPress专业的知识,阅读数奇低,然后我发一些微信昵称技巧,又说我天天发这些小学生爱玩的玩意,写点文章真不容易。那我两天发点专业的东西,两天发点小学生的东西,剩下三天我看着办...
- manim 数学动画之旅--图形样式(数学图形绘制)
-
manim绘制图形时,除了上一节提到的那些必需的参数,还有一些可选的参数,这些参数可以控制图形显示的样式。绘制各类基本图形(点,线,圆,多边形等)时,每个图形都有自己的默认的样式,比如上一节的图形,...
- Web页面如此耗电!到了某种程度,会是大损失
-
现在用户上网大多使用移动设备或者笔记本电脑。对这两者来说,电池寿命都很重要。在这篇文章里,我们将讨论影响电池寿命的因素,以及作为一个web开发者,我们如何让网页耗电更少,以便用户有更多时间来关注我们的...
- 11.mxGraph的mxCell和Styles样式(graph style)
-
3.1.3mxCell[翻译]mxCell是顶点和边的单元对象。mxCell复制了模型中可用的许多功能。使用上的关键区别是,使用模型方法会创建适当的事件通知和撤销,而使用单元进行更改时没有更改记...
- 按钮重复点击:这“简单”问题,为何难住大半面试者与开发者?
-
在前端开发中,按钮重复点击是一个看似不起眼,实则非常普遍且容易引发线上事故的问题。想象一下:提交表单时,因为网络卡顿或手抖,重复点击导致后端创建了多条冗余数据…这些场景不仅影响用户体验,更可能造成实...
- 一周热门
- 最近发表
- 标签列表
-
- HTML 教程 (33)
- HTML 简介 (35)
- HTML 实例/测验 (32)
- HTML 测验 (32)
- JavaScript 和 HTML DOM 参考手册 (32)
- HTML 拓展阅读 (30)
- HTML文本框样式 (31)
- HTML滚动条样式 (34)
- HTML5 浏览器支持 (33)
- HTML5 新元素 (33)
- HTML5 WebSocket (30)
- HTML5 代码规范 (32)
- HTML5 标签 (717)
- HTML5 标签 (已废弃) (75)
- HTML5电子书 (32)
- HTML5开发工具 (34)
- HTML5小游戏源码 (34)
- HTML5模板下载 (30)
- HTTP 状态消息 (33)
- HTTP 方法:GET 对比 POST (33)
- 键盘快捷键 (35)
- 标签 (226)
- HTML button formtarget 属性 (30)
- CSS 水平对齐 (Horizontal Align) (30)
- opacity 属性 (32)