สมัครเรียนโทร. 085-350-7540 , 084-88-00-255 , ntprintf@gmail.com

CSS

CSS - CSS คืออะไร CSS - การเพิ่ม CSS ใน HTML CSS - Syntax ของ CSS CSS - Selectors ใน CSS CSS - Specificity ใน CSS CSS - การใช้ Class และ ID Selectors CSS - การใช้ Element Selectors CSS - Pseudo-classes CSS - Pseudo-elements CSS - การจัดการ Text และ Font CSS - การใช้ Color ใน CSS CSS - Backgrounds และ Background Properties CSS - การใช้ Gradients ใน CSS CSS - Borders และ Border Properties CSS - Margins ใน CSS CSS - Paddings ใน CSS CSS - การใช้ Box Model CSS - การใช้ Display Property CSS - การใช้ Visibility Property CSS - การใช้ Positioning (Static, Relative, Absolute, Fixed, Sticky) CSS - Flexbox คืออะไร CSS - การใช้ Flexbox ในการจัด Layout CSS - Grid คืออะไร CSS - การใช้ CSS Grid Layout CSS - การใช้ Overflow Property CSS - การจัดการ Media Queries สำหรับ Responsive Design CSS - การใช้ Viewport Units CSS - การใช้ Percentage Units CSS - การใช้ Rem และ Em Units CSS - การใช้ Px, Pt, และ Units อื่น ๆ CSS - การใช้ Float Property CSS - การใช้ Clear Property CSS - การจัดการ Z-index CSS - การใช้ Opacity ใน CSS CSS - การใช้ Visibility และ Hidden Element CSS - การใช้ Max-width และ Min-width CSS - การใช้ Max-height และ Min-height CSS - การทำ Responsive Images CSS - การใช้ Object-fit สำหรับการจัดการรูปภาพ CSS - การใช้ Box-shadow CSS - การใช้ Text-shadow CSS - การจัดการ Lists และ List-style CSS - การใช้ Table Properties CSS - การใช้ Cursor Property CSS - การจัดการ Overflow กับ Scrollbars CSS - การใช้ Media Queries สำหรับ Breakpoints CSS - การใช้ Custom Properties (CSS Variables) CSS - การใช้ Calc() Function ใน CSS CSS - การทำ Hover Effects CSS - การทำ Focus Effects CSS - การทำ Active Effects CSS - การใช้ Transitions CSS - การใช้ Animations CSS - การใช้ Keyframes ใน CSS Animation CSS - การใช้ Transform Properties (Rotate, Scale, Skew, Translate) CSS - การใช้ Clip-path สำหรับการสร้างรูปร่าง CSS - การทำ Image Sprites CSS - การใช้ Content Property CSS - การจัดการ User-select Property CSS - การใช้ Word-wrap และ Overflow-wrap CSS - การใช้ Text-align CSS - การใช้ Vertical-align CSS - การจัดการ Line-height CSS - การใช้ Letter-spacing และ Word-spacing CSS - การใช้ White-space Property CSS - การใช้ Text-transform CSS - การใช้ Text-decoration CSS - การใช้ Box-sizing Property CSS - การใช้ Filter Effects CSS - การใช้ Blend Modes CSS - การใช้ Background-attachment และ Background-blend-mode CSS - การใช้ Object-position สำหรับการจัดวางรูปภาพ CSS - การทำ CSS Reset CSS - การใช้ Normalize.css CSS - การใช้ Web Safe Fonts CSS - การใช้ Google Fonts CSS - การจัดการ Font-face และ Custom Fonts CSS - การทำ Responsive Typography CSS - การใช้ Media Queries สำหรับ Typography CSS - การใช้ CSS Units สำหรับ Typography CSS - การใช้ Viewport Units ใน Typography CSS - การใช้ Letterpress Effect CSS - การทำ Text Gradients CSS - การทำ CSS Shapes CSS - การทำ Circular Images CSS - การจัดการ Aspect Ratio ของ Elements CSS - การใช้ Pointer Events Property CSS - การทำ CSS Buttons CSS - การใช้ CSS Variables สำหรับ Themes CSS - การใช้ CSS สำหรับ Web Accessibility CSS - การทำ Responsive Navigation Bars CSS - การใช้ CSS สำหรับ Form Styling CSS - การใช้ Focus-within สำหรับ Form Elements CSS - การจัดการ CSS Grid กับ Flexbox ใน Layout CSS - การใช้ Grid Template Areas CSS - การใช้ CSS Subgrid CSS - การใช้ Custom Scrollbars CSS - การทำ Dark Mode ด้วย CSS CSS - การทำ CSS Masonry Layout CSS - การใช้ Modern CSS Tools (เช่น PostCSS, CSS-in-JS) Box Model ใน CSS - Box Model คืออะไร Box Model ใน CSS - องค์ประกอบหลักของ Box Model (Content, Padding, Border, Margin) Box Model ใน CSS - Content Box คืออะไร Box Model ใน CSS - การกำหนดขนาดของ Content Box Box Model ใน CSS - Padding คืออะไร Box Model ใน CSS - การใช้ Padding ใน Box Model Box Model ใน CSS - วิธีการกำหนด Padding แบบเฉพาะเจาะจง (Top, Right, Bottom, Left) Box Model ใน CSS - การใช้ Shorthand สำหรับ Padding Box Model ใน CSS - Border คืออะไร Box Model ใน CSS - การกำหนด Border Width, Style, และ Color Box Model ใน CSS - Border-radius และการสร้างมุมโค้ง Box Model ใน CSS - การใช้ Border Shorthand Box Model ใน CSS - Margin คืออะไร Box Model ใน CSS - การกำหนด Margin แบบเฉพาะเจาะจง (Top, Right, Bottom, Left) Box Model ใน CSS - การใช้ Shorthand สำหรับ Margin Box Model ใน CSS - การจัดการ Margin Collapse Box Model ใน CSS - Difference ระหว่าง Margin กับ Padding Box Model ใน CSS - การใช้ Auto Margin ในการจัดตำแหน่ง Element Box Model ใน CSS - Box-sizing Property คืออะไร Box Model ใน CSS - Difference ระหว่าง Content-box กับ Border-box Box Model ใน CSS - การใช้ Box-sizing: Border-box เพื่อการจัดการ Layout Box Model ใน CSS - การทำความเข้าใจกับ Total Width และ Height ใน Box Model Box Model ใน CSS - การคำนวณขนาดของ Box Model โดยรวม Box Model ใน CSS - การใช้ Outline Property ใน Box Model Box Model ใน CSS - Difference ระหว่าง Outline กับ Border Box Model ใน CSS - การทำความเข้าใจกับ Visual Formatting Model Box Model ใน CSS - การใช้ Box-shadow ใน Box Model Box Model ใน CSS - การจัดการ Overflow ใน Box Model Box Model ใน CSS - การใช้ Box-sizing ในการทำ Responsive Design Box Model ใน CSS - การจัดการ Box Model บน Elements ที่มีการเปลี่ยนแปลงขนาด Flexbox ใน CSS - Flexbox คืออะไร Flexbox ใน CSS - การประกาศ Flex Container ด้วย display: flex Flexbox ใน CSS - Flex Container กับ Flex Items คืออะไร Flexbox ใน CSS - Main Axis และ Cross Axis ใน Flexbox Flexbox ใน CSS - การใช้ flex-direction (row, row-reverse, column, column-reverse) Flexbox ใน CSS - การใช้ justify-content เพื่อจัดเรียง Flex Items ตาม Main Axis Flexbox ใน CSS - การใช้ align-items เพื่อจัดเรียง Flex Items ตาม Cross Axis Flexbox ใน CSS - การใช้ align-self ในการจัดการ Flex Items แต่ละตัว Flexbox ใน CSS - การใช้ flex-wrap สำหรับจัดการ Flex Items เมื่อพื้นที่ไม่พอ Flexbox ใน CSS - การใช้ align-content เมื่อมี Flex Items หลายบรรทัด Flexbox ใน CSS - การใช้ flex-grow เพื่อกำหนดการขยายของ Flex Items Flexbox ใน CSS - การใช้ flex-shrink เพื่อกำหนดการย่อของ Flex Items Flexbox ใน CSS - การใช้ flex-basis เพื่อกำหนดขนาดเริ่มต้นของ Flex Items Flexbox ใน CSS - การใช้ Shorthand flex (flex-grow, flex-shrink, flex-basis) Flexbox ใน CSS - การใช้ order เพื่อจัดเรียง Flex Items Flexbox ใน CSS - การทำ Responsive Layout ด้วย Flexbox Flexbox ใน CSS - การใช้ Flexbox ร่วมกับ Media Queries Flexbox ใน CSS - การจัดการ Space Around และ Space Between ด้วย justify-content Flexbox ใน CSS - Difference ระหว่าง justify-content กับ align-items Flexbox ใน CSS - Flexbox กับการสร้าง Layout แบบเทียบกับ Grid Layout

