如何使用html写分数值?

时间:2011-09-23 08:03:49

标签: html numbers fractions

我想写分数值,如下图:

enter image description here

如何在不使用图像的情况下使用html编写分数值?

注意:我不想要这个1 1/2模式,但严格来说就像上面的图片

10 个答案:

答案 0 :(得分:63)

尝试以下方法:

1<sup>1</sup>&frasl;<sub>2</sub>

显示为:

1 1 / <子> 2

答案 1 :(得分:15)

&#13;
&#13;
.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;
&#13;
&#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>元素与分数斜杠实体一起使用 &frasl;

<sup>1</sup>&frasl;<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 &frac12;
结果是1½

答案 5 :(得分:2)

使用MathMLSpecificationWikipedia):

<math>
 <mrow>
  <mn>1</mn>
  <mfrac>
   <mi>1</mi>
   <mi>2</mi>
  </mfrac>
 </mrow>
</math>

答案 6 :(得分:1)

查看以下内容:

&#13;
&#13;
{
  "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;
&#13;
&#13;

<强> CodePen

答案 7 :(得分:0)

使用纯html和br的margin属性可以解决

&#13;
&#13;
br {   
    content: "";
    margin: -1%;
    display: block;
 }
&#13;
<big>1</big><sup> <u><big>1</big></u></sup><br/>&nbsp;&nbsp;<sup> <big>2</big></sup>
&#13;
&#13;
&#13;

答案 8 :(得分:0)

br {   
    content: "";
    margin: -1%;
    display: block;
 }
<big>1</big><sup> <u><big>1</big></u></sup><br/>&nbsp;&nbsp;<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.

输出

Output Image

我还建议对屏幕阅读器输出使用只读格式:

CSS

read {
  position: absolute;
  font-size: 0;
}

HTML

1 <fraction> <read>and</read> <numer>1</numer> <read>over</read> 2 </fraction>

屏幕阅读器:“一个和一个超过两个......”