2010-12-11 79 views
4

J'ai une page web simple http://www.webdevout.net/test?0V, reproduit ci-dessoustaille de police spécifiée sur l'élément de corps est ignoré par l'entrée

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
<style type="text/css"> 
body { font-size: 12px;} 
</style> 
<title>Test</title> 
</head> 
<body> 
<p>test</p> 
<form action="/foo" method="get"> 
    <fieldset> 
    <input type="text" value="bar" /> 
    </fieldset> 
</form> 
</body> 
</html> 

Quand j'utilise Firebug pour inspecter la page, le texte « test » est 12px comme prévu , mais le texte "barre" dans l'entrée est 11px, je m'attendrais à ce qu'il soit 12px. Qu'est-ce qui se passe s'il vous plaît?

+0

Quelques informations supplémentaires http://www.komodomedia.com/blog/2006/10/css-trickery-part-5-inheritance/ – pingu

Répondre

10

Dans le navigateur que vous utilisez la valeur par défaut de la propriété font-size n'est pas inhert ou un pourcentage, em ou toute autre valeur de longueur relative. c'est-à-dire que c'est une valeur absolue.

Définissez la propriété font-size vous-même, par ex. input { font-size: 100%; }

Envisagez d'utiliser un reset stylesheet.

+2

Merci pour la réponse David, mais l'héritage CSS n'indique pas que l'entrée adoptera le style de son parent, qui héritera à son tour de son parent, atteignant finalement l'élément , où la taille de la police est spécifiée comme 12px . Fait intéressant, ce problème est survenu en utilisant Eric Meyers réinitialiser la feuille de style. – pingu

+0

Est-ce que 'font-size: inherit;' ne fonctionne pas aussi bien? –

+0

@pingu - uniquement si la valeur de la propriété font-size est définie sur 'inherit', ce qui n'est pas le cas. – Quentin

1

Essayez

* { 
    font-size:12px; 
} 
+0

Cela le fixe, mais c'est un peu un marteau, je ne devrais pas dois-je faire cela? – pingu

+0

Eh bien, puisque tous les éléments visibles vont dans le corps, ce n'est vraiment pas différent, sauf que cela fonctionne aussi sur les entrées. – tybro0103

2

Certains éléments de forme de style de navigateurs basés sur leurs éléments d'interface utilisateur du système d'exploitation correspondant. Par conséquent, ils peuvent ne pas honorer tous les styles que vous appliquez sur body (c'est-à-dire qu'ils ne peuvent pas en hériter).

Vous devez sélectionner ces éléments spécifiques puis appliquer les règles.

body, input { 
    font-size: 12px; 
} 
+0

Merci BoltClock, je n'en ai vu aucune mention dans les règles régissant la spécificité, est-ce juste des entrées? ou sélectionne aussi bien? – pingu

+0

Entrées, sélections, boutons et zones de texte je pense. – BoltClock