6 คำบรรยายภาพสวย ๆ ด้วย CSS3
CSS3 นั้นทรงพลังจริงๆ มันเคยเป็นที่เราต้องการภาพหรือพวงของ codelines JavaScript เพื่อให้ผลการเปลี่ยนแปลงง่าย ทุกวันนี้เราสามารถทำได้ด้วย CSS3 เท่านั้น.
ในบทช่วยสอนนี้เราจะแสดงวิธีสร้างคำบรรยายภาพด้วยการเปลี่ยนภาพต่างๆโดยใช้ CSS3.
- การสาธิต
- แหล่งดาวน์โหลด
รองรับเบราว์เซอร์
คำบรรยายภาพนี้จะขึ้นอยู่กับคุณสมบัติการแปลงและการเปลี่ยนผ่านซึ่งเป็นคุณสมบัติที่ค่อนข้างใหม่ดังนั้นจึงควรทราบการสนับสนุนเบราว์เซอร์ที่จำเป็นในการเรียกใช้คำอธิบายภาพได้อย่างราบรื่น.
ต่อไปนี้เป็นเบราว์เซอร์ที่รองรับการแปลงและการเปลี่ยน:
- Internet Explorer 10+ (ยังไม่ออก)
- Firefox 6+
- Chrome 13+
- Safari 3.2+
- Opera 11+
ตอนนี้เรามาเริ่มบทช่วยสอน.
โครงสร้าง HTML
เรามี 6 ภาพ; แต่ละภาพมีสไตล์คำบรรยายที่แตกต่างกัน.
![]()
คำบรรยายภาพง่าย ๆ
![]()
คำบรรยายภาพเต็ม
Loren ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
![]()
จางคำบรรยาย
Loren ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
![]()
คำบรรยายภาพสไลด์
Loren ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
![]()
นี่คือคำบรรยายภาพหมุน
Loren ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
![]()
ฟรีสไตล์คำบรรยายภาพ
Loren ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
CSS พื้นฐาน
ก่อนที่จะจัดแต่งทรงผมองค์ประกอบใด ๆ ก็เป็นการเริ่มต้นที่ดีในการรีเซ็ตคุณสมบัติทั้งหมดโดยใช้การรีเซ็ต CSS นี้และให้ค่าลักษณะเริ่มต้นดังนั้นเบราว์เซอร์ทั้งหมดจะแสดงผลลัพธ์เดียวกัน (ยกเว้นบางที IE6).
สไตล์จะถูกแยกในไฟล์ style.css ดังนั้นไฟล์ HTML ของเราจะดูเรียบร้อย อย่างไรก็ตามอย่าลืมที่จะเพิ่มสไตล์การเชื่อมโยงภายในแท็กหัวเพื่อใช้กฎการจัดแต่งทรงผมในไฟล์.
ตกลงเรามาเริ่มการจัดแต่งทรงผมองค์ประกอบโดยเริ่มจากแท็ก html และ id wrapper หลัก:
html background-color: #eaeaea; #mainwrapper font: Arial ปกติ 10pt, sans-serif; ความสูง: อัตโนมัติ; กำไร: 80px อัตโนมัติ 0 อัตโนมัติ; จัดข้อความ: ศูนย์; ความกว้าง: 660px;
สไตล์กล่องภาพ
เราใช้สไตล์ทั่วไปบางอย่างในกล่องที่มีภาพ กล่องจะปรากฏขึ้นเคียงข้างกันโดยใช้ลอยซ้าย โปรดสังเกตว่าเราได้เพิ่มโอเวอร์โฟลว์: คุณสมบัติที่ซ่อนอยู่; สิ่งนี้จะทำให้วัตถุทั้งหมดภายในที่ผ่าน div ถูกซ่อนอยู่.
นอกจากนี้เรายังประกาศคุณสมบัติการเปลี่ยนภาพทุกภาพภายในกล่องในกรณีที่เราต้องการการเปลี่ยนภาพในภายหลัง.
#mainwrapper .box border: 5px solid #fff; เคอร์เซอร์: ตัวชี้; ความสูง: 182px; ลอย: ซ้าย; ขอบ: 5px; ตำแหน่ง: ญาติ; ล้น: ซ่อนอยู่; ความกว้าง: 200px; -webkit-box-shadow: 1px 1px 1px 1px #ccc; -moz-box-shadow: 1px 1px 1px 1px #ccc; กล่องเงา: 1px 1px 1px 1px #ccc; #mainwrapper .box img ตำแหน่ง: สัมบูรณ์; ซ้าย: 0; -webkit-transition: ทุก 300ms ง่ายขึ้น; -moz-transition: 300ms ง่ายขึ้น; -o-transition: 300ms ง่ายขึ้น; -ms-transition: ทั้งหมด 300ms ได้อย่างง่ายดาย ช่วงการเปลี่ยนภาพ: 300ms ทั้งหมดทำให้ง่ายขึ้น
คำบรรยายสไตล์ทั่วไป
คำบรรยายภาพจะมีสไตล์ทั่วไปและคุณสมบัติการเปลี่ยนแปลง แทนที่จะใช้คุณสมบัติความทึบเราใช้โหมดสี RGBA กับ 0.8 สำหรับช่องอัลฟาเพื่อให้คำอธิบายภาพดูโปร่งใสโดยไม่ส่งผลต่อข้อความภายใน.
#mainwrapper .box .caption background-color: rgba (0,0,0,0.8); ตำแหน่ง: สัมบูรณ์; สี: #fff; ดัชนี z: 100; -webkit-transition: ทุก 300ms ง่ายขึ้น; -moz-transition: 300ms ง่ายขึ้น; -o-transition: 300ms ง่ายขึ้น; -ms-transition: ทั้งหมด 300ms ได้อย่างง่ายดาย ช่วงการเปลี่ยนภาพ: 300ms ทั้งหมดทำให้ง่ายขึ้น ซ้าย: 0;
คำอธิบาย 1
คำบรรยายภาพแรกจะมีเอฟเฟกต์การเปลี่ยนแปลงอย่างง่ายที่มักใช้สำหรับคำบรรยาย คำอธิบายภาพจะขึ้นมาจากด้านล่างเมื่อเราวางเมาส์เหนือภาพ หากต้องการระบุที่อยู่คำอธิบายภาพจะมีความสูงคงที่ 30px และเราใช้ตำแหน่งด้านล่าง -30px เพื่อซ่อนใต้ภาพ.
#mainwrapper .box .simple-caption height: 30px; ความกว้าง: 200px; จอแสดงผล: บล็อก; ด้านล่าง: -30px; line-height: 25pt; จัดข้อความ: ศูนย์;
คำอธิบาย 2
ประเภทที่สองมีความกว้างและความสูงเต็มรูปแบบของขนาดภาพ / กล่อง (200x200px) และการเปลี่ยนภาพจะเป็นลักษณะของประตูบานเลื่อนเท่านั้นซึ่งจะเลื่อนจากบนลงล่าง.
#mainwrapper .box. คำบรรยายแบบเต็ม ความกว้าง: 170px; ความสูง: 170px; ด้านบน: -200px; จัดเรียงข้อความ: ซ้าย; การขยาย: 15px;
คำอธิบาย 3
คำบรรยายภาพที่สามจะมีผลซีดจาง ดังนั้นเราจึงเพิ่มความทึบ: 0 สำหรับสถานะเริ่มต้น.
#mainwrapper .box .fade-caption, #mainwrapper .box .scale-caption opacity: 0; ความกว้าง: 170px; ความสูง: 170px; จัดเรียงข้อความ: ซ้าย; การขยาย: 15px;
คำอธิบาย 4
คำบรรยายภาพที่สี่จะเลื่อนจากซ้ายไปขวาดังนั้นเราจึงกำหนด 200px ไปทางซ้าย (ซ้าย: 200px) เป็นตำแหน่งเริ่มต้น.
** คำบรรยายภาพ 4: สไลด์ ** / #mainwrapper .box .slide-caption width: 170px; ความสูง: 170px; จัดเรียงข้อความ: ซ้าย; การขยาย: 15px; ซ้าย: 200px;
คำอธิบาย 5
คำบรรยายภาพที่ห้าจะมีเอฟเฟกต์หมุน มันไม่ได้เป็นเพียงคำบรรยายภาพที่จะหมุน แต่ยังรวมถึงภาพ มันเหมือนกับการเปลี่ยนตำแหน่งโดยการหมุน.
ดังนั้นเราจึงเพิ่มคุณสมบัติการแปลงด้วยการหมุน -180 องศาเว้นแต่ว่าคุณต้องการหมุนจอภาพเพื่ออ่านคำบรรยาย.
#mainwrapper # box-5.box .rotate-caption width: 170px; ความสูง: 170px; จัดเรียงข้อความ: ซ้าย; การขยาย: 15px; ด้านบน: 200px; -moz-transform: หมุน (-180deg); -o-transform: หมุน (-180deg); -webkit-transform: หมุน (-180deg); แปลง: หมุน (-180deg); #mainwrapper .box .rotate width: 200px; ความสูง: 400px; -webkit-transition: ทุก 300ms ง่ายขึ้น; -moz-transition: 300ms ง่ายขึ้น; -o-transition: 300ms ง่ายขึ้น; -ms-transition: ทั้งหมด 300ms ได้อย่างง่ายดาย ช่วงการเปลี่ยนภาพ: 300ms ทั้งหมดทำให้ง่ายขึ้น
คำอธิบาย 6
คำบรรยายภาพสุดท้ายจะมีการแปลงสเกล อย่างไรก็ตามในคำบรรยายก่อนหน้านี้ข้อความที่อยู่ในนั้นจะแสดงพร้อมกับกะการเปลี่ยนแปลง. caption ในส่วนนี้เราจะทำให้มันแตกต่างกันเล็กน้อย.
ข้อความจะปรากฏขึ้นหลังจากเปลี่ยนกะเสร็จแล้ว ดังนั้นเราจึงเพิ่มความล่าช้าในการเปลี่ยนแปลงข้อความในกรณีนี้คือแท็ก h3 และ p.
#mainwrapper .box .scale-caption h3, #mainwrapper .box .scale-caption p ตำแหน่ง: ญาติ; ซ้าย: -200px; ความกว้าง: 170px; -webkit-transition: ทุก 300ms ง่ายขึ้น; -moz-transition: 300ms ง่ายขึ้น; -o-transition: 300ms ง่ายขึ้น; -ms-transition: ทั้งหมด 300ms ได้อย่างง่ายดาย ช่วงการเปลี่ยนภาพ: 300ms ทั้งหมดทำให้ง่ายขึ้น #mainwrapper .box .scale-caption h3 -webkit-transition-delay: 300ms; -moz-transition-delay: 300ms; -o-transition-delay: 300ms; -ms-transition-delay: 300ms; การเปลี่ยนแปลงล่าช้า: 300ms; #mainwrapper .box .scale-caption p -webkit-transition-delay: 500ms; -moz-transition-delay: 500ms; -o-transition-delay: 500ms; -ms-transition-delay: 500ms; การเปลี่ยนแปลงล่าช้า: 500ms;
มาทำให้พวกมันขยับ
ในส่วนต่อไปนี้เราจะกำหนดพฤติกรรมของคำบรรยายภาพเมื่อเราวางเมาส์เหนือภาพหรือกล่อง.
คำบรรยายภาพพฤติกรรม 1: แสดง.
สำหรับคำบรรยายภาพแรกเราต้องการให้แสดง (จากด้านล่าง) เมื่อเราวางเมาส์เหนือช่อง เพื่อจัดการกับการย้ายครั้งนี้เราใช้คุณสมบัติการแปลงและโค้ด CSS ด้านล่างบอกคำบรรยายเพื่อย้าย 100% ของน้ำหนักไปด้านบน.
#mainwrapper .box: hover .simple-caption -moz-transform: translateY (-100%); -o-transform: translateY (-100%); -webkit-transform: translateY (-100%); แปลงแล้ว: translateY (-100%);
หากคุณไม่เข้าใจถึงค่าลบสำหรับการแปล Y คุณอาจต้องการอ่านบทแนะนำนี้ก่อนเพื่อรับข้อมูลเชิงลึกเพิ่มเติม.
คำบรรยายภาพพฤติกรรมที่ 2: เลื่อนลง.
ในทางกลับกันคำบรรยายภาพที่สองจะเลื่อนลงจากด้านบน ดังนั้นเราจะมีค่าบวกสำหรับการแปล Y.
#mainwrapper .box: โฮเวอร์. full-caption -moz-transform: translateY (100%); -o-transform: translateY (100%); -webkit-transform: translateY (100%); แปลงแล้ว: แปล Y (100%);
คำบรรยายภาพพฤติกรรม 3: จางลง.
คำบรรยายภาพที่สามเป็นภาพที่ง่ายที่สุด เมื่อกล่องเลื่อนอยู่ความทึบของคำบรรยายจะเปลี่ยนเป็น 1 ทำให้มองเห็นได้และเนื่องจากเราได้เพิ่มคุณสมบัติการเปลี่ยนภาพในคลาสคำบรรยายภาพการเปลี่ยนภาพควรจะทำงานได้อย่างราบรื่น.
#mainwrapper .box: hover .fade-caption opacity: 1;
คำบรรยายภาพพฤติกรรมที่ 4: เลื่อนไปทางซ้าย.
ดังที่เรากล่าวถึงก่อนหน้านี้คำบรรยายภาพนี้จะเลื่อนไปทางซ้ายอย่างไรก็ตามภาพจะเลื่อนออกไปทางขวา ดังนั้นที่นี่เรามี 2 ประกาศ CSS.
รหัส CSS ด้านล่างระบุว่าเมื่อเราวางเมาส์เหนือช่องคำอธิบายภาพจะเลื่อน 100% ของความกว้างไปทางซ้าย โปรดสังเกตว่าตอนนี้เราใช้ translateX เพราะเราต้องการให้สไลด์เลื่อนในแนวนอนจากขวาไปซ้าย.
#mainwrapper .box: hover .slide-caption background-color: rgba (0,0,0,1) สำคัญ! -moz-transform: translateX (-100%); -o-transform: translateX (-100%); -webkit-transform: translateX (-100%); ความทึบ: 1; แปลง: translateX (-100%);
เมื่อเราวางเมาส์เหนือช่องภาพจะเลื่อนออกไปทางซ้าย.
#mainwrapper .box: โฮเวอร์ img # image-4 -moz-transform: translateX (-100%); -o-transform: translateX (-100%); -webkit-transform: translateX (-100%); แปลง: translateX (-100%);
คำบรรยายใต้ภาพ 5: หมุนภาพ.
คำบรรยายภาพนี้แตกต่างจากส่วนที่เหลือเนื่องจากจะไม่ย้ายจากทางขวาหรือซ้าย แต่จะหมุน เมื่อกล่องเลื่อนอยู่ div ที่มีรูปภาพและคำอธิบายจะหมุน -180 ทวนเข็มนาฬิกาเพื่อซ่อนภาพและแสดงคำบรรยาย.
/ ** หมุนคำบรรยาย: พฤติกรรมโฮเวอร์ ** / #mainwrapper .box: โฮเวอร์. หมุน พื้นหลังสี: rgba (0,0,0,1)! สำคัญ; -moz-transform: หมุน (-180deg); -o-transform: หมุน (-180deg); -webkit-transform: หมุน (-180deg); แปลง: หมุน (-180deg);
คำบรรยายภาพพฤติกรรมที่ 6: ไต่ระดับขึ้น.
คำบรรยายภาพนี้จะรวมผลการแปลงหลายอย่าง เมื่อกล่องเลื่อนอยู่ภาพจะขยายขึ้น 140% (1.4) จากมิติเริ่มต้น.
#mainwrapper .box: hover # image-6 -moz-transform: scale (1.4); -o-transform: scale (1.4); -webkit-transform: scale (1.4); แปลง: ขนาด (1.4);
และถ้าคุณเห็น CSS ด้านบนใต้ คำอธิบาย 6 ส่วนหัวเราได้ซ่อนข้อความทางซ้าย 200px โค้ด CSS ด้านล่างนี้บอกให้ข้อความเลื่อนไปยังตำแหน่งเริ่มต้น ดังนั้นข้อความจะเลื่อนจากซ้ายไปขวาพร้อมกัน.
#mainwrapper .box: hover .scale-caption h3, #mainwrapper .box: hover .scale-caption p -moz-transform: translateX (200px); -o-transform: translateX (200px); -webkit-transform: translateX (200px); แปลง: translateX (200px);
- การสาธิต
- แหล่งดาวน์โหลด
สรุป
แม้ว่าคุณสมบัติ CSS เหล่านี้จะเจ๋ง แต่ก็ยังไม่สามารถใช้ได้อย่างกว้างขวางเนื่องจากข้อ จำกัด การสนับสนุนเบราว์เซอร์ที่เราได้กล่าวถึงก่อนหน้านี้ อย่างไรก็ตามทดลองใช้คุณลักษณะใหม่ ๆ เหล่านี้ต่อไปเพราะนี่คือวิธีที่เราจะสร้างหน้าเว็บในอนาคต.
เครดิต
รูปขนาดย่อของรูปภาพในบทช่วยสอนนำมาจากเว็บไซต์ต่อไปนี้ (ภาพหน้าจอ):
- หนังสือแยก
- Archiduchesse
- vlog
- Hongkiat
- ฟาร์มอวยพร
- มาร์คเอคโค