การเยื้องและระยะขอบใน html ระยะขอบ CSS และช่องว่างภายใน: ความแตกต่างระหว่างคุณสมบัติระยะขอบและช่องว่างภายใน วิธีการจัดตำแหน่งแบบเก่า
ในบทที่แล้วเราได้กล่าวถึงเรื่องนี้แล้ว คุณสมบัติซีเอสเอสเช่น ระยะขอบ (ฟิลด์) และระยะห่างจากขอบ (เยื้อง) ตอนนี้เราจะดูรายละเอียดเพิ่มเติมและพิจารณาว่าพวกเขาแตกต่างกันอย่างไรและมีคุณสมบัติอะไรบ้าง
คุณสามารถสร้างช่องว่างระหว่างองค์ประกอบได้ไม่ทางใดก็ทางหนึ่ง แต่หากช่องว่างภายในเป็นการเยื้องจากเนื้อหาไปยังขอบของบล็อก ระยะขอบคือระยะห่างจากบล็อกหนึ่งไปยังอีกบล็อกหนึ่ง ซึ่งก็คือช่องว่างระหว่างบล็อก ภาพหน้าจอแสดงตัวอย่างที่ชัดเจน:
Padding แยกเนื้อหาออกจากเส้นขอบของบล็อก และระยะขอบจะสร้างช่องว่างระหว่างบล็อก
อย่างที่คุณเห็น CSS Margins และ Padding แตกต่างกัน แม้ว่าบางครั้งจะไม่ได้ดูโค้ด แต่ก็เป็นไปไม่ได้ที่จะระบุคุณสมบัติที่จะใช้ในการกำหนดระยะห่าง สิ่งนี้เกิดขึ้นเมื่อเฟรมหรือพื้นหลังของบล็อกเนื้อหาหายไป
คุณสมบัติต่อไปนี้มีอยู่เพื่อตั้งค่าระยะขอบหรือช่องว่างภายในใน CSS ในแต่ละด้านขององค์ประกอบ:
การขยายความ:
- ช่องว่างภายในด้านบน: ความหมาย;
- ช่องว่างภายในขวา: ความหมาย;
- ช่องว่างภายในด้านล่าง: ความหมาย;
- ช่องว่างภายในซ้าย: ความหมาย;
สาขา:
- ขอบด้านบน: ความหมาย;
- ขอบขวา: ความหมาย;
- ขอบล่าง: ความหมาย;
- ขอบซ้าย: ความหมาย;
สามารถระบุค่าในหน่วย CSS ใดก็ได้ - px, em, % ฯลฯ ตัวอย่าง: margin-top: 15px .
นอกจากนี้ยังมีสิ่งที่สะดวกมากเช่น ชวเลขสำหรับระยะขอบและการขยาย CSS. หากคุณต้องการตั้งค่าระยะขอบหรือช่องว่างภายในทั้งสี่ด้านขององค์ประกอบ คุณไม่จำเป็นต้องเขียนคุณสมบัติสำหรับแต่ละด้านแยกกัน ทุกอย่างง่ายขึ้น: สำหรับระยะขอบและช่องว่างภายในคุณสามารถระบุค่า 1, 2, 3 หรือ 4 ค่าในคราวเดียว จำนวนค่ากำหนดวิธีการกระจายการตั้งค่า:
- ค่า 4 ค่า: ระยะห่างจากขอบถูกตั้งค่าสำหรับทุกด้านขององค์ประกอบตามลำดับต่อไปนี้: บน, ขวา, ล่าง, ซ้าย: ระยะห่างจากขอบ: 2px 4px 5px 10px;
- 3 ค่า: ช่องว่างภายในถูกตั้งค่าไว้เป็นอันดับแรกสำหรับด้านบน จากนั้นพร้อมกันสำหรับด้านซ้ายและด้านขวา จากนั้นสำหรับด้านล่าง: ช่องว่างภายใน: 3px 6px 9px;
- 2 ค่า: ช่องว่างภายในถูกตั้งค่าพร้อมกันจากด้านบนและด้านล่าง จากนั้นพร้อมกันสำหรับซ้ายและขวา: ช่องว่างภายใน: 6px 12px;
- 1 ค่า: มีการตั้งค่าช่องว่างภายในเท่ากันสำหรับทุกด้านขององค์ประกอบ: ช่องว่างภายใน: 3px;
กฎเดียวกันนี้ใช้กับคุณสมบัติ CSS Margin โปรดทราบว่าคุณสามารถใช้ค่าลบสำหรับมาร์จิ้นได้ (เช่น -3px) ซึ่งบางครั้งอาจมีประโยชน์มาก
ยุบระยะขอบ
ลองนึกภาพสถานการณ์: องค์ประกอบบล็อกสององค์ประกอบวางซ้อนกันและจะได้รับฟิลด์มาร์จิ้น บล็อกด้านบนถูกกำหนดไว้ที่ Margin: 60px และบล็อกด้านล่างถูกกำหนดไว้ที่ Margin: 30px มันสมเหตุสมผลที่จะสมมติว่าฟิลด์ที่มีเส้นขอบทั้งสองขององค์ประกอบทั้งสองจะสัมผัสกันและด้วยเหตุนี้ช่องว่างระหว่างบล็อกจะเท่ากับ 90 พิกเซล
อย่างไรก็ตามสิ่งต่าง ๆ ในความเป็นจริง ในสถานการณ์เช่นนี้ เอฟเฟกต์จะเกิดขึ้นที่เรียกว่าการล่มสลาย เมื่อเลือกขนาดที่ใหญ่ที่สุดจากองค์ประกอบสองช่องที่อยู่ติดกัน ในตัวอย่างของเรา ช่องว่างสุดท้ายระหว่างองค์ประกอบคือ 60 พิกเซล
ระยะห่างระหว่างบล็อกเท่ากับค่าที่มากกว่า
การยุบระยะขอบใช้ได้กับระยะขอบด้านบนและด้านล่างขององค์ประกอบเท่านั้น และไม่มีผลกับระยะขอบด้านขวาและด้านซ้าย ค่าช่องว่างสุดท้ายจะถูกคำนวณแตกต่างกันในสถานการณ์ที่แตกต่างกัน:
- เมื่อค่ามาร์จิ้นทั้งสองเป็นบวก ขนาดมาร์จิ้นที่ได้จะเท่ากับค่าที่มากขึ้น
- หากค่าใดค่าหนึ่งเป็นลบคุณต้องคำนวณขนาดของฟิลด์เพื่อให้ได้ผลรวมของค่า ตัวอย่างเช่น ด้วยค่า 20px และ -18px ขนาดฟิลด์จะเป็น:
20 + (-18) = 20 – 18 = 2 พิกเซล - หากทั้งสองค่าเป็นลบ จะมีการเปรียบเทียบโมดูลัสของตัวเลขเหล่านี้ และเลือกตัวเลขที่มีโมดูลัสมากกว่า (ด้วยเหตุนี้ ตัวเลขลบที่น้อยกว่า) จะถูกเลือก ตัวอย่าง: คุณต้องเปรียบเทียบค่าของฟิลด์ -6px และ -8px โมดูลัสของตัวเลขที่จะเปรียบเทียบคือ 6 และ 8 ตามลำดับ ตามมาด้วย 6 -8 ขนาดฟิลด์ผลลัพธ์คือ -8 พิกเซล
- ในกรณีที่มีการระบุค่าไว้ใน หน่วยที่แตกต่างกัน CSS จะลดลงเหลือหนึ่งหลังจากนั้นจึงเปรียบเทียบและเลือกค่าที่มากขึ้น
- ขนาดระยะขอบสำหรับองค์ประกอบลูกถูกกำหนดด้วยวิธีที่น่าสนใจยิ่งขึ้นไปอีก: หากลูกมีระยะขอบมากกว่าระดับบนสุด ก็จะให้ความสำคัญกับขนาดนั้น ในกรณีนี้ ขนาดของระยะขอบบนและล่างของพาเรนต์จะเหมือนกับขนาดที่ระบุไว้สำหรับเด็ก ในกรณีนี้จะไม่มีระยะห่างระหว่างผู้ปกครองและเด็ก
ขอบและช่องว่างภายในเป็นรูปแบบที่สำคัญมากในการสร้างหน้า HTML ช่วยให้คุณวางตำแหน่งองค์ประกอบได้แม่นยำยิ่งขึ้น สร้างเฟรมที่มีช่องว่างที่จำเป็น ฯลฯ ทั้งสองสไตล์มีความคล้ายคลึงกันมากและทำหน้าที่คล้ายกัน แต่ก็ยังมีความแตกต่างอยู่
องค์ประกอบสามารถซ้อนกันหรืออยู่ติดกัน ลองดูตัวอย่างต่อไปนี้:
เรามีโต๊ะสองโต๊ะ สีเลมอนและสีฟ้า โดยโต๊ะหนึ่งอยู่ด้านล่างของอีกโต๊ะ ตารางประกอบด้วยเซลล์เดียว มีบล็อกสีแดงอยู่ในเซลล์ตารางแรก จากตัวอย่างนี้ เรามาดูกันว่าระยะขอบและการเยื้องทำงานอย่างไร
ฟิลด์ถูกกำหนดตามสไตล์ การขยายความ. สไตล์นี้ใช้กับองค์ประกอบคอนเทนเนอร์เท่านั้น ซึ่งสามารถประกอบด้วยองค์ประกอบอื่นๆ ได้ สไตล์นี้ช่วยให้คุณกำหนดระยะขอบระหว่างขอบขององค์ประกอบและเนื้อหาได้ สไตล์ ระยะขอบช่วยให้คุณสามารถตั้งค่าการเยื้องจากองค์ประกอบหนึ่งไปยังขอบที่ใกล้ที่สุดขององค์ประกอบอื่น เส้นขอบขององค์ประกอบอื่นอาจเป็นเส้นขอบของคอนเทนเนอร์หลัก เช่นเดียวกับขอบของหน้าด้วย
มีหลายวิธีในการตั้งค่าสไตล์เหล่านี้ ตัวอย่างเช่น ระบุขนาดของระยะขอบหรือการเยื้องทั้งหมดโดยตรงด้วยอาร์กิวเมนต์เดียวในหน่วยการวัดบางหน่วย (px, ex, em, pt, cm และอื่นๆ):
ช่องว่างภายใน: 3px; ระยะขอบ: 3px;ในกรณีนี้ระยะขอบและการเยื้องจะเหมือนกันทั้งสี่ด้าน เมื่อระบุสองอาร์กิวเมนต์คั่นด้วยช่องว่าง:
การขยาย: 3px 5px; ระยะขอบ: 3px 5px;อันแรกจะกำหนดจำนวนระยะขอบ/การเยื้องที่ด้านบนและด้านล่าง ส่วนอันที่สอง - ทางซ้ายและขวา เมื่อให้เหตุผล ๓ ประการ คือ
การขยาย: 3px 5px 2px; ระยะขอบ: 3px 5px 2px;อันแรกคือระยะขอบ/การเยื้องที่ด้านบน อันที่สองคือทั้งซ้ายและขวา อันที่สามอยู่ที่ด้านล่าง ด้วยข้อโต้แย้งสี่ประการ:
การขยาย: 3px 5px 2px 6px; ระยะขอบ : 3px 5px 2px 6px ;อันแรกคือระยะขอบ/ช่องว่างด้านบน อันที่สองอยู่ทางขวา อันที่สามอยู่ด้านล่าง อันที่สี่อยู่ทางซ้าย ง่ายต่อการจดจำ: อันแรกมาจากด้านบนแล้วตามเข็มนาฬิกา นอกจากนี้ คุณยังสามารถตั้งค่าระยะขอบและช่องว่างภายในสำหรับขอบที่ต้องการแยกกันได้ โดยใช้สไตล์ที่เหมาะสม: ช่องว่างด้านบน, ช่องว่างภายในด้านขวา, ช่องว่างภายในด้านล่าง, ช่องว่างภายในด้านซ้าย, ขอบด้านบน, ขอบขวา, ขอบล่าง, ขอบซ้าย. ค่าของสไตล์เหล่านี้สามารถเป็นได้เพียงอาร์กิวเมนต์เดียวเท่านั้น ซึ่งระบุจำนวนระยะขอบ/ช่องว่างภายในสำหรับด้านที่กำหนด
ในรูป บล็อกสีแดงอยู่ภายในเซลล์ตารางและอยู่ติดกับเส้นขอบ กล่าวคือ เซลล์ไม่มีระยะขอบ มาตั้งค่าระยะขอบของเซลล์โดยใช้สไตล์:
ช่องว่างภายใน: 5px;ด้วยเหตุนี้ เพจจะเปลี่ยนเป็นดังนี้:
ตอนนี้เรามาดูการเยื้องกัน ตารางสองตารางอยู่ติดกัน หากเราต้องการแยกออกจากกันเล็กน้อย เราสามารถใช้การเยื้องได้ มีสองตัวเลือกที่นี่: ตั้งค่าการเยื้องด้านล่างของตารางแรก หรือการเยื้องด้านบนของตารางที่สอง ลองใช้อันที่สอง:
ขอบบน: 5px;โปรดทราบว่าเราตั้งค่าการเยื้องให้กับตารางโดยเฉพาะ ไม่ใช่กับเซลล์ของตาราง เช่นเดียวกับกรณีของฟิลด์ นี่คือผลลัพธ์:
อย่างไรก็ตาม ในกรณีแรก (ช่องว่างระหว่างบล็อกสีแดงและขอบเขตของเซลล์หลัก) คุณสามารถบรรลุผลแบบเดียวกันได้โดยการตั้งค่าการเยื้องของบล็อก โดยทั่วไปหากมีอะไรไม่ชัดเจนโปรดแจ้งให้เราทราบในความคิดเห็น
รหัส HTML ของหน้าทดสอบ:
<html > <หัว > <หัวเรื่อง >ทดสอบ</หัวเรื่อง> <meta http-equiv = "ประเภทเนื้อหา" content = "text/html;charset=utf-8"> </หัว> <ร่างกาย > <สไตล์ >ตาราง (กว้าง: 200px; ความสูง: 150px; เส้นขอบ: 1px ทึบ #555; ยุบขอบ: ยุบ) td (จัดแนวตั้ง: ด้านบน; ขยาย: 0px) div (กว้าง: 100px; ความสูง: 100px; พื้นหลัง: สีแดง)</สไตล์> <รูปแบบตาราง = "พื้นหลัง: มะนาว" > <ตร > <td style = "ช่องว่างภายใน: 5px" > <สไตล์ div = "ระยะขอบ: 0px" ></div> </td> </tr> </ตาราง> <รูปแบบโต๊ะ = "พื้นหลัง: ฟ้า; ขอบบน: 5px"> <ตร > <ทีดี ></td> </tr> </ตาราง> </ตัว> </html> Padding-ด้านบนฉันหวังว่าคุณจะคุ้นเคยกับโครงสร้างของบล็อกแล้ว ถ้าไม่เช่นนั้นจะแสดงด้านล่าง
โครงสร้างบล็อก
ดังนั้น. คุณคงทราบแล้วว่าระยะขอบและระยะขอบของบล็อกแสดงด้วยคุณสมบัติการเติมและระยะขอบตามลำดับ และในบทความก่อนหน้านี้เราได้กล่าวถึงหัวข้อนี้แล้วบางส่วน ในหน้านี้ เราจะมาดูฟิลด์ต่างๆ อย่างละเอียดยิ่งขึ้น ( การขยายความ) และช่องว่างภายใน ( ระยะขอบ ).
คุณสมบัติระยะขอบและช่องว่างภายในมีความคล้ายคลึงกันมากและทำหน้าที่คล้ายกัน ซึ่งเป็นเหตุผลว่าทำไมจึงมักสับสน แต่แน่นอนว่าคุณไม่ควรทำสิ่งนี้ เนื่องจากระยะขอบและการเยื้องเป็นสิ่งที่แตกต่างกันโดยสิ้นเชิง อย่างไรก็ตาม จะเห็นได้ชัดเจนจากรูปภาพ เนื่องจากไม่ได้แสดงไว้ที่นี่โดยบังเอิญ
ดังนั้น. ระยะขอบจะถูกระบุโดยคุณสมบัติการเติม นี่คือระยะทางภายในจากขอบเขตของบล็อกถึงเนื้อหา
คุณสมบัตินี้ใช้กับองค์ประกอบทั้งหมด
ระยะทางระบุไว้ในหน่วยความยาว CSS, % หรือ ( ค่าเริ่มต้น
คุณสมบัติการเติมนั้นเป็นสากลเพราะมันตั้งค่าระยะขอบจากเส้นขอบขององค์ประกอบเป็นเนื้อหาสำหรับทุกด้าน ดังนั้นการรวมคุณสมบัติ padding-top , padding-right , padding-bottom และ padding-left ซึ่งกำหนดความกว้างของ ระยะขอบสำหรับองค์ประกอบแต่ละด้านแยกกัน
การเยื้องถูกตั้งค่าโดยใช้คุณสมบัติระยะขอบ ซึ่งกำหนดระยะห่างจากขอบเขตของบล็อกไปยังองค์ประกอบที่ใกล้ที่สุดหรือถึงขอบของหน้าต่างเบราว์เซอร์
คุณสมบัติมาร์จิ้นยังใช้กับองค์ประกอบทั้งหมดด้วย
ช่องว่างภายในยังระบุในหน่วยความยาว CSS, % หรือ ( ค่าเริ่มต้น) ถูกตรวจพบโดยอัตโนมัติโดยเบราว์เซอร์
คุณสมบัติ Margin นั้นเป็นสากล เนื่องจากมันกำหนดจำนวนการเยื้องจากเส้นขอบขององค์ประกอบสำหรับทุกด้าน ดังนั้นการรวมคุณสมบัติ Margin-top , Margin-right , Margin-bottom และ Margin-left ซึ่งกำหนดความกว้างของการเยื้อง จากเส้นขอบของแต่ละองค์ประกอบแยกกัน
และอีกอย่างหนึ่ง: การเยื้อง ( ระยะขอบ) ตั้งอยู่นอกบล็อก ในขณะที่ระยะขอบ ( การขยายความ) ข้างใน ดังนั้นพื้นหลังของบล็อกหรือมัน ภาพพื้นหลังใช้เฉพาะกับระยะขอบและการเยื้องจะโปร่งใสเสมอหรือมีพื้นหลังของระยะหลัก ( ผู้ปกครอง) บล็อกหรือพื้นหลังหน้า
ข้อมูลโค้ด:
; "> |
ตารางนี้อยู่ภายในคอนเทนเนอร์ที่มีเส้นขอบสีแดงและพื้นหลังสีน้ำเงิน ความกว้างของช่องว่างจากขอบตารางถึงขอบสีแดงของคอนเทนเนอร์คือ 10 พิกเซล เซลล์ด้านซ้ายมีรูปภาพ ระยะขอบจากรูปภาพถึงเส้นขอบเซลล์คือ 25 พิกเซล ระยะขอบของเซลล์ด้านขวาคือ 10 พิกเซล! |
อัปเดตครั้งล่าสุด: 04/08/2016
ช่องข้อความบรรทัดเดียวถูกสร้างขึ้นโดยใช้องค์ประกอบอินพุตเมื่อแอตทริบิวต์ประเภทถูกตั้งค่าเป็นข้อความ:
คุณสามารถปรับแต่งช่องข้อความได้โดยใช้แอตทริบิวต์เพิ่มเติมจำนวนหนึ่ง:
dirname: กำหนดทิศทางของข้อความ
maxlength : จำนวนอักขระสูงสุดที่อนุญาตในช่องข้อความ
pattern : กำหนดรูปแบบที่ข้อความอินพุตควรตรงกัน
placeholder : ตั้งค่าข้อความที่แสดงโดยค่าเริ่มต้นในกล่องข้อความ
อ่านอย่างเดียว : ทำให้ช่องข้อความเป็นแบบอ่านอย่างเดียว
จำเป็น : ระบุว่าช่องข้อความจะต้องมีค่า
size : กำหนดความกว้าง ช่องข้อความในตัวอักษรที่มองเห็นได้
value : ตั้งค่าเริ่มต้นในช่องข้อความ
ลองใช้คุณสมบัติบางอย่าง:
ในตัวอย่างนี้ กล่องข้อความที่สองจะตั้งค่าแอตทริบิวต์ความยาวสูงสุดและขนาดทันที ในกรณีนี้ ขนาด - นั่นคือจำนวนอักขระที่พอดีกับพื้นที่ที่มองเห็นได้ของฟิลด์นั้นมากกว่าจำนวนอักขระที่อนุญาต อย่างไรก็ตาม เรายังไม่สามารถป้อนอักขระเกินความยาวสูงสุดได้
ในกรณีนี้ สิ่งสำคัญคือต้องแยกแยะระหว่างแอตทริบิวต์ค่าและตัวยึดตำแหน่ง แม้ว่าทั้งสองจะตั้งค่าข้อความที่มองเห็นได้ในฟิลด์ก็ตาม อย่างไรก็ตาม ตัวยึดตำแหน่งจะตั้งค่าคำใบ้หรือแจ้งให้ป้อนข้อมูล ดังนั้นจึงมักจะเป็นสีเทา ในขณะที่ค่าแสดงถึงข้อความเริ่มต้นที่ป้อนลงในฟิลด์:
คุณลักษณะแบบอ่านอย่างเดียวและปิดใช้งานทำให้ช่องข้อความไม่พร้อมใช้งาน แต่มีเอฟเฟกต์ภาพที่แตกต่างออกไป ในกรณีที่ปิดใช้งาน ช่องข้อความจะเป็นสีเทา:
ในบรรดาคุณลักษณะของช่องข้อความ เราควรสังเกตคุณลักษณะเช่น list ด้วย มีการอ้างอิงถึงองค์ประกอบดาตาลิสต์ซึ่งกำหนดชุดของค่าที่ปรากฏเป็นคำแนะนำเครื่องมือเมื่อป้อนลงในช่องข้อความ ตัวอย่างเช่น:
แอตทริบิวต์รายการของฟิลด์ข้อความชี้ไปที่รหัสขององค์ประกอบดาต้าลิสต์ องค์ประกอบดาตาลิสต์นั้นกำหนดองค์ประกอบของรายการโดยใช้องค์ประกอบตัวเลือกที่ซ้อนกัน และเมื่อคุณพิมพ์ในช่องข้อความ รายการนี้จะแสดงเป็นคำแนะนำเครื่องมือ
ช่องค้นหา
หากต้องการสร้างช่องค้นหา ให้ใช้องค์ประกอบอินพุตพร้อมกับแอตทริบิวต์ type="search" อย่างเป็นทางการ มันเป็นช่องข้อความธรรมดา:
ช่องรหัสผ่าน
หากต้องการป้อนรหัสผ่าน ให้ใช้องค์ประกอบอินพุตพร้อมกับแอตทริบิวต์ type="password" ของเขา คุณสมบัติที่โดดเด่นคืออักขระที่ป้อนถูกปกปิดด้วยจุด:
ในบทความนี้ฉันอยากจะบอกวิธีการวางอย่างถูกต้อง สาขา(ช่องว่างภายใน) และ การเยื้อง(ระยะขอบ) ใน CSS
ก่อนอื่น เรามาจำคำจำกัดความของระยะขอบและระยะห่างจากขอบตามข้อกำหนดของ W3C กัน ในโมเดลกล่อง ระยะขอบคือระยะห่างระหว่างเนื้อหาและเส้นขอบของกล่อง และช่องว่างภายในคือระยะห่างระหว่างเส้นขอบของบล็อกและเส้นขอบขององค์ประกอบที่อยู่ติดกันหรือองค์ประกอบหลัก
ดังนั้น หากไม่ได้ระบุเส้นขอบและพื้นหลังขององค์ประกอบ ก็ไม่มีความแตกต่าง ให้ใช้คุณสมบัติการเติมหรือระยะขอบเพื่อตั้งค่าการเยื้อง แต่ต้องไม่ระบุความกว้าง (ความกว้าง) และความสูง (ความสูง) ขององค์ประกอบ และอัลกอริธึมสำหรับการคำนวณขนาดเนื้อหาโดยใช้คุณสมบัติการกำหนดขนาดกล่อง
ไม่ว่าในกรณีใด โปรดจำไว้ว่าระยะขอบอาจรวมหรือไม่รวมไว้ในความกว้างหรือความสูงขององค์ประกอบ การเยื้องจะถูกตั้งค่าไว้นอกองค์ประกอบเสมอ
ตอนนี้เรามาดูวิธีวางระยะขอบและช่องว่างระหว่างองค์ประกอบอย่างถูกต้อง ลองใช้บล็อกต่อไปนี้เป็นตัวอย่าง
นี่คือบล็อกข่าว ประกอบด้วยส่วนหัว รายการข่าว และลิงก์ “ข่าวอื่นๆ” ตั้งชื่อคลาสต่อไปนี้ให้พวกเขา: news__title, news__list และ news__more-link
ข่าว
ข่าวอื่นๆ
เนื่องจากแต่ละองค์ประกอบเหล่านี้มีระยะขอบซ้ายและขวาเท่ากัน จึงควรตั้งค่าระยะขอบให้กับบล็อกหลัก แทนที่จะตั้งค่าระยะขอบซ้ายและขวาสำหรับแต่ละองค์ประกอบแยกกัน
ข่าว ( การขยาย: 20px 25px; )
ดังนั้น หากคุณต้องการเปลี่ยนค่าของฟิลด์ทางด้านขวาและซ้าย จะต้องดำเนินการนี้ ในที่เดียว. และเมื่อเพิ่มองค์ประกอบใหม่ภายในบล็อกข่าว ก็จะมีการเยื้องที่จำเป็นด้านซ้ายและขวาอยู่แล้ว
มันมักจะเกิดขึ้นที่องค์ประกอบทั้งหมดภายในบล็อกมีช่องว่างภายในด้านซ้ายและด้านขวา ยกเว้นองค์ประกอบหนึ่งซึ่งไม่ควรมีช่องว่างภายในเลย เช่น เนื่องจากพื้นหลัง ในกรณีนี้ คุณสามารถตั้งค่าระยะห่างเชิงลบสำหรับองค์ประกอบได้ จากนั้นคุณจะไม่ต้องลบฟิลด์ภายในบล็อกสำหรับองค์ประกอบอื่นๆ
ตอนนี้คุณต้องตั้งค่าระยะขอบแนวตั้งระหว่างองค์ประกอบต่างๆ ในการดำเนินการนี้ คุณจะต้องพิจารณาว่าองค์ประกอบใดคือองค์ประกอบใด ภาคบังคับ. แน่นอนว่าบล็อกข่าวจะเกิดขึ้นไม่ได้หากไม่มีรายการข่าว ขณะเดียวกัน อาจไม่มีลิงก์ "ข่าวอื่นๆ" ก็สามารถลบชื่อออกได้ เช่น เมื่อการออกแบบมีการเปลี่ยนแปลง
เมื่อคำนึงถึงสิ่งนี้ เราจึงตั้งค่าการเยื้องที่ด้านล่างสำหรับชื่อเรื่อง และการเยื้องที่ด้านบนสำหรับลิงก์ "ข่าวอื่นๆ"
News__title ( ขอบด้านล่าง: 10px; ) .news__more-link ( ขอบด้านบน: 12px; )
เราสามารถบรรลุผลภายนอกที่เหมือนกันได้โดยการเพิ่มช่องว่างที่ด้านบนและด้านล่างสำหรับรายการข่าว
รายการข่าว__ ( ระยะขอบ: 10px 0 12px 0; )
ตอนนี้คุณต้องตั้งค่าการเยื้องระหว่างรายการข่าวแต่ละรายการ ขอย้ำอีกครั้งว่าจำนวนรายการข่าวอาจแตกต่างกันและอาจมีเพียงรายการข่าวเดียวเท่านั้น
คุณสามารถตั้งค่าการเยื้องด้านบนสำหรับแต่ละข่าวยกเว้นข่าวแรก หรือเยื้องด้านล่างสำหรับแต่ละข่าวยกเว้นข่าวสุดท้าย ตัวเลือกแรกจะดีกว่าเนื่องจากตัวเลือกหลอก:first-child ถูกเพิ่มในข้อกำหนด CSS 2.1 และมีการรองรับที่กว้างกว่า ซึ่งแตกต่างจากตัวเลือกหลอก:last-child ซึ่งเพิ่มในข้อกำหนด CSS 3.0 เท่านั้น
News__list-item ( ขอบด้านบน: 18px; ) .news__list-item:first-child ( ขอบด้านบน: 0; )
ดังนั้นการวางตำแหน่งระยะขอบและการเยื้องที่ถูกต้องทำให้คุณสามารถเปลี่ยนแปลงได้อย่างยืดหยุ่น รูปร่างบล็อกใด ๆ โดยไม่ทำการเปลี่ยนแปลงสไตล์และไม่มีการละเมิดการออกแบบ สิ่งที่สำคัญที่สุดคือการพิจารณาว่าองค์ประกอบบล็อกใดเป็นองค์ประกอบหลัก ( บังคับ) และอันไหน ไม่จำเป็น.
บางครั้งเราไม่สามารถพึ่งพาองค์ประกอบที่จำเป็นได้ ตัวอย่างเช่น เรามีหน้าต่างป๊อปอัปซึ่งสามารถแสดงชื่อและข้อความบางส่วนได้ นอกจากนี้ในบางกรณีอาจไม่มีข้อความและในบางกรณีอาจไม่มีชื่อเรื่อง นั่นคือทั้งสององค์ประกอบเป็นทางเลือก
ในกรณีนี้คุณสามารถใช้ วิธีถัดไปการมอบหมายการเยื้อง
Popup__header + .popup__text ( ขอบด้านบน: 15px; )
จากนั้นการเยื้องจะปรากฏขึ้นหากใช้ทั้งสององค์ประกอบเท่านั้น กรณีแสดงเฉพาะชื่อเรื่องหรือเฉพาะข้อความจะไม่มีการเยื้องเพิ่มเติม
การยุบระยะขอบแนวตั้ง
ความแตกต่างอีกอย่างหนึ่งที่ทุกคนไม่รู้นั้นเกี่ยวข้องกับช่องว่างแนวตั้งระหว่างบล็อกที่อยู่ติดกัน คำจำกัดความของการเยื้องที่ฉันให้ไว้ข้างต้นบอกว่าการเยื้องคือระยะห่างระหว่าง เส้นขอบบล็อกปัจจุบันและบล็อกใกล้เคียง ดังนั้น หากเราวางบล็อกสองบล็อกไว้ด้านล่างซึ่งกันและกัน และให้บล็อกหนึ่งมีระยะขอบด้านล่าง 30px และอีกบล็อกหนึ่งมีระยะขอบบน 20px ระยะขอบระหว่างบล็อกเหล่านั้นจะไม่ใช่ 50px แต่เป็น 30px
นั่นคือ การเยื้องจะทับซ้อนกัน และการเยื้องระหว่างบล็อกจะเท่ากับการเยื้องที่ใหญ่ที่สุด ไม่ใช่ผลรวมของการเยื้อง เอฟเฟกต์นี้เรียกอีกอย่างว่า "การล่มสลาย"
โปรดทราบว่าการเยื้องแนวนอนไม่เหมือนแนวตั้งจะไม่ "ยุบ" แต่จะถูกรวมเข้าด้วยกัน ฟิลด์ (ช่องว่างภายใน) จะถูกรวมเข้าด้วยกันด้วย
เมื่อทราบถึงการ "ยุบ" ของการเยื้อง เราสามารถใช้คุณลักษณะนี้เพื่อประโยชน์ของเราได้ ตัวอย่างเช่น หากเราต้องการเยื้องส่วนหัวและข้อความภายในบทความ สำหรับส่วนหัวระดับแรก เราจะตั้งค่าการเยื้องด้านล่างเป็น 20px และสำหรับส่วนหัวระดับที่สอง การเยื้องด้านบนคือ 20px และด้านล่างคือ 10px และสำหรับ ทุกย่อหน้าเราตั้งค่าการเยื้องด้านบนเป็น 10px
H1 ( ขอบล่าง: 24px; ) h2 ( ขอบบน: 24px; ขอบล่าง: 12px; ) p ( ขอบบน: 12px; )
ตอนนี้สามารถวางส่วนหัว h2 หลังส่วนหัว h1 หรือหลังย่อหน้าได้ ไม่ว่าในกรณีใด ขอบด้านบนจะต้องไม่เกิน 24px
กฎทั่วไป
โดยสรุป ฉันต้องการแสดงรายการกฎที่ฉันปฏิบัติตามเมื่อจัดเรียงระยะขอบและการเยื้อง
- ถ้า องค์ประกอบที่อยู่ติดกันมีการเยื้องเหมือนกัน ควรตั้งค่าเป็นคอนเทนเนอร์หลักแทนที่จะเป็นองค์ประกอบ
- เมื่อตั้งค่าการเยื้องระหว่างองค์ประกอบ คุณควรพิจารณาว่าองค์ประกอบนั้นจำเป็นหรือไม่จำเป็น
- สำหรับรายการองค์ประกอบที่คล้ายกัน อย่าลืมว่าจำนวนองค์ประกอบอาจแตกต่างกันไป
- โปรดระวังช่องว่างภายในแนวตั้งและใช้คุณลักษณะนี้ซึ่งจะเป็นประโยชน์ต่อคุณ
แท็ก: เพิ่มแท็ก