javascript - svg中text标签里面的文字怎么实现垂直和水平的居中~!
怪我咯
怪我咯 2017-04-10 16:57:22
[JavaScript讨论组]

html:

<svg id="svg1">
    <polygon points="0,0 80,0 100,12 80,24 0,24 10,12" stroke="black" stroke-width="1" fill="blue" />
    <a href="#">
     <text  dy='.3em' fill="red">你好</text>
    </a>
</svg>

参考网站1:http://lea.verou.me/2013/03/easily-center-text-vertically-with-svg/
参考网站2:http://www.html5party.com/2155.html

根据外文网站的方法设置text标签的
css为text-anchor(水平居中)和dominant-baseline(垂直居中)
没有达到想要的效果?

需求:
能否实现垂直居中的效果,即使文本字体数调整,或者字体像素调整,内容还是居中的效果。

求大神指导!

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(2)
PHP中文网
<!-- 设置width和height,后面才能相对定位 -->
<svg id="svg1" width="100" height="24">
    <polygon points="0,0 80,0 100,12 80,24 0,24 10,12" stroke="black" stroke-width="1" fill="blue"></polygon>
    <a href="#">
      <!--
        text-anchor="middle" 表示以文本的中点为基准定位
        x="50%" 表示定位到图片宽度的50%处,也就是居中
        y="50%" 表示文本底部在图片的中央
        dy=".3em" 让文本的底部从图片的中央继续往下移0.3行,从而达到垂直居中
     -->
     <text x="50%" y="50%" dy=".3em" fill="red" text-anchor="middle">你好</text>
    </a>
</svg>

如果不想把大小定死的话,可以用viewBox="0 0 100 24",反正就是要把图片内容的宽度指定出来,x=50%才知道中间在什么地方。

巴扎黑

建议看看慕课网的走进svg的教程,你的问题这个视频给出了完整的解决方案 http://www.imooc.com/video/3778 不仅可以居中还能上下对齐

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号