CSS

CSS - การใช้ CSS Subgrid

 

เมื่อพูดถึงการจัดเลย์เอาท์ (layout) ของหน้าเว็บในปัจจุบัน CSS Grid System กลายเป็นเครื่องมือที่ขาดไม่ได้เลยสำหรับนักพัฒนาเว็บที่ต้องการการจัดระเบียบเนื้อหาในลักษณะที่เป็นระเบียบและสวยงาม CSS Grid เปิดโลกทัศน์ใหม่ให้กับการพัฒนาเว็บด้วยความสามารถในการจัดเลย์เอาท์ที่มีประสิทธิภาพ, แต่นักพัฒนาหลายคนอาจยังไม่คุ้นเคยกับคุณสมบัติใหม่ที่เรียกว่า “CSS Subgrid” ซึ่งเป็นเทคนิคเพิ่มเติมที่สามารถเสริมศักยภาพการจัดเลย์เอาท์ได้มากยิ่งขึ้น

 

CSS Grid และ Subgrid คืออะไร?

ก่อนที่จะเข้าไปในรายละเอียดของ CSS Subgrid เราควรเริ่มด้วยพื้นฐานของ CSS Grid ซึ่งเป็นระบบจัดเลย์เอาท์สองมิติเพื่อใช้ในเว็บ โดย Grid จะจัดลำดับทุกองค์ประกอบในหน้าเว็บให้อยู่ในรูปแบบตาราง ซึ่งประกอบไปด้วย 'grid container' และ 'grid items'

