SVG圖片的文字置中與垂直置中(React與HTML內嵌SVG)

就如同下圖所表示的兩個SVG上有水平的字和垂直的字,以下將針對React.js和HTML內嵌SVG的作法。





React.js作法

寫一個MiddleAlignedText元件如下程式碼

設定vertical屬性為true就會是垂直置中的文字
設定vertical屬性為false就會是水平置中的文字

const MiddleAlignedText = ({vertical, children, ...rest}) => (
<svg>
<text
{...rest}
writingMode={vertical ? "tb" : undefined}
alignmentBaseline={vertical ? undefined : "middle"}
textAnchor="middle"
>{children}</text>
</svg>
);

使用MiddleAlignedText元件的一個React.js的程式碼如下



HTML內嵌SVG作法

在既有的SVG圖中(以這篇的圖來說就是衣服圖示),在svg底下加入text,設定如React.js屬性,只是要記得轉換名稱成下面這些屬性

  • writing-mode
  • alignment-baseline
  • text-anchor

將置中文字加入SVG圖片中的一個範例如下


留言