我尝试旋转svg文本。通过从xslt调用php函数,我得到文本的位置为%即15%。问题是我无法使用%旋转svg对象。如果我使用数字代码,它的工作原理。 下面我将问题简化为:
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://ww.w3.org/2001/xml-events" xmlns:php="http://php.net/xsl" version="1.1" baseProfile="full">
<text x="50%" y="50%" transform="rotate(-90 50% 50%)">rotateMe</text>
<line x1="50%" y1="47%" x2="60%" y2="47%" stroke="black" stroke-width="2px"/>
</svg>
这张照片位于我的浏览器屏幕中间
我希望它看起来像这样:
但因为%
而无效transform="rotate(-90 **50% 50%**)"
我需要使用%作为坐标。我的问题的任何想法或解决方案?
先谢谢你。
答案 0 :(得分:3)
您可以使用内部<svg>
元素翻译坐标。下面的示例显示根据您的“我希望它看起来像这样”在Firefox上的位图。
如果您无法在所使用的任何浏览器上看到该文本,请尝试将overflow =“visible”添加到内部<svg>
元素,以便您可以看到它的最终位置。并非所有浏览器都支持dominant-baseline属性,因此您可能需要改变文本的y属性。
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg x="50%" y="50%" width="100" height="100">
<text text-anchor="end" dominant-baseline="text-before-edge" transform="rotate(-90 0 0)">rotateMe</text>
</svg>
<line x1="50%" y1="47%" x2="60%" y2="47%" stroke="black" stroke-width="2px"/>
</svg>