โฮมเพจ » การเข้ารหัส » การไล่ระดับสีเชิงเส้น CSS3 [เคล็ดลับ CSS3]

    การไล่ระดับสีเชิงเส้น CSS3 [เคล็ดลับ CSS3]

    ลาด เป็นคุณสมบัติสีที่ยอดเยี่ยมใน CSS3 แทนที่จะเพิ่มเพียงสีเดียวตอนนี้เราสามารถเพิ่มชุดค่าผสมหลายสีในหนึ่งบล็อคการประกาศโดยไม่ต้องอาศัยรูปภาพซึ่งสามารถลดคำขอ HTTP ในเว็บไซต์ของเราทำให้เว็บไซต์โหลดเร็วขึ้น.

    หากคุณเล่นกับการไล่ระดับสีใน CSS3 คุณอาจคุ้นเคยกับทั้งสองวิธี: การไล่ระดับสีแบบรัศมีและเชิงเส้น โพสต์ของวันนี้จะเกี่ยวกับหลัง.

    การสร้างการไล่ระดับสี

    ข้อมูลจำเพาะระบุว่าการไล่ระดับสีใน CSS3 เป็นรูปภาพจึงไม่มีคุณสมบัติพิเศษเช่นการเพิ่มคุณสมบัติใหม่อื่น ๆ ดังนั้นจึงมีการประกาศโดยใช้ ภาพพื้นหลัง ทรัพย์สินแทน.

    ถ้าเราดูที่ syntax ที่สมบูรณ์สำหรับการไล่ระดับสีมันจะดูเล็กน้อย overstuffed, ซึ่งอาจนำไปสู่ความสับสนสำหรับบางคน.

     div background-image: -webkit-linear-gradient (บนสุด, # FF5A00 0%, # FFAE00 100%); background-image: -moz-linear-gradient (บนสุด, # FF5A00 0%, # FFAE00 100%); ภาพพื้นหลัง: -ms-linear-gradient (ด้านบน, # FF5A00 0%, # FFAE00 100%); ภาพพื้นหลัง: -o-linear-gradient (ด้านบน, # FF5A00 0%, # FFAE00 100%); background-image: linear-gradient (บนสุด, # FF5A00 0%, # FFAE00 100%);  

    ลองขุดลงไปในแต่ละส่วนของไวยากรณ์ทีละตัวเพื่อให้ชัดเจนขึ้น.

    ก่อนอื่นการไล่ระดับสีเชิงเส้นจะถูกประกาศด้วย เชิงเส้นลาด () ฟังก์ชัน ฟังก์ชั่นมีสามค่าหลัก ค่าแรกกำหนดตำแหน่งเริ่มต้นการไล่ระดับสี คุณสามารถใช้คำหลักที่สื่อความหมายเช่น ด้านบน เพื่อเริ่มการไล่ระดับสีที่ไหลออกจาก ด้านบน;

     div background-image: linear-gradient (ด้านบน, # FF5A00, # FFAE00);  

    ตัวอย่างด้านบนเป็นรุ่นอย่างเป็นทางการจาก W3C เพื่อสร้างการไล่ระดับสี มันง่ายกว่าและค่อนข้างอธิบายตนเองและจะสร้างการไล่ระดับสีต่อไปนี้.

    คุณยังสามารถใช้ ด้านล่าง ทำตรงกันข้ามหรืออย่างอื่น ขวา และ ซ้าย.

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

     div background-image: linear-gradient (45deg, # FF5A00, # FFAE00);  

    ตัวอย่างด้านบนจะสร้างการไล่ระดับสีต่อไปนี้:

    ค่าที่สองของฟังก์ชั่นจะบอก สีแรก ข้อมูลและ หยุดตำแหน่ง ซึ่งระบุไว้ในอัตราร้อยละ ตำแหน่งหยุดจริงเป็นทางเลือก เบราว์เซอร์นั้นฉลาดพอที่จะกำหนดตำแหน่งที่เหมาะสมดังนั้นเมื่อเราไม่ระบุสีแรกของการหยุดเบราว์เซอร์จะใช้ 0% เป็นค่าเริ่มต้น.

    และค่าต่อไปคือ สีที่สอง การรวมกัน มันทำงานเหมือนค่าก่อนหน้าเฉพาะในกรณีที่เป็นสีสุดท้ายที่นำไปใช้และเราไม่ได้ระบุ หยุดตำแหน่ง, ค่าของ 100% จะถูกนำมาเป็นค่าเริ่มต้น ตอนนี้เรามาดูตัวอย่างด้านล่าง:

     div background-image: linear-gradient (บนสุด, # FF5A00 0%, # FFAE00 100%);  

    ตัวอย่างด้านบนจะสร้างการไล่ระดับสีเหมือนกับที่เราเห็นก่อนหน้านี้ (ไม่แตกต่างกัน) แต่ตอนนี้เราระบุตำแหน่งหยุดสี

    ตอนนี้ขอเปลี่ยน หยุดสี, และครั้งนี้เราจะระบุ 50% สำหรับสีแรกและ 51% สำหรับสีที่สองและมาดูกันว่ามันจะเปิดออก;

     div background-image: linear-gradient (บนสุด, # FF5A00 50%, # FFAE00 51%);  

    ความโปร่งใส

    การสร้าง ความโปร่งใส ในการไล่ระดับสีก็เป็นไปได้เช่นกัน ในการสร้างเอฟเฟกต์เราจำเป็นต้องแปลสี แม่มด เข้าไป RGBA โหมดและลดช่องอัลฟา.

     div background-image: linear-gradient (ด้านบน, rgba (255,90,0,0.2), rgb (255,174,0,0.2));  

    ตัวอย่างด้านบนจะลดความเข้มของสีลง 20%, และการไล่ระดับสีจะออกมาเช่นนี้

    หลายสี

    หากคุณต้องการเพิ่มสีให้มากขึ้นเพียงเพิ่มสีที่อยู่ติดกับตัวคั่นด้วยเครื่องหมายจุลภาคและให้เบราว์เซอร์กำหนดตำแหน่งหยุดสีแต่ละสี.

     div background-image: linear-gradient (ด้านบน, สีแดง, สีส้ม, สีเหลือง, สีเขียว, สีน้ำเงิน, สีคราม, สีม่วง);  

    ตัวอย่างด้านบนจะสร้างรุ้งต่อไปนี้.

    ความเข้ากันได้ของเบราว์เซอร์

    น่าเสียดายที่ในขณะที่เขียนนี้เบราว์เซอร์ปัจจุบันทั้งหมดยังไม่สนับสนุนไวยากรณ์มาตรฐาน พวกเขายังต้องการคำนำหน้าผู้ขาย (-WebKit-, -moz-, -นางสาว- และ -โอ-) ดังนั้นนั่นคือเหตุผลที่ไวยากรณ์ทั้งหมดปรากฏดังนี้:

     div background-image: -webkit-linear-gradient (บนสุด, # FF5A00 0%, # FFAE00 100%); background-image: -moz-linear-gradient (บนสุด, # FF5A00 0%, # FFAE00 100%); ภาพพื้นหลัง: -ms-linear-gradient (ด้านบน, # FF5A00 0%, # FFAE00 100%); ภาพพื้นหลัง: -o-linear-gradient (ด้านบน, # FF5A00 0%, # FFAE00 100%); background-image: linear-gradient (บนสุด, # FF5A00 0%, # FFAE00 100%);  

    ในทางกลับกัน Internet Explorer โดยเฉพาะรุ่น 9 และต่ำกว่านั้นอยู่ไกลจากมาตรฐาน การไล่ระดับสีใน IE9 และประกาศด้านล่างด้วย กรอง, ดังนั้นหากเราต้องการเพิ่มการไล่ระดับสีบนเบราว์เซอร์เหล่านั้นเราต้องเขียนสิ่งนี้

     div filter: progid: DXImageTransform.Microsoft.gradient (startColorstr = # FF5A00, endColorstr = # FFAE00);  

    กรอง มีข้อ จำกัด : ประการแรกมันไม่อนุญาตให้เพิ่มมากกว่าสามสีและการสร้างเอฟเฟกต์ความโปร่งใสนั้นค่อนข้างยุ่งยาก - มันไม่อนุญาต RGBA, แต่ IE กรอง การใช้งาน #ARGB;

     div filter: progid: DXImageTransform.Microsoft.gradient (startColorstr = # 33FF5A00, endColorstr = # 33FFAE00);  

    นี่คือเครื่องมือที่จะช่วยคุณแปลง RGBA ไปยัง #ARGB.

    • การสาธิต
    • แหล่งดาวน์โหลด

    การเขียนไวยากรณ์เร็วขึ้น

    ดังที่คุณเห็นด้านบนเพื่อรักษาความเข้ากันได้ของการไล่ระดับสีบนเบราว์เซอร์เราจำเป็นต้องเพิ่มโค้ดอีกห้าบรรทัดที่ไม่มีประสิทธิภาพ.

    มีหลายวิธีที่เราสามารถทำได้เพื่อทำให้งานง่ายขึ้น เช่นการใช้คำนำหน้าฟรี, Prefixr, LESS หรือ Sass เพื่อช่วยรวบรวมรหัส แต่เหนือสิ่งอื่นใดเราขอแนะนำให้ใช้เครื่องมือนี้ ColorZilla Gradient เครื่องมือนี้จะสร้างรหัสที่จำเป็นทั้งหมดเพื่อให้การไล่ระดับสีทำงานในเบราว์เซอร์ทั้งหมด.

    คำพูดสุดท้าย

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

    ยังมีอีกหลายสิ่งที่เราวางแผนที่จะสำรวจ การไล่ระดับสี CSS3 ในโพสต์ของเราในอนาคตดังนั้นอย่าลืมติดตาม Hongkiat.com สุดท้ายนี้ขอขอบคุณสำหรับการอ่านโพสต์นี้เราหวังว่าคุณจะสนุกกับมัน.

    อ่านเพิ่มเติม

    • เบราว์เซอร์ bullet Proof Cross RGBA พื้นหลัง - Lea Verou
    • ภาพ CSS3 - W3.org
    • เมื่อใดที่ฉันสามารถใช้การไล่ระดับสี CSS3 - CanIUse.com