style selectores poner para fondo div colores color codigo bootstrap avanzados html css3 css

html - selectores - Cómo se puede aplicar el color de fondo múltiple a un div



div style background color (5)

Con: después y: antes de que puedas hacer eso.

HTML:

<div class="a"> </div> <div class="b"> </div> <div class="c"> </div>

CSS:

div { height: 100px; position: relative; } .a { background: #9C9E9F; } .b { background: linear-gradient(to right, #9c9e9f, #f6f6f6); } .a:after, .c:before, .c:after { content: ''''; width: 50%; height: 100%; top: 0; right: 0; display: block; position: absolute; } .a:after { background: #f6f6f6; } .c:before { background: #9c9e9f; left: 0; } .c:after { background: #33CCFF; right: 0; height: 80%; }

Y una demo

Tengo un escenario en el que debería usar un color de fondo múltiple para un div. Es mejor para mí en lugar de usar imágenes de fondo o div adicional. Pero no puedo encontrar una manera más fácil de usarlo por CSS. Entonces, necesito ayuda sobre algún escenario. Por favor, mira la imagen:

(1) Quiero construir "A". para eso escribí:

div.A { background: linear-gradient(to right, #9c9e9f, #f6f6f6); }

Pero, después de escribir ese código, le va a gustar "B". Pero, quiero exactamente como "A". Entonces, por css / css3 ¿cómo puedo hacerlo (sin agregar más divs)?

(2) ¿Es posible hacer una porción más pequeña que otra porción? Por ejemplo, en "C", el color azul es más pequeño (en altura) que la otra parte. ¿Cómo puedo aplicar el color de fondo múltiple a un div con una porción más pequeña como "C" (sin agregar divisiones adicionales a "C")?

Actualización: Después de la respuesta de @Mohammad, lo he intentado de esa manera. Pero, para el escenario "C", no puedo disminuir la altura de la parte azul. ¿Puedes decirme cómo puedo hacerlo?
jsfiddle.net/mFjQ6


El A div puede realmente hacerse sin :before o :after selector, pero usando un gradiente lineal como primer intento. La única diferencia es que debe especificar 4 posiciones. Gris oscuro de 0 a 50% y gris claro de 50% a 100% como este:

background: linear-gradient(to right, #9c9e9f 0%,#9c9e9f 50%,#f6f6f6 50%,#f6f6f6 100%);

Como saben, B div está hecho de un gradiente lineal que tiene 2 posiciones como esta:

background: linear-gradient(to right, #9c9e9f 0%,#f6f6f6 100%);

Para el C div, uso el mismo tipo de gradiente que div A ike esto:

background: linear-gradient(to right, #9c9e9f 0%,#9c9e9f 50%,#33ccff 50%,#33ccff 100%);

Pero esta vez utilicé el selector :after con fondo blanco, como si la segunda parte de tu div fuera más pequeña.

Consulte este jsfiddle o el fragmento a continuación para obtener un código completo de navegador cruzado.

div{ position:relative; width:80%; height:100px; color:red; text-align:center; line-height:100px; margin-bottom:10px; } .a{ background: #9c9e9f; /* Old browsers */ background: -moz-linear-gradient(left, #9c9e9f 0%, #9c9e9f 50%, #f6f6f6 50%, #f6f6f6 100%); /* FF3.6+ */ background: -webkit-gradient(linear, left top, right top, color-stop(0%,#9c9e9f), color-stop(50%,#9c9e9f), color-stop(50%,#f6f6f6), color-stop(100%,#f6f6f6)); /* Chrome,Safari4+ */ background: -webkit-linear-gradient(left, #9c9e9f 0%,#9c9e9f 50%,#f6f6f6 50%,#f6f6f6 100%); /* Chrome10+,Safari5.1+ */ background: -o-linear-gradient(left, #9c9e9f 0%,#9c9e9f 50%,#f6f6f6 50%,#f6f6f6 100%); /* Opera 11.10+ */ background: -ms-linear-gradient(left, #9c9e9f 0%,#9c9e9f 50%,#f6f6f6 50%,#f6f6f6 100%); /* IE10+ */ background: linear-gradient(to right, #9c9e9f 0%,#9c9e9f 50%,#f6f6f6 50%,#f6f6f6 100%); /* W3C */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=''#9c9e9f'', endColorstr=''#f6f6f6'',GradientType=1 ); /* IE6-9 */ } .b{ background: #9c9e9f; /* Old browsers */ background: -moz-linear-gradient(left, #9c9e9f 0%, #f6f6f6 100%); /* FF3.6+ */ background: -webkit-gradient(linear, left top, right top, color-stop(0%,#9c9e9f), color-stop(100%,#f6f6f6)); /* Chrome,Safari4+ */ background: -webkit-linear-gradient(left, #9c9e9f 0%,#f6f6f6 100%); /* Chrome10+,Safari5.1+ */ background: -o-linear-gradient(left, #9c9e9f 0%,#f6f6f6 100%); /* Opera 11.10+ */ background: -ms-linear-gradient(left, #9c9e9f 0%,#f6f6f6 100%); /* IE10+ */ background: linear-gradient(to right, #9c9e9f 0%,#f6f6f6 100%); /* W3C */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=''#9c9e9f'', endColorstr=''#f6f6f6'',GradientType=1 ); /* IE6-9 */ } .c{ background: #9c9e9f; /* Old browsers */ background: -moz-linear-gradient(left, #9c9e9f 0%, #9c9e9f 50%, #33ccff 50%, #33ccff 100%); /* FF3.6+ */ background: -webkit-gradient(linear, left top, right top, color-stop(0%,#9c9e9f), color-stop(50%,#9c9e9f), color-stop(50%,#33ccff), color-stop(100%,#33ccff)); /* Chrome,Safari4+ */ background: -webkit-linear-gradient(left, #9c9e9f 0%,#9c9e9f 50%,#33ccff 50%,#33ccff 100%); /* Chrome10+,Safari5.1+ */ background: -o-linear-gradient(left, #9c9e9f 0%,#9c9e9f 50%,#33ccff 50%,#33ccff 100%); /* Opera 11.10+ */ background: -ms-linear-gradient(left, #9c9e9f 0%,#9c9e9f 50%,#33ccff 50%,#33ccff 100%); /* IE10+ */ background: linear-gradient(to right, #9c9e9f 0%,#9c9e9f 50%,#33ccff 50%,#33ccff 100%); /* W3C */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=''#9c9e9f'', endColorstr=''#33ccff'',GradientType=1 ); /* IE6-9 */ } .c:after{ content:""; position:absolute; right:0; bottom:0; width:50%; height:20%; background-color:white; }

<div class="a">A</div> <div class="b">B</div> <div class="c">C</div>

También hay una alternativa para C div sin usar un fondo blanco para ocultar la parte de la segunda sección. En cambio, hacemos que la segunda parte sea transparente y utilizamos el selector :after para que actúe como un fondo de color con la posición y el tamaño deseados.

Consulte este jsfiddle o el fragmento a continuación para obtener esta solución actualizada.

div { position: relative; width: 80%; height: 100px; color: red; text-align: center; line-height: 100px; margin-bottom: 10px; } .a { background: #9c9e9f; /* Old browsers */ background: -moz-linear-gradient(left, #9c9e9f 0%, #9c9e9f 50%, #f6f6f6 50%, #f6f6f6 100%); /* FF3.6+ */ background: -webkit-gradient(linear, left top, right top, color-stop(0%, #9c9e9f), color-stop(50%, #9c9e9f), color-stop(50%, #f6f6f6), color-stop(100%, #f6f6f6)); /* Chrome,Safari4+ */ background: -webkit-linear-gradient(left, #9c9e9f 0%, #9c9e9f 50%, #f6f6f6 50%, #f6f6f6 100%); /* Chrome10+,Safari5.1+ */ background: -o-linear-gradient(left, #9c9e9f 0%, #9c9e9f 50%, #f6f6f6 50%, #f6f6f6 100%); /* Opera 11.10+ */ background: -ms-linear-gradient(left, #9c9e9f 0%, #9c9e9f 50%, #f6f6f6 50%, #f6f6f6 100%); /* IE10+ */ background: linear-gradient(to right, #9c9e9f 0%, #9c9e9f 50%, #f6f6f6 50%, #f6f6f6 100%); /* W3C */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=''#9c9e9f'', endColorstr=''#f6f6f6'', GradientType=1); /* IE6-9 */ } .b { background: #9c9e9f; /* Old browsers */ background: -moz-linear-gradient(left, #9c9e9f 0%, #f6f6f6 100%); /* FF3.6+ */ background: -webkit-gradient(linear, left top, right top, color-stop(0%, #9c9e9f), color-stop(100%, #f6f6f6)); /* Chrome,Safari4+ */ background: -webkit-linear-gradient(left, #9c9e9f 0%, #f6f6f6 100%); /* Chrome10+,Safari5.1+ */ background: -o-linear-gradient(left, #9c9e9f 0%, #f6f6f6 100%); /* Opera 11.10+ */ background: -ms-linear-gradient(left, #9c9e9f 0%, #f6f6f6 100%); /* IE10+ */ background: linear-gradient(to right, #9c9e9f 0%, #f6f6f6 100%); /* W3C */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=''#9c9e9f'', endColorstr=''#f6f6f6'', GradientType=1); /* IE6-9 */ } .c { background: #9c9e9f; /* Old browsers */ background: -moz-linear-gradient(left, #9c9e9f 0%, #9c9e9f 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0) 100%); /* FF3.6+ */ background: -webkit-gradient(linear, left top, right top, color-stop(0%, #9c9e9f), color-stop(50%, #9c9e9f), color-stop(50%, rgba(0, 0, 0, 0)), color-stop(100%, rgba(0, 0, 0, 0))); /* Chrome,Safari4+ */ background: -webkit-linear-gradient(left, #9c9e9f 0%, #9c9e9f 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0) 100%); /* Chrome10+,Safari5.1+ */ background: -o-linear-gradient(left, #9c9e9f 0%, #9c9e9f 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0) 100%); /* Opera 11.10+ */ background: -ms-linear-gradient(left, #9c9e9f 0%, #9c9e9f 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0) 100%); /* IE10+ */ background: linear-gradient(to right, #9c9e9f 0%, #9c9e9f 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0) 100%); /* W3C */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=''#9c9e9f'', endColorstr=''#ffffff00'', GradientType=1); /* IE6-9 */ } .c:after { content: ""; position: absolute; right: 0; top: 0; width: 50%; height: 80%; background-color: #33ccff; z-index: -1 }

<div class="a">A</div> <div class="b">B</div> <div class="c">C</div>


Perdón por malentendido, por lo que entendí, quiere que su DIV tenga tres colores diferentes con diferentes alturas. Este es el resultado de mi código:

,

Si esto es lo que quieres prueba este código:

div { height: 100px; width:400px; position: relative; } .c { background: blue; /* Old browsers */ } .c:after{ content: ''''; position: absolute; width:20%; left:0; height:110%; background: yellow; } .c:before{ content: ''''; position: absolute; width:40%; left:60%; height:140%; background: green; }

<div class="c"></div>


Puede aplicar el color de fondo y el borde para que se vea como 2 colores.

div.A { width: 50px; background-color: #9c9e9f; border-right: 50px solid #f6f6f6; }

El borde debe tener el mismo tamaño que el ancho.


es compatible con todos los navegadores, cambie los valores para adaptarse a su aplicación

background: #fdfdfd; background: -moz-linear-gradient(top, #fdfdfd 0%, #f6f6f6 60%, #f2f2f2 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fdfdfd), color-stop(60%,#f6f6f6), color-stop(100%,#f2f2f2)); background: -webkit-linear-gradient(top, #fdfdfd 0%,#f6f6f6 60%,#f2f2f2 100%); background: -o-linear-gradient(top, #fdfdfd 0%,#f6f6f6 60%,#f2f2f2 100%); background: -ms-linear-gradient(top, #fdfdfd 0%,#f6f6f6 60%,#f2f2f2 100%); background: linear-gradient(to bottom, #fdfdfd 0%,#f6f6f6 60%,#f2f2f2 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=''#fdfdfd'', endColorstr=''#f2f2f2'',GradientType=0