是否可以像使用 glyphicon 一样使用 svg?
Is it possible to act with svg as with glyphicon?
是否可以像 HTML 中的 glyphicon 一样使用 svg?
我的意思是使内联 svg 缩放到当前字体大小并且可以使用当前 color/background-color?
后记: 可以用“1em”来操纵 "svg-glyph" 大小,但请注意 1 em 的价值有点不够:它比大写字母大字母小于行高。
span {
fill:gold;
font-size:24px;
color: green;
background-color: Lavender;
}
span > svg {
display:inline-block;
width:1em;
}
<div>
<span>
1 em Baseline Align:
<svg viewBox="0 0 100 100" style="vertical-align:baseline">
<rect height="100" width="100" fill="none" stroke="currentColor" stroke-width="15" />
</svg>
</span>
</div>
<div>
<span>
1 em Text bottom Align:
<svg viewBox="0 0 100 100" style="vertical-align:text-bottom">
<rect height="100" width="100" fill="none" stroke="currentColor" stroke-width="15" />
</svg>
</span>
</div>
<div>
<span>
0.75em Baseline Align:
<svg viewBox="0 0 100 100" style="vertical-align:Baseline; width:0.75em; height:0.75em;">
<rect height="100" width="100" fill="none" stroke="currentColor" stroke-width="20" />
</svg>
</span>
</div>
应该可以从 html 继承填充和视口,但我找不到方法。
P.S。 javascript 应该是可能的,但不要 javascript 解决方案。
缩放到当前字体大小非常简单 - em 单位。
和fill/stroke默认可继承CSS属性:
span {
fill:gold;
font-size:24px;
}
span > svg {
display:inline-block;
vertical-align:middle;
width:1em;
}
<span>
Text:
<svg viewBox="0 0 100 100">
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" />
</svg>
</span>
继承文本颜色
要让您的 SVG 使用与文本相同的颜色,请使用特殊颜色值 "currentColor"。
span {
color:gold;
font-size:24px;
}
span > svg {
height:1em;
}
<span>
Text:
<svg viewBox="0 0 100 100">
<circle cx="50" cy="50" r="48" stroke="black" stroke-width="3" fill="currentColor" />
</svg>
and more text
</span>
是否可以像 HTML 中的 glyphicon 一样使用 svg?
我的意思是使内联 svg 缩放到当前字体大小并且可以使用当前 color/background-color?
后记: 可以用“1em”来操纵 "svg-glyph" 大小,但请注意 1 em 的价值有点不够:它比大写字母大字母小于行高。
span {
fill:gold;
font-size:24px;
color: green;
background-color: Lavender;
}
span > svg {
display:inline-block;
width:1em;
}
<div>
<span>
1 em Baseline Align:
<svg viewBox="0 0 100 100" style="vertical-align:baseline">
<rect height="100" width="100" fill="none" stroke="currentColor" stroke-width="15" />
</svg>
</span>
</div>
<div>
<span>
1 em Text bottom Align:
<svg viewBox="0 0 100 100" style="vertical-align:text-bottom">
<rect height="100" width="100" fill="none" stroke="currentColor" stroke-width="15" />
</svg>
</span>
</div>
<div>
<span>
0.75em Baseline Align:
<svg viewBox="0 0 100 100" style="vertical-align:Baseline; width:0.75em; height:0.75em;">
<rect height="100" width="100" fill="none" stroke="currentColor" stroke-width="20" />
</svg>
</span>
</div>
应该可以从 html 继承填充和视口,但我找不到方法。
P.S。 javascript 应该是可能的,但不要 javascript 解决方案。
缩放到当前字体大小非常简单 - em 单位。
和fill/stroke默认可继承CSS属性:
span {
fill:gold;
font-size:24px;
}
span > svg {
display:inline-block;
vertical-align:middle;
width:1em;
}
<span>
Text:
<svg viewBox="0 0 100 100">
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" />
</svg>
</span>
继承文本颜色
要让您的 SVG 使用与文本相同的颜色,请使用特殊颜色值 "currentColor"。
span {
color:gold;
font-size:24px;
}
span > svg {
height:1em;
}
<span>
Text:
<svg viewBox="0 0 100 100">
<circle cx="50" cy="50" r="48" stroke="black" stroke-width="3" fill="currentColor" />
</svg>
and more text
</span>