เรียนรู้วิธีใช้ CSS padding ทรัพย์สิน
CSS padding
คุณสมบัติใช้เพื่อควบคุมปริมาณพื้นที่ ภายใน องค์ประกอบ HTML ระหว่างเนื้อหาและเส้นขอบ
padding
มักจะสับสนกับ CSS margin
คุณสมบัติซึ่งเพิ่มช่องว่าง ภายนอก เส้นขอบขององค์ประกอบ (ตรงข้ามกับสิ่งที่ padding
ได้)
พื้นฐานการเติม CSS
นี่คือองค์ประกอบปุ่มที่มีป้ายกำกับข้อความ (เนื้อหา):
<button>Button</button>
ให้ปุ่มมีค่าช่องว่างภายใน 24px:
button {
padding: 24px;
}
ผลลัพธ์:
หากคุณเปลี่ยนค่าช่องว่างภายในเป็น 0
คุณได้รับสิ่งนี้:
มีคุณสมบัติช่องว่างภายในห้าแบบใน CSS:
padding-top
padding-right
padding-bottom
padding-left
padding
(อันที่เราเพิ่งใช้)
คุณสมบัติการเติมสี่รายการแรก (-บน, -ขวา, -ล่าง, -ซ้าย) เป็นคุณสมบัติเฉพาะทิศทางเดียวที่สามารถเพิ่มช่องว่างภายในได้เพียงด้านเดียวเท่านั้น
สุดท้าย padding
เป็นสิ่งที่เรียกว่า คุณสมบัติชวเลข และมีคุณสมบัติช่องว่างภายในที่ยืดหยุ่นและใช้มากที่สุด
มาสำรวจ padding
. กัน ทรัพย์สินอีกเล็กน้อย
วิธีใช้ชวเลข Padding
ชวเลข padding
คุณสมบัติ (อันเดียวที่เราใช้จนถึงตอนนี้) สามารถเพิ่มค่าช่องว่างภายในได้หลายค่าพร้อมกัน (ค่าหนึ่ง สอง สาม หรือสี่ค่า)
มาดูตัวอย่างกัน
ชวเลขการเติมค่าหนึ่งค่า
ในตัวอย่างปุ่ม padding 24px ก่อนหน้านี้ คุณสามารถทำได้ใน CSS:
button {
padding-top: 24px;
padding-right: 24px;
padding-bottom: 24px;
padding-left: 24px;
}
แต่นั่นเสียเวลาเปล่าเมื่อคุณกำหนดเป้าหมายทั้งสี่ด้านพร้อมกันโดยใช้ค่าเดียว ชวเลขช่องว่างภายใน:
button {
padding: 24px;
}
ชวเลขช่องว่างภายในสองค่า
จะทำอย่างไรถ้าคุณต้องการเพิ่มช่องว่างภายในขนาด 16px ที่ด้านบนและด้านล่าง แต่ช่องว่างภายในขนาด 24px ที่ด้านซ้ายและด้านขวาล่ะ
คุณสามารถทำได้ (วิธีที่ใช้เวลานาน):
button {
padding-top: 16px;
padding-right: 24px;
padding-bottom: 16px;
padding-left: 24px;
}
หรือใช้เพื่อนที่ดีของคุณทั้งสองค่า padding
อักษรย่อ:
button {
padding: 16px 24px;
}
เมื่อคุณใช้ padding
คุณสมบัติที่มี สอง ค่าเหมือนด้านบน:
- ค่าแรกกำหนดเป้าหมายทั้งช่องว่างด้านบนและด้านล่าง
- ค่าที่สองกำหนดเป้าหมายทั้งช่องว่างด้านซ้ายและด้านขวา
ผลลัพธ์:
ชวเลขการเติมสามค่า
เมื่อคุณใช้ padding
ทรัพย์สินที่มี สาม ค่า เช่น:
button {
padding: 12px 24px 8px;
}
- ค่าแรกคือการเติมด้านบน
- ค่าที่สองคือ ทั้งคู่ ด้านซ้ายและขวา
- ค่าที่สามคือการเติมด้านล่าง
ผลลัพธ์:
ชวเลขการเติมสี่ค่า
เมื่อคุณใช้ padding
คุณสมบัติที่มี สี่ ค่า เช่น:
button {
padding: 12px 16px 12px 16px;
}
- ค่าแรกคือการเติมด้านบน
- ค่าที่สองคือการเติมด้านขวา
- ค่าที่สามคือการเติมด้านล่าง
- ค่าที่สี่คือช่องว่างภายในด้านซ้าย
ควรใช้คุณสมบัติการเติมแบบทิศทางเดียวเมื่อใด
ชวเลข padding
คุณสมบัติเตะคุณสมบัติการเติมแบบทิศทางเดียวในแง่ของความยืดหยุ่นและประสิทธิภาพ
เหตุใดคุณจึงใช้ตัวอย่าง:
padding-left: 24px;
หากคุณสามารถใช้ชวเลขด้านล่างเพื่อให้ได้ผลลัพธ์แบบเดียวกัน
padding: 0 0 0 24px; /* top: 0, right: 0, bottom: 0, left: 24px */
เหตุผลหลักในการใช้คุณสมบัติช่องว่างภายในแบบทิศทางเดียว ถ้าด้วยเหตุผลใดก็ตามที่คุณต้องการเพิ่มการเติมเฉพาะที่ด้านหนึ่งขององค์ประกอบ และปล่อยให้ค่าการเติมของอีกสามด้านเป็นค่าเริ่มต้น/ค่าการเติมปัจจุบัน (ซึ่งขึ้นอยู่กับ ในการตั้งค่าของคุณ)
อย่างไรก็ตาม สมมติว่าคุณต้องการเพียงช่องว่างภายในด้านซ้ายขององค์ประกอบ แต่ไม่มีช่องว่างภายในที่ด้านบน ด้านขวา และด้านล่าง ในการทำเช่นนั้นโดยใช้คุณสมบัติช่องว่างภายในแบบทิศทางเดียว โค้ดของคุณจะต้องเขียนแบบนี้เพื่อให้ค่าการเติมที่มีอยู่ที่ด้านบน ด้านขวา และด้านล่างถูกแทนที่:
padding-top: 0;
padding-right: 0;
padding-bottom: 0;
padding-left: 24px
ต่อไปนี้คือจำนวนโค้ดที่แย่มากสำหรับบางสิ่งที่สามารถเขียนในหนึ่งบรรทัดโดยใช้คุณสมบัติชวเลขช่องว่าง:
padding: 0 0 0 24px; /* top, right, bottom, left */
ค่าปริยาย/ค่าปัจจุบันที่ฉันกำลังพูดถึงคืออะไร
ฉันหมายถึงสไตล์ที่สืบทอดมาจาก:
- สไตล์ชีตตัวแทนผู้ใช้
- ไลบรารีหรือเฟรมเวิร์ก CSS
- หรือการประกาศสไตล์อื่นๆ ที่เพิ่มด้วยตัวเองที่ด้านบนสุดของสไตล์ชีต CSS ของคุณ (จำไว้ว่า CSS cascades)
User Agent Stylesheet (UAS) เป็นสไตล์ชีต CSS ขั้นต่ำที่เบราว์เซอร์ทั้งหมดมีในตัว มีไว้เพื่อให้แน่ใจว่าแม้ว่าคุณจะไม่ได้เพิ่ม CSS ใด ๆ ในเว็บไซต์ของคุณเอง แต่ก็ยังมีการจัดรูปแบบ/การจัดรูปแบบเพียงพอที่จะทำให้เนื้อหาของคุณอ่านได้สำหรับผู้ใช้ปลายทาง
ตัวอย่างเช่น หากช่องว่างภายในปัจจุบันบนองค์ประกอบปุ่มของคุณมีลักษณะดังนี้ (ไม่ว่าจะมาจากไหน):
button {
padding-top: 16px;
padding-right: 20px;
padding-bottom: 20px;
padding-left: 16px
}
และคุณสร้างคลาสปุ่มที่เน้นเฉพาะค่าสูงสุดของช่องว่างภายใน:
.button-login {
padding-top: 40px;
}
และเพิ่มไปยังองค์ประกอบปุ่ม:
<button class="button-login">Login</Button>
จากนั้นปุ่มเข้าสู่ระบบของคุณจะมีลักษณะดังนี้:
เพราะอีกครั้ง ค่าช่องว่างภายในด้านขวา ด้านล่าง และด้านซ้ายจะสืบทอดมาจากที่อื่น
อย่างที่คุณอาจจินตนาการได้ การใช้คุณสมบัติการเติมแบบทิศทางเดียวอาจทำให้เกิดความสับสนหรือผลลัพธ์ที่คาดเดาไม่ได้ ขึ้นอยู่กับว่า CSS codebase ของคุณมีการจัดระเบียบอย่างไร
ฉัน ไม่ค่อยใช้คุณสมบัติการเติมแบบทิศทางเดียว เพราะในตอนเริ่มต้นของทุกโครงการใหม่ ฉันรีเซ็ตค่าการเติมเป็นศูนย์ จากนั้นจึงเพิ่มค่าการเติมลงในส่วนประกอบ UI (องค์ประกอบ HTML) ตามมาตราส่วนการเว้นวรรคของโครงการ
สิ่งนี้ทำให้เวิร์กโฟลว์ของฉันสามารถคาดเดาได้มากขึ้นเพราะฉันไม่ต้องกังวลเกี่ยวกับสไตล์ต่างๆ ที่ส่งต่อโดย User Agent Stylesheet ของเบราว์เซอร์ X
ด้วยเหตุผลทั้งหมดที่กล่าวมาข้างต้น การใช้เครื่องหมายย่อ padding
วิธีการกำหนดค่าการเติม — ส่วนใหญ่
หากมีข้อสงสัย ให้ใช้ชวเลขช่องว่างภายใน
วิธีการจำ padding shorthands
การจดชวเลขค่าสี่ค่านั้นจำง่ายที่สุดเพราะมีการเติมค่า ตามเข็มนาฬิกา: บน ขวา ล่าง ซ้าย
ชวเลขค่าสองและสามมีความชัดเจนน้อยกว่า:
- ชวเลขสองค่า:
16px 8px
(บน-ล่าง ซ้าย-ขวา) - ชวเลขสามค่า:
8px 16px 4px
(บน ซ้าย ขวา ล่าง)
หมายเหตุ: ในทางปฏิบัติ คุณแทบจะไม่จำเป็นต้องใช้ชวเลขสามค่า ซึ่งสำหรับฉันแล้ว มันไม่คุ้มที่จะท่องจำ (ใช้ความสามารถสมองของคุณเพื่ออย่างอื่น) ดูหากจำเป็นต้องใช้
หน่วยความยาวช่องว่างที่ยอมรับได้
padding
คุณสมบัติยอมรับหน่วยความยาวทุกประเภท หน่วยความยาวที่พบบ่อยที่สุดคือ px
, rem
, em
, %
, vw
, vh
, inherit
.
หมายเหตุ: ฉันใช้หน่วยพิกเซล px
ในบทช่วยสอนนี้เนื่องจากเป็นประเภทหน่วยที่สัมพันธ์กันมากขึ้นสำหรับผู้เริ่มต้น (ซึ่งผมคิดว่าพวกคุณส่วนใหญ่เป็นเช่นนั้น) โดยเฉพาะอย่างยิ่งหากคุณมาจากพื้นหลังการออกแบบภาพโดยใช้ Illustrator, Sketch, Figma เป็นต้น
อย่างไรก็ตาม พิกเซลเป็นหน่วยสัมบูรณ์ ที่มีความยาวตายตัวจึงปรับขนาดได้ไม่ดี
หน่วยสัมพัทธ์ เช่น rem
. ที่กล่าวมา , em
, %
, vw
, vh
เก่งในการปรับขนาด แต่แต่ละคนก็ใช้วิธีการที่แตกต่างกัน
ฉัน ส่วนใหญ่ใช้ rem
สำหรับค่าการเติมของฉัน แต่ส่วนใหญ่เป็นเรื่องของการตั้งค่าในยุคนี้ซึ่งเบราว์เซอร์สมัยใหม่ทั้งหมดสามารถประมวลผลหน่วยทุกประเภทได้
การเพิ่มประสิทธิภาพ (การอ่านตัวเลือก)
สำหรับผู้ที่มาจากพื้นฐานการเพิ่มประสิทธิภาพ ฉันรู้ว่าคุณคิดอย่างไร:
“มีความแตกต่างด้านประสิทธิภาพ/ค่าใช้จ่ายในการใช้ชวเลขช่องว่างภายใน เมื่อเทียบกับการใช้ค่าทิศทางเดียวหรือไม่"
คำตอบคือ ใช่ อย่างไรก็ตาม เป็นไปไม่ได้เลยที่จะคาดเดาว่าตัวอย่างใดในสองตัวอย่างต่อไปนี้มีประสิทธิภาพสูงสุด:
padding: 8px 12px 16px 20px;
padding-top: 8px;
padding-right: 12px;
padding-bottom: 16px;
padding-left: 20px;
คุณอาจคิดว่าชวเลขเป็นตัวเลือกที่มีประสิทธิภาพมากที่สุด เนื่องจากมีไบต์ (ข้อมูล) น้อยกว่าในการประมวลผล
อย่างไรก็ตาม ทุกอย่างขึ้นอยู่กับสิ่งที่เกิดขึ้นระหว่างการพัฒนาและการผลิตในแง่ของการประมวลผลโค้ด (การแยกวิเคราะห์ ย่อขนาด คอมไพล์) และการกำหนดค่าและจัดระเบียบโครงการของคุณ
ความแตกต่างที่อาจเกิดขึ้นนั้นเล็กน้อยมากจนไม่ต้องกังวล คุณต้องเลือกการต่อสู้ของคุณอย่างชาญฉลาด และเมื่อพูดถึงการแสดง คุณมีปลาที่จะทอดมากกว่าคุณสมบัติการขยาย