¿Cómo uso los gradientes CSS3 para mi background-color
y luego aplico a background-image
para aplicar algún tipo de textura transparente clara?
css
background-image
gradient
Ronald
fuente
fuente
Respuestas:
Múltiples fondos!
Estas 2 líneas son la alternativa para cualquier navegador que no haga gradientes. Consulte las notas para apilar imágenes solo IE <9 a continuación.
La línea final establece una imagen de fondo y un degradado para los navegadores que pueden manejarlos.
Casi todos los navegadores actuales tienen soporte para múltiples imágenes de fondo y fondos CSS. Consulte http://caniuse.com/#feat=css-gradients para obtener asistencia sobre el navegador. Para una buena publicación sobre por qué no necesita múltiples prefijos del navegador, consulte http://codepen.io/thebabydino/full/pjxVWp/
Pila de capas
Cabe señalar que la primera imagen definida estará en la parte superior de la pila. En este caso, la imagen está en la parte SUPERIOR del gradiente.
Para obtener más información sobre las capas de fondo, consulte http://www.w3.org/TR/css3-background/#layering .
SOLAMENTE imágenes apiladas (sin gradientes en la declaración) Para IE <9
IE9 y versiones posteriores pueden apilar imágenes de la misma manera. Podría usar esto para crear una imagen de degradado para ie9, aunque personalmente, no lo haría. Sin embargo, debe tenerse en cuenta cuando se usan solo imágenes, es decir, <9 ignorará la declaración de reserva y no mostrará ninguna imagen. Esto no sucede cuando se incluye un gradiente. Para usar una sola imagen de reserva en este caso, sugiero usar el maravilloso elemento HTML condicional de Paul Irish junto con su código de reserva:
Posición de fondo, tamaño, etc.
Otras propiedades que se aplicarían a una sola imagen también pueden estar separadas por comas. Si solo se proporciona 1 valor, se aplicará a todas las imágenes apiladas, incluido el gradiente.
background-size: 40px;
restringirá tanto la imagen como el gradiente a 40px de alto y ancho. Sin embargo, el usobackground-size: 40px, cover;
hará que la imagen sea de 40 px y el gradiente cubrirá el elemento. Para aplicar solo una configuración a una imagen, configure el valor predeterminado para la otra:background-position: 50%, 0 0;
o para los navegadores que lo admitan, useinitial
:background-position: 50%, initial;
También puede usar la taquigrafía de fondo, sin embargo, esto elimina el color y la imagen de reserva.
Lo mismo se aplica a la posición de fondo, la repetición de fondo, etc.
fuente
background-position
solo la imagen y no el gradiente?Si también desea establecer la posición de fondo para su imagen, puede usar esto:
o también puedes crear un MENOS mixin (estilo bootstrap):
fuente
Una cosa a tener en cuenta es que la primera imagen de fondo definida está en la parte superior de la pila. La última imagen definida será la más inferior. Eso significa que, para tener un gradiente de fondo detrás de una imagen, necesitarías:
También puede definir posiciones de fondo y tamaño de fondo para las imágenes. Recopilé una publicación de blog sobre algunas cosas interesantes que puedes hacer con los gradientes CSS3
fuente
background-image: linear-gradient(rgba(22,22,22,0), rgba(22,22,22,0.6)), url('image.jpg');
simplemente puedes escribir:
fuente
linear-gradient()
tenía que venir antes que elurl()
, y la transparencia parcial tenía que usarse para los colores degradados, usandorgba()
. Cualquier otra cosa simplemente usó la primera definición de la lista (como si la segunda fuera una alternativa, similar a cómofont-family
funcionan las declaraciones).Siempre uso el siguiente código para que funcione. Hay algunas notas:
Esta técnica es la misma que tenemos múltiples imágenes de fondo como se describe aquí
fuente
mi solución:
fuente
Tuve una implementación donde necesitaba llevar esta técnica un paso más allá, y quería esbozar mi trabajo. El siguiente código hace lo mismo pero usa SASS, Bourbon y un sprite de imagen.
SASS y Bourbon se encargan del código del navegador cruzado, y ahora todo lo que tengo que declarar es la posición del sprite por botón. Es fácil extender este principio para los botones activos y estados de desplazamiento.
fuente
Si tiene errores extraños al descargar imágenes de fondo, use el comprobador de enlaces W3C: https://validator.w3.org/checklink
Aquí hay mixins modernos que uso (créditos: PSA: no use generadores de gradiente ):
fuente
Aquí hay un MIXIN que creé para manejar todo lo que a la gente le gustaría usar:
Esto se puede usar así:
Espero que les sea útil.
Gracias a @Gidgidonihah por encontrar la solución inicial.
fuente
Estaba tratando de hacer lo mismo. Si bien el color de fondo y la imagen de fondo existen en capas separadas dentro de un objeto, lo que significa que pueden coexistir, los gradientes CSS parecen cooptar la capa de imagen de fondo.
Por lo que puedo decir, la imagen de borde parece tener un soporte más amplio que múltiples fondos, por lo que tal vez sea un enfoque alternativo.
http://articles.sitepoint.com/article/css3-border-images
ACTUALIZACIÓN: Un poco más de investigación. Parece que Petra Gregorova tiene algo trabajando aquí -> http://petragregorova.com/demos/css-gradient-and-bg-image-final.html
fuente
Podrías usar múltiples antecedentes: linear-gradient (); llamadas, pero prueba esto:
Si desea que las imágenes se fusionen por completo donde no parece que los elementos se carguen por separado debido a solicitudes HTTP separadas, utilice esta técnica. Aquí estamos cargando dos cosas en el mismo elemento que se cargan simultáneamente ...
Solo asegúrese de convertir su imagen / textura transparente transparente de 32 bits previamente renderizada a una cadena base64 primero y úsela dentro de la llamada css de imagen de fondo (en lugar de INSERTIMAGEBLOBHERE en este ejemplo).
Utilicé esta técnica para fusionar una textura de aspecto de oblea y otros datos de imagen que se serializan con una regla estándar de transparencia rgba / gradiente lineal css. Funciona mejor que superponer varias imágenes y desperdiciar solicitudes HTTP, lo cual es malo para dispositivos móviles. Todo se carga del lado del cliente sin necesidad de operación de archivo, pero aumenta el tamaño del byte del documento.
fuente
Si tiene que hacer que los gradientes y las imágenes de fondo trabajen juntos en IE 9 (HTML 5 y HTML 4.01 Strict), agregue la siguiente declaración de atributo a su clase css y debería funcionar:
Observe que usa el
filter
atributo y que hay dos instanciasprogid:[val]
separadas por una coma antes de cerrar el valor del atributo con un punto y coma. Aquí está el violín . También observe que cuando mira el violín, el gradiente se extiende más allá de las esquinas redondeadas. No tengo una solución para ese otro que no usa esquinas redondeadas. También tenga en cuenta que cuando se utiliza una ruta relativa en el atributo src [IMAGE_URL], la ruta es relativa a la página del documento y no al archivo css (Ver fuente ).Este artículo ( http://coding.smashingmagazine.com/2010/04/28/css3-solutions-for-internet-explorer/ ) es lo que me llevó a esta solución. Es bastante útil para CSS3 específico de IE.
fuente
Quería hacer un botón span con imagen de fondo, combinación de gradiente de fondo.
http://enjoycss.com/ me ayudó a hacer mi tarea de trabajo. Solo tengo que eliminar algunos CSS adicionales generados automáticamente. Pero es realmente un buen sitio construir su trabajo desde cero.
fuente
Resuelvo el problema de esa manera. Defino Gradiente en HTML e imagen de fondo en el Cuerpo
fuente
Para mi diseño receptivo, mi flecha desplegable del cuadro desplegable en el lado derecho del cuadro (acordeón vertical), aceptó el porcentaje como posición. Inicialmente, la flecha hacia abajo era "posición: absoluta; derecha: 13px;". Con el 97% de posicionamiento funcionó de la siguiente manera:
PD: Lo siento, no sé cómo manejar los filtros.
fuente
Como método seguro, puede hacer una imagen de fondo de 500x5 píxeles, en su
css
uso:Donde
xxxxxx
corresponde con el color que coincide con el color degradado final.También puede arreglar esto en la parte inferior de la pantalla y hacer que coincida con el color del degradado inicial.
fuente