2011-11-23 14 views
5

Hola, estoy usando CSS Opacity Property para una etiqueta de div y funciona bien, pero el problema es que cuando escribo texto o pego imágenes en esa etiqueta de div también se desvanecen. Solo necesito que el color de fondo div desaparezca y no el contenido div. Mi código es ...Propiedad de Opacidad de CSS

#fade div 
{ 
opacity:0.1; 
filter:alpha(opacity=10); /* For IE8 and earlier */ 
width:750px; 
height:150px; 
background-color:#FFFFFF; 
} 

#text in fade div 
{ 
font-weight:bold; 
color:#8A2BE2; 
} 

Thankyou !!!

+0

Se puede utilizar CSS3 o necesita ser tan ampliamente como sea posible visible? – BumbleShrimp

+0

si está colocando el texto/imagen dentro de ese div, el div se convirtió en padre para eso y contiene la propiedad del padre, para comprender mejor el problema cree [jsfiddle] (http://jsfiddle.net) – punit

+0

Relevante: http://css-tricks.com/rgba-browser-support/ – 2rs2ts

Respuesta

11

Es mucho más fácil usar rgba() o un PNG transparente para el fondo.

rgba(0, 0, 0, .1); 
rgba(0, 0, 0); //fallback 
+0

Esa es una buena solución.Busque este enlace para obtener más información: http://robertnyman.com/2010/01/11/css-background-transparency-without-affecting-child-elements-through-rgba-and-filters/ – Grrbrr404

0

Por supuesto la opacidad se aplica a los elementos secundarios como well.What se puede hacer es segragate su margen de beneficio.

<div id='Div-With-Opacity-set'> 
</div> 
<div id='Child-Elements-for-the-above-div'> 
</div> 

Alinee su marcado cuidadosamente para que el marcado se parezca a lo que desea.

3

Puede utilizar rgba() propiedad por éste:

escribir así:

#fade div 
{ 
background-color: rgba(0,0,0,0.1); 
width:750px; 
height:150px; 
background-color:#FFFFFF; 
} 

Para IE se puede utilizar IE filter

background: transparent;-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#19000000,endColorstr=#19000000)"; /* IE8 */ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#19000000,endColorstr=#19000000); /* IE6 & 7 */  zoom: 1; 

puede generar su filtro de aquí http://kimili.com/journal/rgba-hsla-css-generator-for-internet-explorer/

+0

Es este código válido ? – lalibi

+0

sí; es válido rgba es una propiedad y filtro css3 usamos IE – sandeep

+0

sí pero no debería ser como 'background-color: rgba (0,0,0,0.1);' – lalibi

0

¿Por qué no re establecer la opacidad entonces?

#text in fade div 
{ 
    font-weight:bold; 
    color:#8A2BE2; 
    opacity:1; 
    filter:alpha(opacity=100); /* For IE8 and earlier */ 
} 
+0

Esto no funciona. 'opacity' no es una propiedad heredada de todos modos. – 2rs2ts

1

Simplemente use 1px semi transparente gif y repítalo con xey. Por lo que yo sé, es la manera más fácil de establecer un fondo semitransparente.

0

Su mejor opción sin CSS3 es probablemente crear un div y colocar otro div encima de él, pero no anidado dentro de él. La opacidad filtra a TODOS los elementos dentro del elemento con el conjunto de opacidad.

Si coloca un div inmediatamente a la derecha, y luego le da un margen de -750px ;, podría darle una opacidad de 1, pero el div detrás de él podría tener una opacidad de 0.1, y esto funcionaría multa.

Con CSS3 usted puede hacer esto:

#fade 
{ 
width:750px; 
height:150px; 
background-color: rgba(255,255,255,0.1); 
} 

y justo el fondo sería 0,1 opacidad. El texto aún sería 1.

Lo que personalmente hago con más frecuencia es crear un .png pequeño con el fondo transparente que quiero, y luego establecer ese .png como fondo de un elemento. En photoshop pude establecer la opacidad del fondo blanco en 0.1, luego guardar un cuadrado de 50X50, y luego tengo una transparencia casi perfecta (sin IE6).