html - 居中 SVG 元素 Chrome 与 Safari

标签 html css svg cross-browser

我正在尝试将 SVG 元素置于父元素的中心。但是,我发现 Chrome 和 Safari 之间存在差异。以下代码在 Chrome 上将文本很好地居中在正方形内,但在 Safari 上则不然:

<svg width="200px" height="200px">
  <g transform="translate(70,70)">
    <path d="M -40,-40 l 80,0 l 0,80 l -80,0 l 0,-80 z" style="fill: gray"></path>
    <g>
      <text text-anchor="middle" dominant-baseline="middle" style="fill: white" transform="scale(2)">
        <tspan>test</tspan>
      </text>
    </g>
  </g>

</svg>

结果:

Chrome vs Safari

我用这个测试用例创建了一个 jsFiddle:

https://jsfiddle.net/yq11jot0/

如何使正方形内的文本垂直居中?

最佳答案

只使用 dy 而不是 dominant-baseline 怎么样?

<svg width="200px" height="200px">
  <g transform="translate(70,70)">
    <path d="M -40,-40 l 80,0 l 0,80 l -80,0 l 0,-80 z" style="fill: gray"></path>
    <g>
      <text text-anchor="middle" dy="0.25em" style="fill: white" transform="scale(2)">
        <tspan>test</tspan>
      </text>
    </g>
  </g>

</svg>

关于html - 居中 SVG 元素 Chrome 与 Safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41985077/

相关文章:

html - SVG foreignObject 和绝对定位

html - IE8 CSS 和 html 对比 IE7

javascript - 在使用 jQuery 时,我应该使用类而不是 ID 吗?

css - 是否可以在 HTML5 中省略占位符/水印?

jquery - Mobile WebKit按钮点击伪类

css - 左侧和右侧容器不能改变右侧

javascript - 通过单击链接生成随机背景颜色

javascript - 通过 URL 获取 svg 数据的 Angular 指令

jquery - 输入文本框 : mimic "clear text" X button just like select2 dropdown component

html - 将graphviz有向图转移到svg并包含在dart网络应用程序中。但是 anchor 在onclick方法上不可用