[翻译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
相关文章
|
4月前
|
XML JavaScript 前端开发
SVG学习
【10月更文挑战第1天】
70 3
|
XML 前端开发 JavaScript
SVG的介绍与简单案例
SVG的介绍与简单案例
159 0
|
9月前
|
算法 前端开发
如何用SVG画一个特定边框(下)
如何用SVG画一个特定边框(下)
91 3
|
9月前
|
前端开发
如何用SVG画一个特定边框(上)
如何用SVG画一个特定边框(上)
103 1
|
Web App开发 Java Apache
使用batik在kotlin中将TTF字体转换为SVG图像
将TTF字体自由的转换为SVG图像是一个有趣的媒体交换,如何实现这一冷门的需求呢?本文参考batik的源代码并利用其中一些功能实现这个有创造力的小功能。
551 0
使用batik在kotlin中将TTF字体转换为SVG图像
|
Web App开发 前端开发 iOS开发
手把手教你使用CSS3为文本和元素实现添加阴影效果
手把手教你使用CSS3为文本和元素实现添加阴影效果
242 0
手把手教你使用CSS3为文本和元素实现添加阴影效果
|
前端开发 流计算
《图解CSS》字体与文本
* 字体是“文字的不同体式”或者“字的形体结构”,例如宋体/黑体/行楷等。 * 文本就是一组字或字符,比如章标题、段落正文等等,跟使用什么字体无关。 * CSS 为字体和文本分别定义了属性。字体属性主要描述一类字体的大小和外观。比如,使用什么字体族(是 Times,还是 Helvitica),多大字号,粗体还是斜体。文本属性描述对文本的处理方式。比如,行高或者字符间距多大,有没有下划线和缩进。
114 0
|
JavaScript Web App开发
[翻译svg教程]svg学习系列 开篇
目录 [翻译svg教程]svg学习系列 开篇       【翻译svg教程 】svg 的坐标系统        [翻译svg教程]svg 中的g元素        [翻译svg教程]svg中矩形元素 rect        [翻译svg教程]svg中的circle元素        [sv...
1268 0
|
前端开发 容器 Web App开发
如何用纯 CSS 创作单元素点阵 loader
效果预览 在线演示 按下右侧的“点击预览”按钮可以在当前页面预览,点击链接可以全屏预览。https://codepen.io/comehope/pen/YvBvBr 可交互视频 此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。
1152 0
|
Web App开发 前端开发
CSS实用技巧之黑白图像
在五彩缤纷的世界中,回归到黑白照片绝对是一种“复古”行为。而这种行为非常好理解的地方,就是黑白照片有着更细腻的画面感,展示出来的效果与众不同。下面我们通过一段代码让你的彩色照片显示为黑白照片,是不是很酷?
1256 0