Tornar o fundo do texto transparente, mas não o próprio texto


87

Então, estou tendo um problema. Eu olhei em volta e olhei em volta, mas sem sorte. Gostaria de deixar o fundo do meu corpo transparente, mas não o texto. Como está agora, continuo fazendo a mesma opacidade. Aqui está o meu código:

@charset "utf-8";
body {
    font: 100%/1.4 Verdana, Arial, Helvetica, sans-serif;
    background-color: #42413C;
    margin: 0;
    padding: 0;
    color: #000;
}

/* ~~ Element/tag selectors ~~ */
ul, ol, dl { 
    padding: 0;
    margin: 0;
}
h1, h2, h3, h4, h5, h6, p {
    margin-top: 0;
    padding-right: 15px;
    padding-left: 15px;
    opacity:1;
}
a img { 
    border: none;
}
a:link {
    color: #42413C;
    text-decoration: underline;
}
a:visited {
    color: #6E6C64;
    text-decoration: underline;
}
a:hover, a:active, a:focus {
    text-decoration: none;
}
.container {
    width: 750px;
    margin: 0 auto;
}
.content {
    padding:20px;
    width:710px;
    position:relative;
    background:#CCC;
    opacity: 0.5;
}
.fltrt {
    float: right;
    margin-left: 8px;
}
.fltlft { 
    float: left;
    margin-right: 8px;
}
.clearfloat { 
    clear:both;
    height:0;
    font-size: 1px;
    line-height: 0px;
}
.header {
    top:0%;
    width: 750px;
    height: 200px;
    background-image: url(images/header.png);
    background-repeat:no-repeat;
    background-position:center;
}
.navbar {
    height: 50px;
    width: 750px;
    position: relative;
    z-index: 2;
}
#bg {
    position: fixed;
    top: 25%;
    left: 15%;
    z-index: -1;
}
div {
display: block;
}

Aqui está o meu site (clique no link não digite "tccraft.net" no seu url, ele o levará para uma página do facebook): http://tccraft.net/index.php Obrigado!


Respostas:


172

Não use opacitypara isso, defina o fundo com um valor RGBA em vez de apenas tornar o fundo semitransparente. No seu caso seria assim.

.content {
    padding:20px;
    width:710px;
    position:relative;
    background: rgb(204, 204, 204); /* Fallback for older browsers without RGBA-support */
    background: rgba(204, 204, 204, 0.5);
}

Consulte http://css-tricks.com/rgba-browser-support/ para mais informações e exemplos de valores rgba em css.


Alguma ideia de como conseguir isso com uma imagem de fundo?
— Jujucat

Para imagens de fundo, basta usar um PNG ou WEBP com um canal alfa como sua imagem.
— Karl-Johan Sjögren

18

Para um fundo totalmente transparente, use:

background: transparent;

Caso contrário, para um preenchimento de cor semitransparente, use:

background: rgba(255,255,255,0.5); // or hsla(0, 0%, 100%, 0.5)

onde os valores são:

background: rgba(red,green,blue,opacity); // or hsla(hue, saturation, lightness, opacity)

Você também pode usar valores rgba para fundos gradientes.

Para obter transparência em um fundo de imagem, basta reduzir a opacidade da imagem em um editor de imagens de sua escolha de antemão.


2

opacitytornará o texto e o fundo transparentes. Em vez disso, use uma cor de fundo semitransparente, usando um rgba()valor, por exemplo. Funciona no IE8 +


0

Se você usar RGBA para navegadores modernos, não precisará permitir que IEs mais antigos usem apenas a versão não transparente da cor fornecida com RGB.

Se você não se limitar a soluções somente CSS, experimente CSS3PIE . Com esta sintaxe, você pode ver exatamente o mesmo resultado em IEs mais antigos que você vê em navegadores modernos:

div {
    -pie-background: rgba(223,231,233,0.8);
    behavior: url(../PIE.htc);
}

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.