CSS3 Transparency + Gradient


286

RGBA เป็นเกมที่สนุกสุดขีดและก็เป็น-webkit-gradientเช่น-moz-gradientนั้นและเอ่อ ... progid:DXImageTransform.Microsoft.gradient... ใช่ :)

มีวิธีการรวมทั้งสอง RGBA และการไล่ระดับสีเพื่อให้มีการไล่ระดับสีของความโปร่งใสอัลฟาโดยใช้รายละเอียด CSS ปัจจุบัน / ล่าสุด


1
ความคิดเห็นของ @ geo1701 ควรเป็นที่ยอมรับเนื่องจากมีความเกี่ยวข้องกับมาตรฐานที่ทันสมัยกว่า
Dmytro Shevchenko

คำตอบ:


326

ใช่. คุณสามารถใช้ rgba ในการประกาศการไล่ระดับสีของ webkit และ moz:

/* webkit example */
background-image: -webkit-gradient(
  linear, left top, left bottom, from(rgba(50,50,50,0.8)),
  to(rgba(80,80,80,0.2)), color-stop(.5,#333333)
);

( src )

/* mozilla example - FF3.6+ */
background-image: -moz-linear-gradient(
  rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 95%
);

( src )

เห็นได้ชัดว่าคุณสามารถทำได้ใน IE โดยใช้ไวยากรณ์ "hex แบบขยาย" แบบคี่ คู่แรก (ในตัวอย่าง 55) หมายถึงระดับของความทึบ:

/* approximately a 33% opacity on blue */
filter: progid:DXImageTransform.Microsoft.gradient(
  startColorstr=#550000FF, endColorstr=#550000FF
);

/* IE8 uses -ms-filter for whatever reason... */
-ms-filter: progid:DXImageTransform.Microsoft.gradient(
  startColorstr=#550000FF, endColorstr=#550000FF
);

( src )


20
FYI "hex แบบขยาย" เป็นเพียง ARGB แบบ 32 บิตแทนที่จะเป็นค่าสี RGB 24 บิต
Macke

2
ฉันต้องการให้สิ่งเหล่านี้ทำงานในมาตรฐาน css เหมือนกัน แต่ด้วยอัลฟาในตอนท้าย (ดูเหมือนเป็นธรรมชาติมากขึ้น): #0001จะเป็น hex สั้น ๆ สำหรับ "เกือบดำโปร่งใส" และ#ffcc00ffจะเหมือนกับ: #ffcc00"สีส้มทึบแสงสีเหลืองสมบูรณ์"
แกะบินได้

56
ตรวจสอบCSS3 Gradient Generator ที่ Colorzillaซึ่งมีค่าล่วงหน้ามากมายและรูปแบบที่เข้ากันได้ข้ามเบราว์เซอร์ทั้งหมดเพื่อให้การไล่ระดับสีที่คุณต้องการ
andrhamm

ดังนั้นฉันได้ตรวจสอบมันทำงานบนเบราว์เซอร์ที่สำคัญทั้งหมด แต่มันไม่ทำงานบนโอเปร่าเบาะแสใด ๆ
WhoSayIn

ไม่เป็นไรฉันเพิ่งค้นพบมัน)background-image: -o-linear-gradient(top,rgba(255,255,255,0),rgba(210, 230, 250,1));
WhoSayIn

101

มีการรองรับไวยากรณ์ใหม่ในขณะนี้โดยเบราว์เซอร์ที่ทันสมัยทั้งหมด (เริ่มจาก Chrome 26, Opera 12.1, IE 10 และ Firefox 16): http://caniuse.com/#feat=css-gradients

background: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));

สิ่งนี้ทำให้การไล่ระดับสีเริ่มต้นจากสีดำทึบที่ด้านบนเพื่อความโปร่งใสอย่างเต็มที่ที่ด้านล่าง

เอกสารเกี่ยวกับ MDN


7
.. สร้างสีดำทึบที่ด้านบนเพื่อความโปร่งใสอย่างเต็มที่ที่ด้านล่าง
commonpike

ฉันถือว่านี่เป็นข้อเสนอแนะ แต่ใช้งานไม่ได้จริงหรือ
บาร์ต

15

นี่คือสิ่งที่เจ๋งจริงๆ! ฉันต้องการสวยเหมือนกัน แต่มีการไล่ระดับสีในแนวนอนจากสีขาวเป็นโปร่งใส และมันก็ใช้งานได้ดี! นี่คือรหัสของฉัน:

.gradient{
        /* webkit example */
        background-image: -webkit-gradient(
          linear, right top, left top, from(rgba(255, 255, 255, 1.0)),
          to(rgba(255, 255, 255, 0))
        );

        /* mozilla example - FF3.6+ */
        background-image: -moz-linear-gradient(
          right center,
          rgba(255, 255, 255, 1.0) 20%, rgba(255, 255, 255, 0) 95%
        );

        /* IE 5.5 - 7 */
        filter: progid:DXImageTransform.Microsoft.gradient(
          gradientType=1, startColor=0, endColorStr=#FFFFFF
        );

        /* IE8 uses -ms-filter for whatever reason... */
        -ms-filter: progid:DXImageTransform.Microsoft.gradient(
          gradientType=1, startColor=0, endColoStr=#FFFFFF
        );
    }

