html css background background-color

¿Es posible tener dos colores de fondo para un solo elemento html?



css background (3)

Esta pregunta ya tiene una respuesta aquí:

Estoy tratando de agregar 2 colores de fondo diferentes a la misma clase CSS.

.stepwizard-row:before { top: 14px; bottom: 0; position: absolute; content: " "; width: 100%; height: 4px; background-color: #d6d6c2; z-order: 0; }

¿Es posible tener un color de fondo para el primer 50% (considerando el ancho total) y otro color de fondo para el resto? Si no se puede lograr, ¿alguien puede sugerirme un truco para lograr esto?


Puede agregar una posición relativa div con pseudoclase de posición absoluta al 50% de altura.

Ejemplo:

.the-double-color { height:100vh; background-color:red; position:relative; width:100%; } .the-double-color:before { content:''''; background-color:blue; position:absolute; top:0px; height:50%; width:100%; }

Aqui esta la pen



Simplemente use el degradado lineal como fondo y puede ajustar fácilmente la dirección, los colores y el% de cada color:

body { margin: 0; background: linear-gradient(to right, red 50%, blue 0%); height:100vh; text-align:center; color:#fff; }

some content

body { margin: 0; background: linear-gradient(to bottom, red 60%, blue 0%); height:100vh; text-align:center; color:#fff; }

some content

O con el pseudo-elemento y el color de fondo simple, simplemente controle la posición / tamaño del pseudo-elemento para controlar ambos fondos:

body { margin: 0; background: red; height: 100vh; position: relative; text-align:center; color:#fff; } body:before { content: ""; position: absolute; top: 0; bottom: 0; left: 0; right: 50%; background: blue; z-index:-1; }

some content

body { margin: 0; background: red; height: 100vh; position: relative; text-align:center; color:#fff; } body:before { content: ""; position: absolute; top: 0; bottom: 40%; left: 0; right: 0; background: blue; z-index:-1; }

some content

Si quieres mas

Puede combinar diferentes colores dentro del degradado y también usar múltiples fondos lineales para lograr una división de color más compleja para su fondo:

body { margin: 0; background:linear-gradient(30deg, red 50%, blue 50%, blue 70%,orange 70%) left/50% 100% no-repeat, linear-gradient(-30deg, red 50%, blue 50%, blue 70%,orange 70%) right/50% 100% no-repeat; height:100vh; text-align:center; color:#fff; }

some content

También puede hacer lo mismo con el pseudo elemento y también usar alguna transformación CSS (rotación, sesgo, etc.):

body { margin: 0; background: red; height: 100vh; position: relative; text-align: center; color: #fff; overflow: hidden; } body:before { content: ""; position: absolute; top: 0; bottom: 0; left: -50%; right: 50%; background: blue; transform: skew(30deg); z-index: -1; } body:after { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; right: -50%; background: orange; transform: skew(-30deg); z-index: -1; }

some content