Renderizado de subpíxeles en navegadores
El renderizado de subpíxeles es complicado. En realidad, no se puede esperar que un monitor represente una línea con un grosor menor a un píxel. Pero es posible proporcionar dimensiones de subpíxeles. Dependiendo del navegador, estos las representan de manera diferente. Lee este post del blog de John Resig al respecto.
Básicamente, si tu monitor es una LCD y estás dibujando líneas verticales, puedes fácilmente dibujar una línea de 1/3 de píxel. Si tu fondo es blanco, dale a tu línea el color #f0f
. A simple vista, esta línea será de 1/3 de píxel de ancho. Aunque será de algún color, si ampliaras el monitor, verías que solo un segmento del píxel completo (compuesto por RGB) estará oscuro. Esta es básicamente la técnica que se utiliza para el ajuste fino de tipografías, es decir, ClearType.
Pero las líneas horizontales solo pueden tener una altura de un píxel completo. Esa es la limitación tecnológica de los monitores LCD. Los CRT eran aún más complicados con sus fósforos triangulares (a menos que fueran del tipo rejilla de apertura, es decir, Sony Trinitron), pero eso es otra historia.
Básicamente, proporcionar una dimensión de subpíxel y esperar que se represente de esa manera es lo mismo que esperar que una variable entera almacene un número como 1.2034759349. Si comprendes que esto es imposible, deberías entender que los monitores no pueden representar dimensiones de subpíxeles.
Estilo seguro entre navegadores
Pero la forma en que las reglas horizontales que se integran suelen hacerse es utilizando colores. Así que si tu fondo es, por ejemplo, blanco (#fff
), siempre puedes hacer que tu HR
sea muy claro. Como #eee
.
El estilo seguro entre navegadores para una regla horizontal muy clara sería:
hr
{
background-color: #eee;
border: 0 none;
color: #eee;
height: 1px;
}
Y utiliza un archivo CSS en lugar de estilos en línea. Proporcionan una definición central para todo el sitio, no solo para un elemento particular. Facilitan mucho más el mantenimiento.