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.