ทำให้พื้นหลังข้อความโปร่งใส แต่ไม่ใช่ข้อความ


87

ดังนั้นฉันกำลังมีปัญหา ฉันมองไปรอบ ๆ และมองไปรอบ ๆ แต่ไม่มีโชค ฉันต้องการทำให้พื้นหลังของร่างกายโปร่งใส แต่ปล่อยให้ข้อความไม่โปร่งใส อย่างที่เป็นอยู่ตอนนี้ฉันทำให้ทั้งสองมีความทึบเท่ากัน นี่คือรหัสของฉัน:

@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;
}

นี่คือเว็บไซต์ของฉัน (คลิกลิงก์อย่าพิมพ์ "tccraft.net" ใน url ของคุณระบบจะนำคุณไปยังหน้า Facebook): http://tccraft.net/index.php ขอบคุณ!


คำตอบ:


174

อย่าใช้opacityสำหรับสิ่งนี้ให้ตั้งค่าพื้นหลังเป็นค่า RGBA แทนเพื่อทำให้พื้นหลังเป็นแบบกึ่งโปร่งใสเท่านั้น ในกรณีของคุณจะเป็นเช่นนี้

.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);
}

ดูhttp://css-tricks.com/rgba-browser-support/สำหรับข้อมูลเพิ่มเติมและตัวอย่างค่า rgba ใน css


มีความคิดอย่างไรที่จะบรรลุสิ่งนี้ด้วยภาพพื้นหลัง?
Jujucat

สำหรับภาพพื้นหลังให้ใช้ PNG หรือ WEBP ที่มีช่องอัลฟาเป็นภาพของคุณ
Karl-Johan Sjögren

18

สำหรับการใช้พื้นหลังโปร่งใสทั้งหมด:

background: transparent;

มิฉะนั้นสำหรับการใช้การเติมสีกึ่งโปร่งใส:

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

โดยที่ค่าคือ:

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

คุณยังสามารถใช้ค่า rgba สำหรับพื้นหลังไล่ระดับสีได้

เพื่อให้พื้นหลังของภาพมีความโปร่งใสเพียงแค่ลดความทึบของภาพในโปรแกรมแก้ไขภาพที่คุณเลือกไว้ล่วงหน้า


2

opacityจะทำให้ทั้งข้อความและพื้นหลังโปร่งใส ใช้สีพื้นหลังกึ่งโปร่งใสแทนโดยใช้rgba()ค่าตัวอย่างเช่น ทำงานบน IE8 +


0

หากคุณใช้ RGBA สำหรับเบราว์เซอร์รุ่นใหม่คุณไม่จำเป็นต้องให้ IE รุ่นเก่าใช้เฉพาะสีที่กำหนดกับ RGB ในเวอร์ชันที่ไม่โปร่งใส

หากคุณไม่ยึดติดกับโซลูชันเฉพาะ CSS ให้ลองใช้CSS3PIE ด้วยไวยากรณ์นี้คุณจะเห็นผลลัพธ์เดียวกันกับ IE รุ่นเก่าที่คุณเห็นในเบราว์เซอร์รุ่นใหม่:

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.