Cambiar el color de un elemento hr


778

Quiero cambiar el color de mi hretiqueta usando CSS. El código que probé a continuación no parece funcionar:

hr {
    color: #123455;
}

1
Solo para tu información, intenté hacer lo que hiciste con un color diferente y funciona en Firefox 5 Beta, pero no en IE 9, jsfiddle.net/TGtSd

66
@Keoki Zee No funciona para mí (Chrome).
Marty

1
@Marty background-color funciona en Chrome, pero tienes razón ... no el color raro ...

2
Chrome no funciona, el color de fondo tampoco funciona para mí
koool

2
De acuerdo, en caso de que alguien quiera probar, aquí hay un violín que tengo hasta ahora, jsfiddle.net/TGtSd/9 ...

Respuestas:


1126

Creo que debería usar en border-colorlugar de color, si su intención es cambiar el color de la línea producida por la <hr>etiqueta.

Aunque, se ha señalado en los comentarios que, si cambia el tamaño de su línea, el borde seguirá siendo tan ancho como lo especificó en los estilos, y la línea se rellenará con el color predeterminado (que no es un efecto deseado la mayoría de las líneas). hora). Entonces parece que en este caso también necesitaría especificar background-color(como sugirió @Ibu en su respuesta).

El proyecto HTML 5 Boilerplate en su hoja de estilo predeterminada especifica la siguiente regla:

hr { display: block; height: 1px;
    border: 0; border-top: 1px solid #ccc;
    margin: 1em 0; padding: 0; }

Un artículo titulado "12 hechos CSS poco conocidos" , publicado recientemente por SitePoint, menciona que <hr>puede establecerlo border-coloren sus padres colorsi lo especifica hr { border-color: inherit }.


66
El problema con el color del borde es que si hace que la hora sea más grande, solo colorea el borde, jsfiddle.net/TGtSd/9 ...

@Anton no es a eso a lo que me refería sobre el tamaño de la hora ... si aumentas la altura y solo usas color de borde, obtendrás un rectángulo con un borde de color, pero el interior no será coloured ...

¿Por qué molestarse con la frontera? ¿Por qué no solo darle un color de fondo y terminar con eso? Editar: nvm, no vi la respuesta sobre la compatibilidad del navegador.
Abogados

119
  • border-colorFunciona en Chrome y Safari .
  • background-color Funciona en Firefox y Opera.
  • colorfunciona en IE7 + .

10
Si deseamos que nuestro sitio se vea en todos los navegadores, ¿deberíamos usarlos todos?
MEM

44
border-color no funciona en Chrome. Intenta configurarlo en blanco sobre fondo blanco. Estos dos funcionarán: 1) color:white; border-style:solid; o 2) border-color:white; border-style:solid; .
Pacerier

44
@Pacerier sí lo hace. Podría necesitar especificar un estilo y / o ancho
GôTô

la información re. IE (al menos) es incorrecto. 'border-color' funciona bien en IE; 'color' no (IE11)
taiji123

88

Creo que esto puede ser útil. Este fue un simple selector de CSS.

hr { background-color: red; height: 1px; border: 0; }

2
Esto definitivamente funcionó para mí en el escritorio de Chrome: <style> hr {background-color: red; altura: 1px; borde: 0; } </style> <hr>
Michael d

Funciona para mí en Chrome y Firefox
Robert C

47
hr {
    height: 1px;
    color: #123455;
    background-color: #123455;
    border: none;
}

Hacerlo de esta manera le permite cambiar la altura si es necesario. Buena suerte. Fuente: Cómo diseñar HR con CSS



12

Solo el borde superior con color es suficiente para hacer que la línea tenga un color diferente.

hr {
    border-top: 1px solid #ccc;
}

10
hr {
  height:0; 
  border:0; 
  border-top:1px solid #083972; 
}

Esto mantendrá la regla horizontal de 1px de grosor mientras cambia el color de la misma.


La mejor respuesta aquí. Establecer la altura en 0px y agregar el borde no hace que el hr 2 px de ancho. Gran llamada !!
Bob Roberts

9

Creo que este es el enfoque más efectivo:

<hr style="border-top: 1px solid #ccc; background: transparent;">

O si prefieres hacerlo en todos los elementos hr, escribe esto en tu CSS:

