/Projects
CSS

CSS: สี ขนาด และการจัดวาง

ใช้ใน Challenge Day 1

CSS (Cascading Style Sheets) บอกเบราว์เซอร์ว่าแต่ละส่วนของ HTML หน้าตาเป็นอย่างไร: สี ฟอนต์ ระยะห่าง และการจัดเรียงบนจอทุกขนาด

At a glance

ItemDetails
ไฟล์style.css เชื่อมกับ HTML ด้วย <link rel="stylesheet" href="style.css" />
หน่วยพื้นฐานกฎ (rule): selector + property: value
จัดวางFlexbox และ Grid
รองรับมือถือ@media (responsive)
ลองแก้สดInspect → แท็บ Styles แก้ค่าแล้วเห็นผลทันที

Syntax

กฎ 1 ข้อ: selector เลือกว่าจะแต่งอะไร แล้วใส่ property: value ในปีกกา

/* selector { property: value; } */
body {
  font-family: system-ui, sans-serif;
  margin: 0;
  background: #fafafa;
}
Selectorเลือกอะไรตัวอย่าง
pทุกแท็ก <p>p { color: gray; }
.cardทุก element ที่มี class="card".card { padding: 16px; }
#nameelement ที่มี id="name" (มีได้ตัวเดียว)#name { color: red; }
header imgimg ที่อยู่ใน headerheader img { width: 96px; }
a:hoverตอนเอาเมาส์ชี้a:hover { text-decoration: underline; }

Box model

ทุก element คือกล่อง: content อยู่ในสุด ล้อมด้วย padding (ระยะใน) border (เส้นขอบ) และ margin (ระยะนอก)

.card {
  padding: 16px;              /* ระยะจากขอบถึงเนื้อหา */
  border: 1px solid #eaeaea;  /* เส้นขอบ */
  border-radius: 12px;        /* มุมโค้ง */
  margin-bottom: 24px;        /* ระยะห่างจากกล่องถัดไป */
}

Layout: Flexbox

Flexbox จัดของในกล่องให้เรียงเป็นแถวหรือคอลัมน์ และจัดกึ่งกลางได้ง่าย

header {
  display: flex;
  flex-direction: column;   /* row = เรียงแนวนอน, column = แนวตั้ง */
  align-items: center;      /* จัดกึ่งกลางแกนขวาง */
  justify-content: center;  /* จัดกึ่งกลางแกนหลัก */
  gap: 12px;                /* ระยะห่างระหว่างลูก */
}

Responsive

เริ่มเขียนสำหรับจอมือถือก่อน แล้วใช้ @media เปลี่ยนเมื่อจอกว้างขึ้น

.projects { display: grid; gap: 16px; }

@media (min-width: 768px) {
  .projects { grid-template-columns: 1fr 1fr; }  /* จอใหญ่: 2 คอลัมน์ */
}
Propertyใช้ทำอะไร
color / backgroundสีตัวอักษร / สีพื้น
font-size / font-weightขนาด / ความหนาตัวอักษร
width / max-widthความกว้าง / กว้างสุดไม่เกิน
display: gridจัดเป็นตาราง

ฝึกต่อ

เว็บสำหรับลงมือทำ

วิดีโอเรียนเอง

Next steps

  • JavaScript: ทำให้หน้าเว็บตอบสนองการกด
CS ChallengeLast updated Oct 2026