1
สำหรับการอ้างอิงในการใช้งานของ Microsoft gradientType = 1 เป็นแนวนอน 0 เป็นแนวตั้ง
Brooks

การไล่ระดับสี IE7 และ IE8 ไม่ได้ระบุสีตัวอักษรใด ๆ พวกเขาจะจางหายไปโปร่งใสหรือไม่
KajMagnus

3

นี่คือรหัสของฉัน:

background: #e8e3e3; /* Old browsers */
  background: -moz-linear-gradient(top,  rgba(232, 227, 227, 0.95) 0%, rgba(246, 242, 242, 0.95) 100%); /* FF3.6+ */
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(232, 227, 227, 0.95)), color-stop(100%,rgba(246, 242, 242, 0.95))); /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(top,  rgba(232, 227, 227, 0.95) 0%,rgba(246, 242, 242, 0.95) 100%); /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(top,  rgba(232, 227, 227, 0.95) 0%,rgba(246, 242, 242, 0.95) 100%); /* Opera 11.10+ */
  background: -ms-linear-gradient(top,  rgba(232, 227, 227, 0.95) 0%,rgba(246, 242, 242, 0.95) 100%); /* IE10+ */
  background: linear-gradient(to bottom,  rgba(232, 227, 227, 0.95) 0%,rgba(246, 242, 242, 0.95) 100%); /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='rgba(232, 227, 227, 0.95)', endColorstr='rgba(246, 242, 242, 0.95)',GradientType=0 ); /* IE6-9 */

3
#grad
{
    background: -webkit-linear-gradient(left,rgba(255,0,0,0),rgba(255,0,0,1)); /*Safari 5.1-6*/
    background: -o-linear-gradient(right,rgba(255,0,0,0),rgba(255,0,0,1)); /*Opera 11.1-12*/
    background: -moz-linear-gradient(right,rgba(255,0,0,0),rgba(255,0,0,1)); /*Fx 3.6-15*/
    background: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1)); /*Standard*/
}

ฉันพบสิ่งนี้ในโรงเรียน w3 และเหมาะกับความต้องการของฉันในขณะที่ฉันกำลังมองหาการไล่ระดับสีและความโปร่งใส ฉันกำลังให้ลิงค์เพื่ออ้างถึง w3schools หวังว่านี่จะช่วยได้ถ้ามีใครกำลังมองหาการไล่ระดับสีและความโปร่งใส

http://www.w3schools.com/css/css3_gradients.asp

นอกจากนี้ฉันลองใน w3schools เพื่อเปลี่ยนความทึบของการวางลิงค์เพื่อตรวจสอบ

http://www.w3schools.com/css/tryit.asp?filename=trycss3_gradient-linear_trans

หวังว่ามันจะช่วย


1

ต่อไปนี้เป็นสิ่งที่ฉันใช้เพื่อสร้างการไล่ระดับสีในแนวตั้งจากทึบแสง (บนสุด) ถึง 20% ในความโปร่งใส (ล่าง) สำหรับสีเดียวกัน:

background: linear-gradient(to bottom, rgba(0, 64, 122, 1) 0%,rgba(0, 64, 122, 0.8) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
background: -o-linear-gradient(top, rgba(0, 64, 122, 1) 0%, rgba(0, 64, 122, 0.8) 100%); /* Opera 11.10+ */
background: -moz-linear-gradient(top, rgba(0, 64, 122, 1) 0%, rgba(0, 64, 122, 0.8) 100%); /* FF3.6-15 */
background: -webkit-linear-gradient(top, rgba(0, 64, 122, 1) 0%,rgba(0, 64, 122, 0.8) 100%); /* Chrome10-25,Safari5.1-6 */
background: -ms-linear-gradient(top, rgba(0, 64, 122, 1) 0%,rgba(0, 64, 122, 0.8) 100%); /* IE10+ */
-ms-filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00407a', endColorstr='#cc00407a',GradientType=0 ); /* IE8 */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00407a', endColorstr='#cc00407a',GradientType=0 ); /* IE 5.5 - 9 */

0

ฉันเพิ่งเจอตัวอย่างล่าสุดนี้ เพื่อทำให้ง่ายขึ้นและใช้ตัวอย่างล่าสุดให้ css class selector ของ 'grad' (ฉันรวมความเข้ากันได้ย้อนหลัง)

.grad {
    background-color: #F07575; /* fallback color if gradients are not supported */
    background-image: -webkit-linear-gradient(top left, red, rgba(255,0,0,0));/* For Chrome 25 and Safari 6, iOS 6.1, Android 4.3 */
    background-image: -moz-linear-gradient(top left, red, rgba(255,0,0,0));/* For Firefox (3.6 to 15) */
    background-image: -o-linear-gradient(top left, red, rgba(255,0,0,0));/* For old Opera (11.1 to 12.0) */
    background-image: linear-gradient(to bottom right, red, rgba(255,0,0,0)); /* Standard syntax; must be last */
}

จาก https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient

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