Quiero cambiar el grosor de mi regla horizontal ( <hr>
) en CSS. Sé que se puede hacer en HTML así:
<hr size="10">
Pero escuché que esto está en desuso como se menciona en MDN aquí . En CSS intenté usar height:1px
pero no cambia el grosor. Quiero que la <hr>
línea sea 0.5px
gruesa.
Estoy usando Firefox 3.6.11 en Ubuntu
html
css
user-interface
Srikar Appalaraju
fuente
fuente
Respuestas:
Por consistencia, elimine cualquier borde y use la altura para el
<hr>
grosor. Agregar un color de fondo le dará un estilo<hr>
con la altura y el color especificados.En tu hoja de estilo:
O en línea como lo tienes:
Explicación más larga aquí
fuente
border:none
? ¿Cualquier razón? ¿El borde agrega grosor también?<hr style="border: none; height:1px; color:#333; background-color:#333;">;
color
?Representación de subpíxeles en navegadores
La representación de subpíxeles es complicada. En realidad, no puede esperar que un monitor represente una línea delgada de menos de un píxel. Pero es posible proporcionar dimensiones de subpíxeles. Dependiendo del navegador, los representan de manera diferente. Mira esta publicación de blog de John Resig al respecto.
Básicamente, si su monitor es un LCD y está dibujando líneas verticales, puede dibujar fácilmente una línea de 1/3 píxeles. Si tu fondo es blanco, dale color a tu línea
#f0f
. A simple vista, esta línea tendrá 1/3 de píxel de ancho. Aunque será de algún color, si amplía el monitor, verá que solo un segmento del píxel completo (que consiste en RGB) estará oscuro. Esta es prácticamente una técnica que se utiliza para sugerencias de tipo fino, es decir, ClearType .Pero las líneas horizontales solo pueden tener una altura de 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 de rejilla de apertura, es decir, Sony Trinitron), pero esa es una historia diferente.
Básicamente, proporcionar una dimensión de subpíxeles y esperar que se procese de esa manera es lo mismo que esperar que una variable entera almacene un número de 1.2034759349. Si comprende que esto es imposible, debe comprender que los monitores no pueden representar dimensiones de subpíxeles.
Estilo seguro de navegador cruzado
Pero la forma en que las reglas horizontales que se mezclan generalmente se hacen usando colores. Entonces, si su fondo es, por ejemplo, blanco (
#fff
), siempre puede hacer que seaHR
muy claro. Al igual#eee
.El estilo seguro del navegador cruzado para una regla horizontal muy ligera sería:
Y use un archivo CSS en lugar de estilos en línea. Proporcionan una definición central para todo el sitio, no solo un elemento en particular. Hace que la mantenibilidad sea mucho mejor.
fuente
Estaba buscando la forma más corta de dibujar una línea de 1px, ya que la carga completa de CSS separado no es la solución más rápida o más corta.
Hasta HTML5, WAS era una forma más corta para 1px hr: <hr noshade> pero .. El atributo noshade de <hr> no es compatible con HTML5. Use CSS en su lugar. (ni otros atributos utilizados anteriormente, como tamaño, ancho, alinear ) ...
Ahora, este es bastante complicado, pero funciona bien si se necesita la mayoría de 1px hr:
Variación 1, BLACK hr: (la mejor solución para negro)
Salida: FF, Opera - negro / Safari - gris oscuro
Variación 2, GRIS h (¡la más corta!):
Salida: Opera - gris oscuro / FF - gris / Safari - gris claro
Variación 3, COLOR como se desee:
Salida: Opera / FF / Safari: 1px rojo.
fuente
Recomendaría configurar el
HR
propio en0px
alto y utilizar su borde para que sea visible en su lugar. Me di cuenta de que cuando acercas y alejas (ctrl + rueda del mouse) el grosor deHR
sí mismo cambia, mientras que cuando configuras el borde siempre permanece igual:fuente
el atributo de altura ha quedado en desuso en html 5. Lo que haría es crear un borde alrededor de hr y aumentar el grosor del borde como tal: hr style = "border: solid 2px black;"
fuente
Agregué opacidad a la línea, por lo que parece más delgada:
fuente
Creo que el mejor logro para la
<hr>
etiqueta de estilo es el siguiente:Y para el código HTML sólo tiene que añadir:
<hr>
.fuente
Aquí hay una solución para una línea negra de 1 píxel sin borde ni margen
Pensé que iba a añadir esto porque las otras respuestas no incluyen:
margin:0px;
.fuente
Sugiero usar construcción como
fuente