ครู่หนึ่งกลับมา Ganesh Dahal เขียนโพสต์ที่นี่บน CSS-Tricks ตอบกลับทวีตที่ถามเกี่ยวกับการเพิ่ม CSS box shadows บนบล็อกและองค์ประกอบ WordPress มีสิ่งที่ยอดเยี่ยมมากมายในนั้นที่ใช้ประโยชน์จากคุณสมบัติใหม่ที่จัดส่งใน WordPress 6.1 ที่ให้การควบคุมสำหรับการใช้เงากับสิ่งต่าง ๆ โดยตรงใน Block Editor และ UI ของ Site Editor
พระพิฆเนศแตะองค์ประกอบปุ่มสั้นๆ ในโพสต์นั้น ฉันต้องการรับสิ่งนั้นและเจาะลึกแนวทางสำหรับปุ่มสไตล์ในธีมบล็อก WordPress โดยเฉพาะเราจะเปิดใหม่ theme.json
ไฟล์และแยกย่อยแนวทางต่างๆ เพื่อจัดรูปแบบปุ่มในสคีมา
ทำไมต้องปุ่มคุณถาม? นั่นเป็นคำถามที่ดี เรามาเริ่มกันเลยดีกว่า
ปุ่มประเภทต่างๆ
เมื่อเรากำลังพูดถึงปุ่มในบริบทของ WordPress Block Editor เราต้องแยกความแตกต่างระหว่างสองประเภท:
- ลูกบล็อกภายในบล็อกปุ่ม
- ปุ่มที่ซ้อนอยู่ภายในบล็อกอื่นๆ (เช่น บล็อกแบบฟอร์มความคิดเห็นของโพสต์)
หากเราเพิ่มบล็อกทั้งสองนี้ลงในเทมเพลต บล็อกเหล่านั้นจะมีลักษณะเหมือนกันตามค่าเริ่มต้น
แต่มาร์กอัปนั้นแตกต่างกันมาก:
<div class="wp-block-button"> <a class="wp-block-button__link wp-element-button">Button 1</a>
</div>
<p class="form-submit wp-block-button"> <input name="submit" type="submit" id="submit" class="wp-block-button__link wp-element-button" value="Post Comment"> </p>
อย่างที่เราเห็น ชื่อแท็ก HTML นั้นแตกต่างกัน เป็นชั้นเรียนทั่วไป — .wp-block-button
และ .wp-element-button
— ช่วยให้มั่นใจได้ถึงสไตล์ที่สอดคล้องกันระหว่างปุ่มทั้งสองปุ่ม
หากเรากำลังเขียน CSS เราจะกำหนดเป้าหมายสองคลาสนี้ แต่อย่างที่เราทราบกันดีว่าธีมบล็อกของ WordPress มีวิธีการจัดการสไตล์ที่แตกต่างออกไป และนั่นก็คือผ่าน theme.json
ไฟล์ พระพิฆเนศยังกล่าวถึงเรื่องนี้อย่างละเอียดและคุณควรอ่านบทความของเขา
แล้วเราจะกำหนดรูปแบบปุ่มได้อย่างไรใน theme.json
โดยไม่ต้องเขียน CSS จริงหรือ ขอทำมันด้วยกัน.
การสร้างสไตล์พื้นฐาน
theme.json
เป็นชุดโครงสร้างของสคีมาที่เขียนด้วยคุณสมบัติ:คู่ค่า คุณสมบัติระดับบนสุดเรียกว่า "ส่วน" และเราจะทำงานร่วมกับ styles
ส่วน. นี่คือที่มาของคำแนะนำในการจัดแต่งทรงผมทั้งหมด
เราจะเน้นเป็นพิเศษเกี่ยวกับ elements
ใน styles
. ตัวเลือกนี้กำหนดเป้าหมายองค์ประกอบ HTML ที่ใช้ร่วมกันระหว่างบล็อก นี่คือเชลล์พื้นฐานที่เรากำลังทำงานด้วย:
// theme.json
{ "version": 2, "styles": { "elements": { // etc. } }
}
สิ่งที่เราต้องทำคือกำหนด a button
ธาตุ.
={ "version": 2, "styles": { "elements": { "button": { // etc. } } }
}
ที่ button
สอดคล้องกับองค์ประกอบ HTML ที่ใช้ในการทำเครื่องหมายองค์ประกอบปุ่มในส่วนหน้า ปุ่มเหล่านี้มีแท็ก HTML ที่อาจเป็นปุ่มประเภทใดประเภทหนึ่งจากสองประเภทของเรา: คอมโพเนนต์แบบสแตนด์อโลน (เช่น บล็อกปุ่ม) หรือคอมโพเนนต์ที่ซ้อนอยู่ภายในบล็อกอื่น (เช่น บล็อกโพสต์ความคิดเห็น)
แทนที่จะต้องกำหนดสไตล์แต่ละบล็อก เราสร้างสไตล์ที่ใช้ร่วมกัน ไปข้างหน้าและเปลี่ยนพื้นหลังและสีข้อความเริ่มต้นสำหรับปุ่มทั้งสองประเภทในธีมของเรา มี color
ค้านในนั้นกลับสนับสนุน background
และ text
คุณสมบัติที่เราตั้งค่าที่เราต้องการ:
{ "version": 2, "styles": { "elements": { "button": { "color": { "background": "#17a2b8", "text": "#ffffff" } } } }
}
สิ่งนี้จะเปลี่ยนสีของปุ่มทั้งสองประเภท:
หากถอดรหัสเปิด DevTools และดู CSS ที่ WordPress สร้างสำหรับปุ่ม เราจะเห็นว่า .wp-element-button
class เพิ่มสไตล์ที่เรากำหนดไว้ theme.json
:
.wp-element-button { background-color: #17a2b8; color: #ffffff;
}
นี่คือสีเริ่มต้นของเรา! ต่อไป เราต้องการให้ข้อเสนอแนะทางภาพแก่ผู้ใช้เมื่อพวกเขาโต้ตอบกับปุ่ม
การใช้รูปแบบปุ่มแบบโต้ตอบ
เนื่องจากนี่เป็นไซต์เกี่ยวกับ CSS ฉันพนันได้เลยว่าพวกคุณหลายคนคุ้นเคยกับสถานะของลิงก์และปุ่มโต้ตอบแล้ว เราสามารถ :hover
เคอร์เซอร์ของเมาส์เหนือพวกเขา แท็บเข้าไป :focus
คลิกที่พวกเขาเพื่อสร้าง :active
. เฮ็คมีแม้กระทั่ง :visited
ระบุเพื่อให้ผู้ใช้เห็นภาพว่าพวกเขาเคยคลิกสิ่งนี้มาก่อน
นั่นคือ CSS หลอกคลาส และ เราใช้มันเพื่อกำหนดเป้าหมายการโต้ตอบของลิงก์หรือปุ่ม.
ใน CSS เราอาจจัดรูปแบบ a :hover
สถานะเช่นนี้:
a:hover { /* Styles */
}
In theme.json
เราจะขยายการประกาศปุ่มที่มีอยู่ของเราด้วยคลาสหลอกเหล่านี้
{ "version": 2, "styles": { "elements": { "button": { "color": { "background": "#17a2b8", "text": "#ffffff" } ":hover": { "color": { "background": "#138496" } }, ":focus": { "color": { "background": "#138496" } }, ":active": { "color": { "background": "#138496" } } } } }
}
สังเกตลักษณะ "โครงสร้าง" ของสิ่งนี้ โดยพื้นฐานแล้วเรากำลังติดตามโครงร่าง:
ขณะนี้เรามีคำจำกัดความที่สมบูรณ์ของรูปแบบเริ่มต้นและแบบโต้ตอบของปุ่ม แต่ถ้าเราต้องการสไตล์ปุ่มบางปุ่มที่ซ้อนอยู่ในบล็อกอื่นล่ะ
ปุ่มจัดแต่งทรงผมซ้อนกันในแต่ละบล็อก
ลองจินตนาการว่าเราต้องการให้ปุ่มทั้งหมดมีสไตล์พื้นฐานของเรา โดยมีข้อยกเว้นประการหนึ่ง เราต้องการให้ปุ่มส่งของบล็อกแบบฟอร์มแสดงความคิดเห็นเป็นสีน้ำเงิน เราจะบรรลุสิ่งนั้นได้อย่างไร?
บล็อกนี้ซับซ้อนกว่าบล็อกปุ่มเพราะมีส่วนที่เคลื่อนไหวมากกว่า: แบบฟอร์ม อินพุต ข้อความแนะนำ และปุ่ม ในการกำหนดเป้าหมายปุ่มในบล็อกนี้ เราต้องปฏิบัติตามโครงสร้าง JSON แบบเดียวกับที่เราทำกับ button
องค์ประกอบ แต่นำไปใช้กับบล็อกแบบฟอร์มความคิดเห็นโพสต์ ซึ่งแมปกับ core/post-comments-form
ธาตุ:
{ "version": 2, "styles": { "elements" { "button": { // Default button styles } } "blocks": { "core/post-comments-form": { // etc. } } }
}
โปรดทราบว่าเราไม่ได้ทำงานอีกต่อไป elements
อีกต่อไป. เรากำลังทำงานข้างในแทน blocks
ซึ่งสงวนไว้สำหรับการกำหนดค่าบล็อกจริง ในทางตรงกันข้าม ปุ่มถือเป็นองค์ประกอบส่วนกลางเนื่องจากสามารถซ้อนกันเป็นบล็อกได้ แม้ว่าจะมีให้ใช้งานเป็นบล็อกแบบสแตนด์อโลนเช่นกัน
โครงสร้าง JSON รองรับองค์ประกอบภายในองค์ประกอบ ดังนั้นถ้ามี button
องค์ประกอบในบล็อกแบบฟอร์มแสดงความคิดเห็น เราสามารถกำหนดเป้าหมายได้ใน core/post-comments-form
บล็อก:
{ "version": 2, "styles": { "elements" { "button": { // Default button styles } } "blocks": { "core/post-comments-form": { "elements": { "button": { "color": { "background": "#007bff" } } } } } }
}
ตัวเลือกนี้หมายความว่าไม่เพียงแต่เรากำหนดเป้าหมายบล็อกเฉพาะเท่านั้น แต่ยังกำหนดเป้าหมายองค์ประกอบเฉพาะที่มีอยู่ในบล็อกนั้นด้วย ตอนนี้เรามีชุดสไตล์ปุ่มเริ่มต้นที่ใช้กับปุ่มทั้งหมดในธีม และชุดสไตล์ที่ใช้กับปุ่มเฉพาะที่มีอยู่ในบล็อกแบบฟอร์มแสดงความคิดเห็นของโพสต์
CSS ที่สร้างโดย WordPress มีตัวเลือกที่แม่นยำยิ่งขึ้นเป็นผล:
.wp-block-post-comments-form .wp-element-button,
.wp-block-post-comments-form .wp-block-button__link { background-color: #007bff;
}
แล้วถ้าเราต้องการกำหนดรูปแบบการโต้ตอบที่แตกต่างกันสำหรับปุ่มแบบฟอร์มแสดงความคิดเห็น เป็นข้อตกลงแบบเดียวกับที่เราทำกับรูปแบบเริ่มต้น เฉพาะรูปแบบที่กำหนดไว้ภายใน core/post-comments-form
บล็อก:
{ "version": 2, "styles": { "elements" { "button": { // Default button styles } } "blocks": { "core/post-comments-form": { "elements": { "button": { "color": { "background": "#007bff" } ":hover": { "color": { "background": "#138496" } }, // etc. } } } } }
}
แล้วปุ่มที่ไม่ได้อยู่ในบล็อคล่ะ?
WordPress สร้างและใช้คลาสที่ถูกต้องโดยอัตโนมัติเพื่อแสดงรูปแบบปุ่มเหล่านี้ แต่ถ้าคุณใช้ธีม WordPress แบบ "ไฮบริด" ที่รองรับการบล็อกและการแก้ไขทั้งไซต์ แต่ยังมีเทมเพลต PHP แบบ "คลาสสิก" ด้วย หรือถ้าคุณสร้างบล็อกแบบกำหนดเอง หรือแม้แต่มีรหัสย่อแบบดั้งเดิมที่มีปุ่มต่างๆ ล่ะ สิ่งเหล่านี้ไม่ได้รับการจัดการโดย เครื่องมือสไตล์ WordPress!
ไม่ต้องห่วง. ในทุกกรณี คุณจะเพิ่ม .wp-element-button
คลาสในเทมเพลต บล็อก หรือมาร์กอัปรหัสย่อ สไตล์ที่สร้างโดย WordPress จะถูกนำไปใช้ในกรณีเหล่านั้น
และอาจมีบางสถานการณ์ที่คุณไม่สามารถควบคุมมาร์กอัปได้ ตัวอย่างเช่น ปลั๊กอินบล็อกบางตัวอาจมีความคิดเห็นมากเกินไปและใช้สไตล์ของตัวเองได้อย่างอิสระ ที่นั่นคุณสามารถไปที่ตัวเลือก "ขั้นสูง" ในแผงการตั้งค่าของบล็อกและใช้คลาสที่นั่น:
ตัดขึ้น
ขณะเขียน “CSS” ใน theme.json
แรกๆ อาจจะรู้สึกเคอะเขิน แต่ก็พบว่ามันกลายเป็นธรรมชาติไปแล้ว เช่นเดียวกับ CSS มีคุณสมบัติจำนวนจำกัดที่คุณสามารถใช้ได้ทั้งแบบกว้างและแบบแคบมากโดยใช้ตัวเลือกที่เหมาะสม
และอย่าลืมข้อดีหลักสามประการของการใช้งาน theme.json
:
- สไตล์จะใช้กับปุ่มทั้งในมุมมองส่วนหน้าและตัวแก้ไขบล็อก
- CSS ของคุณจะเข้ากันได้กับการอัปเดต WordPress ในอนาคต
- สไตล์ที่สร้างขึ้นนั้นทำงานร่วมกับธีมบล็อกและธีมคลาสสิกได้เหมือนกัน ไม่จำเป็นต้องทำซ้ำสิ่งใดในสไตล์ชีตแยกต่างหาก
หากคุณเคยใช้ theme.json
สไตล์ในโครงการของคุณ โปรดแบ่งปันประสบการณ์และความคิดของคุณ ฉันหวังว่าจะได้อ่านความคิดเห็นและข้อเสนอแนะ!
- เนื้อหาที่ขับเคลื่อนด้วย SEO และการเผยแพร่ประชาสัมพันธ์ รับการขยายวันนี้
- เพลโตบล็อคเชน Web3 Metaverse ข่าวกรอง ขยายความรู้. เข้าถึงได้ที่นี่.
- ที่มา: https://css-tricks.com/styling-buttons-in-wordpress-block-themes/
- 1
- 10
- 11
- 7
- 9
- 98
- a
- เกี่ยวกับเรา
- ข้างบน
- บรรลุ
- คล่องแคล่ว
- เพิ่ม
- สูง
- ข้อได้เปรียบ
- ก่อน
- ทั้งหมด
- แล้ว
- และ
- อื่น
- ประยุกต์
- ใช้
- การประยุกต์ใช้
- วิธีการ
- บทความ
- ใช้ได้
- กลับ
- พื้นหลัง
- ฐาน
- ขั้นพื้นฐาน
- เป็นพื้น
- เพราะ
- จะกลายเป็น
- ก่อน
- เดิมพัน
- ระหว่าง
- Black
- ปิดกั้น
- Blocks
- สีน้ำเงิน
- กล่อง
- ทำลาย
- สั้น
- แต้
- ปุ่ม
- ที่เรียกว่า
- กรณี
- บาง
- เปลี่ยนแปลง
- การเปลี่ยนแปลง
- ชั้น
- ชั้นเรียน
- คลาสสิก
- สี
- ความเห็น
- ความคิดเห็น
- ร่วมกัน
- เข้ากันได้
- สมบูรณ์
- ซับซ้อน
- ส่วนประกอบ
- ถือว่า
- คงเส้นคงวา
- มี
- สิ่งแวดล้อม
- ตรงกันข้าม
- ควบคุม
- การควบคุม
- สอดคล้อง
- ได้
- ปกคลุม
- ร้าว
- สร้าง
- CSS
- ประเพณี
- จัดการ
- ลึก
- ค่าเริ่มต้น
- DID
- ต่าง
- โดยตรง
- เห็นความแตกต่าง
- ลง
- แต่ละ
- บรรณาธิการ
- ทั้ง
- องค์ประกอบ
- ทำให้มั่นใจ
- ฯลฯ
- แม้
- ตัวอย่าง
- ข้อยกเว้น
- ที่มีอยู่
- ขยาย
- ประสบการณ์
- ขยายออก
- คุ้นเคย
- คุณสมบัติ
- ข้อเสนอแนะ
- เนื้อไม่มีมัน
- ชื่อจริง
- โฟกัส
- ปฏิบัติตาม
- ดังต่อไปนี้
- ฟอร์ม
- ข้างหน้า
- พบ
- สด
- ด้านหน้า
- ปลายด้านหน้า
- อนาคต
- สร้าง
- สร้าง
- ให้
- ให้
- เหตุการณ์ที่
- Go
- ไป
- ดี
- ยิ่งใหญ่
- มี
- โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม
- ไฮไลต์
- โฉบ
- สรุป ความน่าเชื่อถือของ Olymp Trade?
- HTML
- HTTPS
- in
- ในอื่น ๆ
- การแสดง
- เป็นรายบุคคล
- อินพุต
- แทน
- คำแนะนำการใช้
- โต้ตอบ
- การโต้ตอบ
- IT
- JSON
- ทราบ
- มรดก
- ชั้น
- ยกระดับ
- เบา
- ถูก จำกัด
- การเชื่อมโยง
- น้อย
- อีกต่อไป
- ดู
- Lot
- ทำ
- หลัก
- ทำ
- การจัดการ
- หลาย
- เครื่องหมาย
- วิธี
- อาจ
- ข้อมูลเพิ่มเติม
- การย้าย
- ชื่อ
- ธรรมชาติ
- จำเป็นต้อง
- ใหม่
- คุณสมบัติใหม่
- ถัดไป
- จำนวน
- วัตถุ
- ONE
- เปิด
- มีความเห็น
- ตัวเลือกเสริม (Option)
- ใบสั่ง
- อื่นๆ
- เค้าโครง
- ของตนเอง
- คู่
- แผง
- ส่วน
- PHP
- เลือก
- เพลโต
- เพลโตดาต้าอินเทลลิเจนซ์
- เพลโตดาต้า
- กรุณา
- เสียบเข้าไป
- โพสต์
- โครงการ
- คุณสมบัติ
- คุณสมบัติ
- ให้
- คำถาม
- อ่าน
- การอ่าน
- สีแดง
- ลิขสิทธิ์
- ผล
- เดียวกัน
- ที่สอง
- Section
- ชุด
- การตั้งค่า
- Share
- ที่ใช้ร่วมกัน
- เปลือก
- จัดส่ง
- ตั้งแต่
- เว็บไซต์
- สถานการณ์
- So
- บาง
- โดยเฉพาะ
- เฉพาะ
- สแตนด์อโลน
- เริ่มต้น
- สถานะ
- สหรัฐอเมริกา
- โครงสร้าง
- โครงสร้าง
- สไตล์
- ส่ง
- รองรับ
- TAG
- การพูดคุย
- เป้า
- กำหนดเป้าหมาย
- เป้าหมาย
- เทมเพลต
- แม่แบบ
- พื้นที่
- บล็อก
- ชุดรูปแบบ
- สิ่ง
- สาม
- ตลอด
- ไปยัง
- ร่วมกัน
- เกินไป
- ด้านบน
- จริง
- กลับ
- tweet
- ชนิด
- เป็นปกติ
- ui
- การปรับปรุง
- ใช้
- ผู้ใช้
- ความคุ้มค่า
- ความคุ้มค่า
- ต่างๆ
- รุ่น
- รายละเอียด
- อะไร
- ที่
- ในขณะที่
- จะ
- ภายใน
- ไม่มี
- WordPress
- บล็อก WordPress
- เวิร์ดเพรสธีม
- งาน
- การทำงาน
- จะ
- การเขียน
- เขียน
- คุณ
- ของคุณ
- ลมทะเล