CSS Subgrid เป็นคุณสมบัติที่ถูกเพิ่มเข้ามาใน CSS Grid ที่ช่วยให้การจัดการเลย์เอาท์ที่มีโครงสร้างซ้อนซับได้ง่ายขึ้น ปกติแล้ว ถ้าเราต้องการให้องค์ประกอบย่อย (child elements) อยู่ในลำดับที่ตรงตามแถวหรือคอลัมน์ของแม่ (parent element) เราจำเป็นต้องเขียนโค้ดซับซ้อนขึ้น แต่ด้วย Subgrid เราสามารถให้ child grid ใช้โครงสร้างของ parent grid ได้ ซึ่งทำให้ง่ายต่อการจัดการและประหยัดเวลา

 

ข้อดีของการใช้ CSS Subgrid

1. ความสม่ำเสมอในการออกแบบ: Subgrid ทำให้เราสามารถตั้งค่า child elements ให้มีขนาดแถวหรือคอลัมน์ที่สอดคล้องกับ parent elements โดยไม่ต้องคำนวณใหม่

2. โครงสร้างเลย์เอาท์ที่ชัดเจน: ช่วยให้นักพัฒนาสามารถเจาะจงเส้นกริดที่ใช้ร่วมกันหลายระดับได้อย่างแม่นยำ ทำให้การออกแบบ responsive ทำได้ง่ายขึ้น

3. การเปลี่ยนแปลงที่ยืดหยุ่น: สามารถปรับปิงเปลี่ยนแปลงเลย์เอาท์ได้รวดเร็วเพราะไม่ต้องปรับที่ child elements ทุกครั้งที่ parent elements เปลี่ยนแปลง

 

ตัวอย่างการใช้งาน CSS Subgrid

เริ่มต้นด้วยการสร้าง parent grid ก่อน โดยกำหนดโครงสร้าง Grid:


.parent {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px;
}

ในที่นี้เรามี parent grid ที่มี 3 คอลัมน์ ถัดไปเราสร้าง child grid โดยใช้ Subgrid:


.child {
  display: grid;
  grid-template-columns: subgrid; /* ใช้โครงสร้างคอลัมน์จาก parent */
  gap: 5px;
}