hr {
    background-color: transparent;
    border-top: 1px solid #ccc;
}


5
hr
{
  background-color: #123455;
}

el fondo es el que debes intentar cambiar

También puede trabajar con el color de los bordes. No estoy seguro de que haya problemas con los navegadores cruzados con esto. deberías probarlo en diferentes navegadores


2
Lo probé en Firefox 5 Beta, IE 9, Chrome, Opera y Safari ... eres bueno, todos funcionan;)

1
@kool, ¿qué parte no funciona? ¿color de fondo? o color de borde? acabo de probar el color del borde: azul; y funcionó en cromo
Ibu

[color de borde] funciona en Chrome. [color de fondo] no. Votaría si tuviera suficiente reputación.
samthebrand

5

si usa la clase css, todas las etiquetas 'hr' la tomarán, pero si desea una 'hr' particular, use el código siguiente, es decir, css en línea

<hr style="color:#99CC99" />

Si no funciona en Chrome, pruebe el siguiente código:

<hr color="red" />

5

Después de leer todas las respuestas aquí, y de ver la complejidad descrita, me puse en una pequeña diversión para experimentar con recursos humanos. Y, la conclusión es que puede tirar la mayor parte del CSS parcheado por mono que escribió, lea este pequeño manual y solo use estas dos líneas de CSS puro:

hr {
  border-style: solid;
  border-color: cornflowerblue; /* or whatever */
}

Eso es todo lo que necesita para diseñar sus recursos humanos.

  • Funciona entre navegadores, dispositivos cruzados, sistemas operativos cruzados, canales cruzados en inglés, edades cruzadas.
  • No "Creo que esto funcionará ..." , "debes tener en cuenta Safari / IE ..." , etc.
  • No CSS adicional - no height, width, background-color, color, etc involucrados.

Solo HR coloridos a prueba de balas. Es que sencilla TM .


Bonificación: para darle al HR algo de altura H, solo configure el border-widthas H/2.


