我想写分数值,如下图:
如何在不使用图像的情况下使用html编写分数值?
注意:我不想要这个1 1/2模式,但严格来说就像上面的图片
答案 0 :(得分:63)
尝试以下方法:
1<sup>1</sup>⁄<sub>2</sub>
显示为:
1 1 / <子> 2 子>
答案 1 :(得分:15)
.frac {
display: inline-block;
position: relative;
vertical-align: middle;
letter-spacing: 0.001em;
text-align: center;
}
.frac > span {
display: block;
padding: 0.1em;
}
.frac span.bottom {
border-top: thin solid black;
}
.frac span.symbol {
display: none;
}
&#13;
1 <div class="frac">
<span>1</span>
<span class="symbol">/</span>
<span class="bottom">2</span>
</div>
&#13;
答案 2 :(得分:11)
以下代码将作为问题中的示例呈现,如果客户端不支持CSS,它将呈现为纯文本,仍然可读作为分数:
<p>1 <span class="frac"><sup>12</sup><span>/</span><sub>256</sub></span>.</p>
span.frac {
display: inline-block;
font-size: 50%;
text-align: center;
}
span.frac > sup {
display: block;
border-bottom: 1px solid;
font: inherit;
}
span.frac > span {
display: none;
}
span.frac > sub {
display: block;
font: inherit;
}
中间<span>
仅适用于不呈现CSS的客户端 - 文本仍然可以读作1 12/256
- 这就是为什么你应该在整数和分数之间放置一个空格。
您可能想要更改字体大小,因为生成的元素可能比行中的其他字符高一点,或者您可能希望使用相对位置将其稍微移动到底部。
但是,如此处所示的总体思路可能足以用于基本用途。
答案 3 :(得分:5)
您可以将<sup>
和<sub>
元素与分数斜杠实体一起使用 ⁄
<sup>1</sup>⁄<sub>2</sub>
1 / 2
更新:我使用表格显示了HTML中使用带连字符的分数{。{3}}。
<table>
<tbody>
<tr>
<td rowspan="2">1</td>
<td style="border-bottom:solid 1px">1</td>
</tr>
<tr>
<td>2</td>
</tr>
</tbody>
</table>
答案 4 :(得分:3)
我认为有一种更简单的方法可以做到这一点。使用以下HTML。
1 ½
答案 5 :(得分:2)
使用MathML
(Specification,Wikipedia):
<math>
<mrow>
<mn>1</mn>
<mfrac>
<mi>1</mi>
<mi>2</mi>
</mfrac>
</mrow>
</math>
答案 6 :(得分:1)
查看以下内容:
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"System.Threading.Timer": "4.3.0"
},
"frameworks": {
"netcoreapp1.1": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.1.0"
}
},
"imports": "dnxcore50"
}
}
}
&#13;
span.frac {
display: inline-block;
text-align: center;
vertical-align: middle;
}
span.frac > sup, span.frac > sub {
display: block;
font: inherit;
padding: 0 0.3em;
}
span.frac > sup {border-bottom: 0.08em solid;}
span.frac > span {display: none;}
&#13;
<强> CodePen 强>
答案 7 :(得分:0)
使用纯html和br的margin属性可以解决
br {
content: "";
margin: -1%;
display: block;
}
&#13;
<big>1</big><sup> <u><big>1</big></u></sup><br/> <sup> <big>2</big></sup>
&#13;
答案 8 :(得分:0)
br {
content: "";
margin: -1%;
display: block;
}
<big>1</big><sup> <u><big>1</big></u></sup><br/> <sup> <big>2</big></sup>
答案 9 :(得分:0)
这是另一种使用较新 CSS 方法的方法。此方法也使用自定义标签,但如果您不喜欢自定义标签,您可以将这些更改为 <div class = "..."></div>
。
将以下内容复制到您的 CSS:
如果您使用类,请使用 .fraction
和 .numer
fraction {
display: inline-grid;
grid-template-columns: 1fr;
grid-template-rows: 1fr 1fr;
font-size: 0.8em; // You can change fraction size here. I recommend 0.5em ~ 0.8em
vertical-align: top;
}
numer {
border-bottom: 1px solid;
}
您现在可以使用这样的标签:
Add 1 <fraction> <numer>1</numer> 2 </fraction> cups of flour into the bowl and stir.
输出
我还建议对屏幕阅读器输出使用只读格式:
CSS
read {
position: absolute;
font-size: 0;
}
HTML
1 <fraction> <read>and</read> <numer>1</numer> <read>over</read> 2 </fraction>
屏幕阅读器:“一个和一个超过两个......”