2011-10-26 6 views
9

Varios textos en la red afirman que "pt" es la unidad de tamaño de fuente predeterminada cuando no se proporciona ninguna, sin embargo, mi propia prueba parece demostrar lo contrario. He leído muchos documentos en W3C que cubren el tamaño de fuente para CSS 1-3, y parece que no puedo encontrar una referencia real a una unidad predeterminada en ninguna de las especificaciones.Unidad predeterminada para tamaño de fuente?

He probado esto tanto en Chrome como en IE9 y obtengo los mismos resultados con cada uno: el elemento que falta en una unidad es el más pequeño, el elemento px en el medio y el elemento pt en el más grande. Intenté hacer coincidir el tamaño usando muchas otras unidades definidas por el W3C (como "mm", "ex", "pc", etc.) pero ninguno de los elementos de prueba coinciden en tamaño con el elemento seleccionado (el una falta de unidades).

Cualquier apreciación sería apreciada.

<div style="font-size: 20;">20 size</div> 
<div style="font-size: 20px;">20px size</div> 
<div style="font-size: 20pt;">20pt size</div> 

Respuesta

7

por la "CSS Fonts Module Level 3" la propiedad font-size puede tener valores que son:

Valor: < absoluta de tamaño > | < tamaño relativo > | <longitud> | <porcentaje>

<absolute-size>, <relative-size>, y <percentage> se definen en la misma especificación, y están, todas ellas palabras clave (e.x. small, larger, etc) o tener unidades porcentuales.

<length> ser más genérico se define en "CSS Values and Units Module Level 3":

Longitudes refieren a distanciarse mediciones y se indican mediante <longitud> en las definiciones de propiedades. Una longitud es dimension. Sin embargo, para longitudes cero, el identificador de unidad es opcional (es decir, se puede representar sintácticamente como < número > 0).

Lo que esto significa es que los números sin unidades para font-size no son válidos, con una excepción explícita para 0.


Dicho esto, ¿de qué tamaño se representa <div style="font-size: 20;">20 size</div>?

font-size prestados de un elemento dependerá de muchas cosas. Sin embargo, si somos capaces de asumir que

  • el usuario no ha personalizado su defecto font-size
  • el navegador está usando estilos predeterminados
  • no hay elementos primarios que de otra manera cambiar el font-size (ex <font>, <sub>, <h1> ...sí que sería marcado no válido tener esos elementos como los padres, pero todavía podría cambiar el font-size)

A continuación, el valor por defecto font-size en todos los navegadores modernos que estoy al tanto de la actualidad es 16px.

+2

¿Tiene alguna referencia para ignorarla? No es que dude, solo tengo curiosidad por cómo/por qué parecía haberme perdido esto en la especificación (si es que está donde está). – ken

+0

Creo que estás en lo cierto, acabo de probar y es exactamente 16px (que recuerdo haber visto en alguna parte como el tamaño de texto predeterminado para algunos navegadores). – ken

+0

Comenzaré por enlazar a la [especificación CSS] (http://www.w3.org/TR/CSS2/), y actualizaré si encuentro las subsecciones relevantes sobre el manejo de reglas css no válidas. – zzzzBov

Cuestiones relacionadas