Je veux écrire une valeur de fraction telle que celle ci-dessous:
Comment écrire une valeur de fraction en utilisant HTML sans utiliser d'image?
NOTE: Je ne veux pas ce motif 1 1/2 mais strictement comme sur la photo
Essayez ce qui suit:
1<sup>1</sup>⁄<sub>2</sub>
Cela s'affiche comme:
11/2
.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;
}
1 <div class="frac">
<span>1</span>
<span class="symbol">/</span>
<span class="bottom">2</span>
</div>
Le code suivant sera rendu comme l’exemple de la question. Si le client ne prend pas en charge les CSS, il sera restitué sous forme de texte brut, toujours lisible sous forme de fraction:
<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;
}
Le <span>
du milieu ne sert que pour les clients qui ne rendent pas de CSS - le texte est toujours lisible en tant que 1 12/256
- et c'est pourquoi vous devez placer un espace entre l'entier et la fraction.
Vous souhaiterez peut-être modifier la taille de la police, car l'élément obtenu peut être un peu plus grand que les autres caractères de la ligne, ou vous pouvez utiliser une position relative pour le déplacer légèrement vers le bas.
Mais l’idée générale, telle que présentée ici, peut suffire à l’utilisation de base.
Vous pouvez utiliser les éléments <sup>
et <sub>
conjointement avec l'entité entité slash de fraction⁄
.
<sup>1</sup>⁄<sub>2</sub>
est 1/2
UPDATE: J'ai créé ce violon qui affiche une fraction trait d'union en HTML à l'aide d'un tableau.
<table>
<tbody>
<tr>
<td rowspan="2">1</td>
<td style="border-bottom:solid 1px">1</td>
</tr>
<tr>
<td>2</td>
</tr>
</tbody>
</table>
Je pense qu'il y a un moyen plus facile de faire cela. Utilisez le code HTML suivant.
1 ½
Utiliser MathML
( Spécification , Wikipedia ):
<math>
<mrow>
<mn>1</mn>
<mfrac>
<mi>1</mi>
<mi>2</mi>
</mfrac>
</mrow>
</math>
Découvrez les éléments suivants:
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;}
<p>7 <span class="frac"><sup>42</sup><span>⁄</span><sub>73</sub></span>.</p>
br {
content: "";
margin: -1%;
display: block;
}
<big>1</big><sup> <u><big>1</big></u></sup><br/> <sup> <big>2</big></sup>
En utilisant du HTML pur et avec la propriété margin de br, vous pouvez contourner le problème.
br {
content: "";
margin: -1%;
display: block;
}
<big>1</big><sup> <u><big>1</big></u></sup><br/> <sup> <big>2</big></sup>