css - SVG 中的左对齐字母

标签 css svg

我在 SVG 图形中有两个文本标签:

<svg width="960" height="500"><g transform="translate(20,20)">
    <text class="title" dx="0px" dy="39px">1980-2012</text>
    <text class="cantontitle" dx="0px" dy="78px">Graubünden</text>
</svg>​

我使用以下 CSS 样式:

svg {                                                                                       
    font: 10px sans-serif;                                                                  
}                                                                                           

.title {                                                                                    
    font: 300 78px Helvetica Neue;                                                          
    fill: #666;                                                                             
}                                                                                           

.cantontitle {                                                                              
    font: 300 40px Helvetica Neue;                                                                                                     
    fill: #666;                                                                             
}                                                                                          ​

不幸的是,字符没有正确左对齐。

Screenshot

是否可以将两个 <text> 的第一个字符正确地左对齐?元素?

这里有一个 jsfiddle 更容易测试:http://jsfiddle.net/UMnnP/1/

最佳答案

文本左对齐。偏移量是由字体中字形的规范引起的。与简单路径不同,字形具有额外的度量定义,这些定义定义了它“存在”的矩形。此矩形的左端独立于字形图形的左端,它可以有负偏移和正偏移。除了字体规范之外,字距也被添加到特殊的字形对中。

要将字形完全准确地左对齐,您需要将文本转换为路径,或者您可以尝试通过检查字形的规范来获取偏移量,如果您的字体为 svg 格式,这很容易实现。但总而言之,这可能会变得非常乏味,并且需要一点手写偏移来纠正,这可以节省您数小时的编码时间,但如果您真的需要它,我强烈建议您联系字体及其规范。

问候……

编辑:

你的CSS不工作!才看到太晚了……

必须是:

font-family : Helvetica Neue

代替

font : Helvetica Neue

这样它就更左对齐了……

关于css - SVG 中的左对齐字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13471511/

相关文章:

javascript - 使用 Javascript 将两个 SVG 元素合并为一个?

animation - D3 中的递归/重复动画事件

html - 如何在 SVG 中使用 CSS 背景 url

css - 删除 compass 中未使用的生成的 css 文件

html - Img 将底部对齐到 div 的底部

html - 让 Div 在 Div 内顶部对齐

javascript - jquery css - 固定菜单跳转

css - 为内联 svg 添加没有文本的下划线文本装饰

javascript - 如何操作 svg 外来对象 html 文本换行和定位?

javascript - 行高相对不变(基于其父div的大小)