[翻译svg教程]svg 中的g元素

简介: svg 中的元素用来组织svg元素。如果一组svg元素被g元素包裹了,你可以通过对g元素进行变换(transform),被g元素包裹的元素也将被变换,就好这些被svg包裹的元素是一个元素一样,和相比这是一个很好的优势,嵌套的svg中元素是不会被变换影响的。

svg 中的<g>元素用来组织svg元素。如果一组svg元素被g元素包裹了,你可以通过对g元素进行变换(transform),被g元素包裹的元素也将被变换,就好这些被svg包裹的元素是一个元素一样,和<svg>相比这是一个很好的优势,嵌套的svg中元素是不会被变换影响的。

g元素实例

g元素代码实例

<svg xmlns="http://www.w3.org/2000/svg"
    xmlns:xlink="http://www.w3.org/1999/xlink">
    
    <g>
      <line x1="10" y1="10" x2="85" y2="10"
          style="stroke: #006600;"/>

      <rect x="10" y="20" height="50" width="75"
          style="stroke: #006600; fill: #006600"/>

      <text x="10" y="90" style="stroke: #660000; fill: #660000">
        Text grouped with shapes</text>
    </g>

</svg>

 

效果如下

image

这个代码示例立马,g元素包裹了3个元素(两条线一个文本框)

下面我们看看对g元素进行变换

<svg xmlns="http://www.w3.org/2000/svg"
    xmlns:xlink="http://www.w3.org/1999/xlink">

    <g transform="rotate(45 50 50)">
      <line x1="10" y1="10" x2="85" y2="10"
          style="stroke: #006600;"/>

      <rect x="10" y="20" height="50" width="75"
          style="stroke: #006600; fill: #006600"/>

      <text x="10" y="90" style="stroke: #660000; fill: #660000">
        Text grouped with shapes</text>
    </g>

</svg>

 

效果如下

image

可以看到,所有被g元素包裹的元素,都在50,50这点 旋转了45度

g元素样式继承

g元素的样式 会被那些包裹着的元素继承

例如

<g style="stroke: #0000ff; stroke-width: 4px; fill: #ff0000">
    <rect    x="10"  y="10" width="100" height="50" />
    <circle cx="150" cy="35" r="25" />
    <circle cx="250" cy="35" r="25"
           style="stroke: #009900; fill: #00ff00;"/>
</g>

 

这段代码包含一个矩形 两个圆,g元素定义了边框的宽度和颜色还有填充的颜色

第一个矩形和第一个元都会继承这些第二个圆自己重写了样式,我看看看效果

image

g元组不支持 定位属性 x和y

 

和<svg>元素相比,g元素不支持定位属性x和y,需要定位的时候可以用变换属性代替: transform="translate(x,y)

test
相关文章
|
7天前
|
弹性计算 人工智能 应用服务中间件
阿里云服务器最新优惠价格表及选购指南(新版)
随着云计算技术的不断发展,阿里云再次推出了服务器优惠价格表,为用户提供更加灵活、经济的上云方案。本次优惠涵盖了轻量应用服务器、ECS云服务器以及GPU服务器等多种类型,满足不同用户的需求。以下是详细的价格表及选购指南。
|
4月前
|
机器学习/深度学习 监控 算法
摊位货摊自动识别与监控系统识别系统开箱即用教程 (YOLOv8)| 完整源码与部署教程
本项目展示了如何通过 YOLOv8 深度学习模型与 PyQt5 图形界面结合,开发一个 摊位货摊自动识别与监控系统。该系统能够高效地检测摊位上的商品,并对周围的行为进行实时监控,为摊位管理带来极大的便利。系统支持多种输入方式,如图像、视频和摄像头,并具备异常行为检测和报警功能。
摊位货摊自动识别与监控系统识别系统开箱即用教程 (YOLOv8)| 完整源码与部署教程
|
5月前
|
人工智能 算法 调度
多智能体协作平台(MCP)实现多供应商AI生态系统中的互操作性
在现代人工智能(AI)领域,智能体的互操作性是实现系统协同的关键要素。随着多个供应商提供不同的智能体产品,如何在复杂的生态系统中构建互操作性的基础设施变得尤为重要。本文将探讨如何构建一个支持多供应商智能体互操作性的生态体系,重点讨论多供应商环境中的MCP(Multi-Agent Collaborative Platform)架构,解决不同智能体之间的协作与资源共享问题。
多智能体协作平台(MCP)实现多供应商AI生态系统中的互操作性
|
11月前
|
传感器 监控 物联网
智慧家居环境监测与控制系统研发与应用的目标分析
- **背景**:随着物联网技术的发展和智能家居市场的快速增长,人们对居住环境的舒适性、安全性及能源使用效率的要求日益提高。 - **目的**:通过研发和应用智慧家居环境监测与控制系统,实现住宅环境中温度、湿度、空气质量等关键参数的有效管理和自动化调节。
632 21
|
JavaScript 前端开发 开发者
介绍如何在WebStorm中调试JavaScript文件
介绍如何在WebStorm中调试JavaScript文件
539 1
|
存储 安全 算法
CTF磁盘取证分析方法案例
CTF磁盘取证分析方法案例
528 0
构建直接序列扩频系统模型(Matlab代码实现)
构建直接序列扩频系统模型(Matlab代码实现)
785 0
|
移动开发 小程序 前端开发
uniap开发微信小程序如何在线预览pdf文件
这是一段关于在线预览和处理PDF的多方案说明,包括使用JavaScript库PDF.js(如`pdfh5.js`)实现H5页面预览,提供QQ群和技术博客链接以获取帮助和支持。还介绍了两个适用于Uni-app的插件,一个用于H5、小程序和App中的PDF预览和下载,另一个专门解决手机端PDF预览问题。此外,还详细描述了在Uni-app中使用微信小程序API`wx.openDocument`显示PDF的步骤,包括上传文件、配置权限和编写代码。

热门文章

最新文章