Hice una apuesta en cada sentido: `` `hr {border-top: 1px solid purple; color del borde: púrpura; color de fondo: morado; color morado; } ~~~
David Jones

No funciona en Firefox, background-colorsí.
caram

4

Algunos navegadores usan el coloratributo y otros usan el background-coloratributo. Para estar seguro:

hr{
    color: #color;
    background-color: #color;
}

4

Estoy probando en IE, Firefox y Chrome en mayo de 2015 y esto funciona mejor con las versiones actuales. Centra los recursos humanos y lo hace un 70% de ancho:

hr.light { 
    width:70%; 
    margin:0 auto; 
    border:0px none white; 
    border-top:1px solid lightgrey; 
}
<hr class="light" />


Esto es exactamente lo que estaba buscando. Mi error fue agregar un espacio entre hr y class en la definición css (hr .light {})
rochasdv

4

Debe establecer el ancho del borde en 0; Funciona bien en Firefox y Chrome.

hr {
  clear: both;
  color: red;
  background-color: red;
  height: 1px;
  border-width: 0;
}
<hr />
This is a test
<hr />


4

Es simple y mi favorito.

<hr style="background-color: #dd3333" />

4

Puedes agregar bootstrap bg class como

<hr class="bg-light" />

Resulta que esta fue la respuesta perfecta para mí, aunque lo hice en el pasado ajustando el borde. Por cierto, Bootstrap 4 lo hace de esta manera:.bg-light { background-color: #f8f9fa !important; }
nicorellius

2

Como no tengo reputación para comentar, daré aquí algunas ideas.

Si desea una altura variable CSS, quite todos los bordes y dé un color de fondo.

    hr{
        height:2px;
        border:0px;
        background:green;
        margin:0px;/*sometimes useful*/
    }
    /*Doesn't work in ie7 and below and in Quirks Mode*/

si desea simplemente un estilo que sepa que funcionará (ejemplo: para reemplazar un borde en un elemento :: before para la mayoría de los clientes de correo electrónico o

    hr{
        height:0px;
        border:0px;
        border-top:2px solid blue;
        margin:0px;/*useful sometimes*/
    }

En ambos sentidos, si establece un ancho, siempre tendrá su tamaño.

No es necesario configurar display:block; esto.

Para estar totalmente seguro, puede mezclar ambos, porque algunos navegadores pueden confundirse con height:0px;:

    hr{
        height:1px;
        border:0px;
        background:blue;
        border-top:1px solid blue;
        margin:0px;/*useful sometimes*/
    }

Con este método, puede estar seguro de que tendrá al menos 2px de altura.

Es una línea más, pero la seguridad es seguridad.

Este es el método que debe usar para ser compatible con casi todo.

Recuerde: Gmail solo detecta CSS en línea y algunos clientes de correo electrónico pueden no admitir fondos o bordes. Si uno falla, aún tendrá una línea de 1 px. Mejor que nada.

En el peor de los casos, puede intentar agregar color:blue;.

En el peor de los peores casos, puede intentar usar una <font color="blue"></font>etiqueta y poner su preciosa <hr/>etiqueta dentro de ella. Heredará el <font></font>color de la etiqueta.

Con este método, SE querer hacer la siguiente manera: <hr width="50" align="left"/>.

Ejemplo:

    <span>
        awhieugfrafgtgtfhjjygfjyjg
        <font color="#42B3E5"><hr width="50" align="left"/></font>
    </span>
    <!--Doesn't work in ie7 and below and in Quirks Mode-->

Aquí hay un enlace para que lo revise: http://jsfiddle.net/sna2D/


0

Puede usar CSS para hacer una línea con un color diferente, el ejemplo sería así:

border-left: 1px solid rgb(216, 216, 216);
border-right: medium none;
border-width: medium medium medium 2px;
border-style: none none none solid;
border-color: -moz-use-text-color -moz-use-text-color -moz-use-text-color rgb(216, 216, 216);

ese código mostrará una línea gris vertical.


0

Bueno, soy nuevo en HTML, CSS y Java, pero probé mi camino que funcionó para mí en todos los navegadores. He usado JS en lugar de CSS, que no funciona con algunos navegadores .

En primer lugar, le di id="myHR"al elemento HR y lo usé en Java Script.
Aquí está el código.

x = document.getElementById("myHR");
y = x.style.width = "600px";
y = x.style.color = "white";
y = x.style.height = "2px";
y = x.style.border = "none";
y = x.style.backgroundColor = "lightgrey";

0
  1. El código funciona para IE más antiguo
  2. Probado para muchos colores

    <hr color="black">
    <hr color="blue">

0

El uso de colores de fuente para modificar las reglas horizontales los hace más flexibles y fáciles de usar.

La colorpropiedad no se hereda de manera predeterminada, por lo que se debe agregar lo siguiente a las horas para permitir la herencia del color:

/* allow hr to inherit color */
hr { border: 1px solid;}

/* reusable colour modifier */
.fc_-alpha { color: crimson;}
normal hr:

<hr>

hr with <span class="fc_-alpha">colour modifier</span>:

<hr class="fc_-alpha">


0

Podrías hacer esto:

hr {
  border: 1px solid red;
}
<hr />
This s a test
<hr />


0

Puede dar la <hr noshade>etiqueta e ir a su archivo CSS y agregar:

hr {
    border-top:0;
    color: #123455;
}
<hr noshade />
This s a test
<hr noshade />


0

Como regla general, no puede simplemente establecer el color de una línea horizontal con CSS como lo haría con cualquier otra cosa. En primer lugar, Internet Explorer necesita el color en su CSS para leer así:

"Color: # 123455"

Pero Opera y Mozilla necesitan el color en su CSS para leer así:

"Color de fondo: # 123455"

Por lo tanto, deberá agregar ambas opciones a su CSS.

A continuación, deberá darle a la línea horizontal algunas dimensiones o, de forma predeterminada, la altura, el ancho y el color estándar establecidos por su navegador. Aquí hay un código de muestra de cómo debería ser su CSS para obtener la línea horizontal azul.

hr {
border: 0;
width: 100%;
color: #123455;
background-color: #123455;
height: 5px;
}

O simplemente puede agregar el estilo a su página HTML directamente cuando inserte una línea horizontal, como esta:

<hr style="background:#123455" />

Espero que esto ayude.


0

Hice una apuesta en cada sentido:

  hr {
    border-top: 1px solid purple;
    border-color: purple;
    background-color: purple;
    color: purple;
  }
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.