[翻译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
相关文章
|
前端开发
layui select 绑定onchange事件失效
layui select 绑定onchange事件失效问题处理
|
JavaScript 前端开发 小程序
js将数组中相同的元素进行分组 必看
js将数组中相同的元素进行分组 必看
337 1
|
10月前
|
弹性计算 人工智能 应用服务中间件
阿里云服务器最新优惠价格表及选购指南(新版)
随着云计算技术的不断发展,阿里云再次推出了服务器优惠价格表,为用户提供更加灵活、经济的上云方案。本次优惠涵盖了轻量应用服务器、ECS云服务器以及GPU服务器等多种类型,满足不同用户的需求。以下是详细的价格表及选购指南。
|
6月前
|
Python Windows
Python 3.14 安装教程:详细步骤+自定义路径+环境变量配置(64位)
Python是简单易学、开源免费的面向对象编程语言。本文详解Python 3.14在64位Windows系统的安装全流程:下载解压、管理员运行、配置PATH与安装路径、创建IDLE桌面快捷方式,并通过启动交互界面验证安装成功。(239字)
3169 10
|
XML JSON 前端开发
bpmn.js 使用常见问题(不定时持续更新)
bpmn.js 使用常见问题(不定时持续更新)
7275 2
|
11月前
|
自然语言处理 前端开发
基于Tauri2.9+Vite7.1+Vue3+Pinia3+ElementPlus客户端admin后台系统模板
最新研发tauri2.9+vite7.1+vue3 setup+pinia3+element-plus桌面版高颜值轻量级中后台管理系统TauriVue3Admin。
551 7
|
人工智能 算法 调度
多智能体协作平台(MCP)实现多供应商AI生态系统中的互操作性
在现代人工智能(AI)领域,智能体的互操作性是实现系统协同的关键要素。随着多个供应商提供不同的智能体产品,如何在复杂的生态系统中构建互操作性的基础设施变得尤为重要。本文将探讨如何构建一个支持多供应商智能体互操作性的生态体系,重点讨论多供应商环境中的MCP(Multi-Agent Collaborative Platform)架构,解决不同智能体之间的协作与资源共享问题。
多智能体协作平台(MCP)实现多供应商AI生态系统中的互操作性
|
Java API Maven
SpringBootWeb篇-入门了解Swagger的具体使用
通过上述步骤,您可以在 Spring Boot 项目中快速集成和使用 Swagger。Swagger 提供了简洁的配置和强大的功能,使得 API 文档的生成和测试变得非常方便。通过 Swagger 的注解,开发者可以清晰地描述 API 的功能,提高文档的可读性和可维护性。通过访问 Swagger UI,您可以直观地查看和测试 API,极大地提升开发效率。
1512 7
|
监控 Go API
Go语言在微服务架构中的应用实践
在微服务架构的浪潮中,Go语言以其简洁、高效和并发处理能力脱颖而出,成为构建微服务的理想选择。本文将探讨Go语言在微服务架构中的应用实践,包括Go语言的特性如何适应微服务架构的需求,以及在实际开发中如何利用Go语言的特性来提高服务的性能和可维护性。我们将通过一个具体的案例分析,展示Go语言在微服务开发中的优势,并讨论在实际应用中可能遇到的挑战和解决方案。

热门文章

最新文章