ด้วยการใช้ `grid-template-columns: subgrid;` child elements จะสอดคล้องกับคอลัมน์ใน parent โดยอัตโนมัติ ทำให้การจัดการเนื้อหาภายใน child ทำได้ง่ายและสวยงามขึ้น

 

Use Case: การสร้างเว็บไซต์ที่มีหลายเลเยอร์

CSS Subgrid เหมาะกับการออกแบบเว็บไซต์ที่มีหลายเลเยอร์ที่ซับซ้อน เช่น เว็บไซต์ข่าวหรือบล็อกที่มีทั้งเนื้อหา โฆษณา และ sidebar เราต้องการให้ทุกองค์ประกอบย่อยสามารถขยายหรือยุบหดตามขนาดของแม่ได้อย่างเรียบร้อย

ลองพิจารณาตัวอย่างนี้ที่แสดงความยืดหยุ่นของ CSS Subgrid:


<div class="parent">
  <div class="header child">Header</div>
  <div class="main child">
    <div class="main-content">Main Content</div>
    <div class="sidebar">Sidebar</div>
  </div>
  <div class="footer child">Footer</div>
</div>

<style>
.parent {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: auto;
  gap: 10px;
}

.child {
  display: grid;
  grid-template-columns: subgrid;
}

.main {
  grid-template-columns: 2fr 1fr; /* ใช้รูปแบบเฉพาะสำหรับ content และ sidebar */
}
</style>

ในตัวอย่างนี้, เราได้สร้าง grid หลัก (parent) และใช้ subgrid เพื่อควบคุมโครงสร้างของ child elements เช่น header, main, และ footer ซึ่งใช้โครงสร้าง grid เดียวกับ parent ทำให้การออกแบบง่ายต่อการแก้ไขและขยาย

 

การตรวจสอบการรองรับเบราว์เซอร์

ในขณะนี้ CSS Subgrid ยังไม่ได้รับการสนับสนุนโดยเบราว์เซอร์ทุกชนิด ควรตรวจสอบ compatibility และทำการทดสอบเพื่อความแน่ใจ อย่างไรก็ตามความนิยมของ CSS Subgrid กำลังเพิ่มขึ้นเรื่อยๆ และคาดว่าจะได้รับการสนับสนุนที่มากขึ้นในอนาคต

 

สรุป

CSS Subgrid เป็นเครื่องมือที่มีประสิทธิภาพที่จะช่วยทำให้การออกแบบเว็บที่มีหลายเลเยอร์ทำได้อย่างมีประสิทธิภาพและยืดหยุ่น แม้ว่ามันยังไม่ได้รับการสนับสนุนจากทุกเบราว์เซอร์แต่มันเป็นการเสริมฟังก์ชันที่ยอดเยี่ยมสำหรับ CSS Grid และเหมาะสมมากสำหรับนักพัฒนาเว็บที่ต้องการการควบคุมเลย์เอาท์อย่างสมบูรณ์

หากคุณต้องการที่จะเชี่ยวชาญใน CSS Grid และเข้าใจการใช้งาน CSS Subgrid อย่างลึกซึ้ง EPT (Expert-Programming-Tutor) สามารถช่วยจัดการการเรียนรู้ให้คุณได้û

 

 

หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง

หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/


Tag ที่น่าสนใจ: java c# vb.net python c c++ machine_learning web database oop cloud aws ios android


บทความนี้อาจจะมีที่ผิด กรุณาตรวจสอบก่อนใช้

หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor

ไม่อยากอ่าน Tutorial อยากมาเรียนเลยทำอย่างไร?

สมัครเรียน ONLINE ได้ทันทีที่ https://elearn.expert-programming-tutor.com

หรือติดต่อ

085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM

แผนที่ ที่ตั้งของอาคารของเรา

แผนผังการเรียนเขียนโปรแกรม

Link อื่นๆ

Allow sites to save and read cookie data.
Cookies are small pieces of data created by sites you visit. They make your online experience easier by saving browsing information. We use cookies to improve your experience on our website. By browsing this website, you agree to our use of cookies.

Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com

ติดต่อเราได้ที่

085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
แผนที่ ที่ตั้งของอาคารของเรา