Je lisais une question ici en essayant d'obtenir la taille de la police d'un texte. La réponse qu'ils ont donnée était d'obtenir la taille en pixels à l'aide d'une méthode de mesure. Tout ce que je veux, c'est obtenir la valeur de la taille de la police pour pouvoir la changer.
Par exemple:
var x = document.getElementById("foo").style.fontSize;
document.getElementById("foo").style.fontSize = x + 1;
Cet exemple ne fonctionne pas bien que ces deux ne
document.getElementById("foo").style.fontSize = "larger";
document.getElementById("foo").style.fontSize = "smaller";
Le seul problème est que cela ne change qu'une fois la taille.
Il ne suffit pas de saisir le style.fontSize
d'un élément. Si le font-size
est défini par une feuille de style, ceci signalera ""
(chaîne vide).
Vous devez utiliser window.getComputedStyle .
var el = document.getElementById('foo');
var style = window.getComputedStyle(el, null).getPropertyValue('font-size');
var fontSize = parseFloat(style);
// now you have a proper float for the font size (yes, it can be a float, not just an integer)
el.style.fontSize = (fontSize + 1) + 'px';
Si votre élément n'a pas de propriété font-size, votre code renverra une chaîne vide. Il n'est pas nécessaire que votre élément ait la propriété font-size. L'élément peut hériter des propriétés des éléments parents.
Dans ce cas, vous devez trouver la taille de police calculée. Essayez ceci (pas sûr de IE)
var computedFontSize = window.getComputedStyle(document.getElementById("foo")).fontSize;
console.log(computedFontSize);
La variable computedFontSize retournera avec l'unité de taille de police. Il peut s'agir de px, em,%. Vous devez supprimer l'unité pour effectuer une opération arithmatique et attribuer la nouvelle valeur.
La valeur que vous obtenez de fontSize est quelque chose comme "12px" ou "1.5em", donc ajouter 1 à cette chaîne donnera "12px1" ou "1.5em1". Vous pouvez prendre la taille de la police et la manipuler avec:
var fontSize = parseInt(x);
fontSize = fontSize + 1 + "px";
document.getElementById("foo").style.fontSize = fontSize;
Si vous utilisez Jquery, la solution est la suivante.
var fontSize = $("#foo").css("fontSize");
fontSize = parseInt(fontSize) + 1 + "px";
$("#foo").css("fontSize", fontSize );
J'espère que cela fonctionnera.
.style.fontSize
pour obtenir le font-size!Window.getComputedStyle()
pour obtenir le font-size!voici mes codes de démonstration!
function tureFunc() {
alert(document.getElementById("fp").style.fontSize);
console.log(`fontSize = ${document.getElementById("fp").style.fontSize}`);
}
function falseFunc() {
alert( false ? document.getElementById("fh").style.fontSize : "check the consloe!");
console.log(`fontSize = ${document.getElementById("fh").style.fontSize}`);
}
function getTheStyle(){
let elem = document.getElementById("elem-container");
let fontSize = window.getComputedStyle(elem,null).getPropertyValue("font-size");
// font-size !=== fontSize
console.log(`fontSize = ${fontSize}`);
alert(fontSize);
document.getElementById("output").innerHTML = fontSize;
}
// getTheStyle();
<p id="fp" style="font-size:120%">
This is a paragraph.
<mark>inline style : <code>style="font-size:120%"</code></mark>
</p>
<button type="button" onclick="tureFunc()">Return fontSize</button>
<h3 id="fh">
This is a H3. <mark>browser defualt value</mark>
</h3>
<button type="button" onclick="falseFunc()">Not Return fontSize</button>
<div id="elem-container">
<mark>window.getComputedStyle & .getPropertyValue("font-size");</mark><br/>
<button type="button" onclick="getTheStyle()">Return font-size</button>
</div>
<div id="output"></div>
liens de référence:
https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle
Essayez ceci, il vous aiderait certainement à déterminer la taille de la police.
var elem = document.createElement('div');
var t=document.createTextNode('M')
elem.appendChild(t);
document.body.appendChild(elem);
var myfontSize = getStyle(elem,"fontSize")
alert(myfontSize)
document.body.removeChild(elem);
function getStyle(elem,prop){
if (elem.currentStyle) {
var res= elem.currentStyle.margin;
} else if (window.getComputedStyle) {
if (window.getComputedStyle.getPropertyValue){
var res= window.getComputedStyle(elem, null).getPropertyValue(prop)}
else{var res =window.getComputedStyle(elem)[prop] };
}
return res;
}
nous pouvons en outre utiliser getter et setter pour déterminer si fontsize est modifié par la suite par un morceau de code