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!

tec4
fonte

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.

Karl-Johan Sjögren
fonte
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.

James Coyle
fonte
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 +

FelipeAls
fonte
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);
}
BL_
fonte
-3
box-shadow: inset 1px 2000px rgba(208, 208, 208, 0.54);
verdadeiramenteignitina
fonte