Skip to content

CSS Complete Guide

What is CSS

CSS (Cascading Style Sheets) เป็นภาษาสไตล์ชีตที่ใช้สำหรับการจัดรูปแบบและออกแบบเว็บเพจ ทำงานร่วมกับ HTML เพื่อควบคุมการแสดงผลขององค์ประกอบต่างๆ บนหน้าเว็บ

Quick Started

index.html
html
<!-- External CSS -->
<link rel="stylesheet" href="styles.css">

<!-- Internal CSS -->
<style>
  body { font-family: Arial; }
</style>

<!-- Inline CSS -->
<p style="color: blue;">ข้อความนี้สีน้ำเงิน</p>
styles.css
css
/* เปลี่ยนสีพื้นหลังและฟอนต์ */
body {
  background: #f8f9fa;
  font-family: 'Segoe UI', sans-serif;
}

/* สไตล์ปุ่ม */
.button {
  background: #4285f4;
  color: white;
  padding: 8px 16px;
  border-radius: 4px;
}

Selectors

Selector TypeExampleDescription
developer.mozilla.org faviconElementp { }เลือกทุกแท็ก <p>
developer.mozilla.org faviconClass.class { }เลือก element ที่มี class="class"
developer.mozilla.org faviconID#id { }เลือก element เดียวที่มี id="id"
developer.mozilla.org faviconAttribute[type="text"]เลือก element ที่มี attribute ตรงตามเงื่อนไข
developer.mozilla.org faviconPseudo-classa:hoverเลือก element ในสถานะต่างๆ เช่น hover, focus
developer.mozilla.org faviconPseudo-elementp::first-lineเลือกส่วนย่อยของ element
developer.mozilla.org faviconCombinatordiv pเลือก element ตามความสัมพันธ์
developer.mozilla.org faviconUniversal* { }เลือกทุก element

Values and Units

TypeValuesDescription
developer.mozilla.org faviconAbsolute Unitspx, cm, mm, inหน่วยวัดแบบสัมบูรณ์ (px = 1/96 ของ 1 นิ้ว)
developer.mozilla.org faviconRelative Unitsem, rem, %, vw, vhหน่วยวัดแบบสัมพัทธ์กับองค์ประกอบอื่น
developer.mozilla.org faviconColor ValuesHex (#RRGGBB), RGB (rgb(255,0,0)), RGBA, HSL, ชื่อสีรูปแบบค่าสีต่างๆ

Properties

Layout

PropertyDescriptionExample
developer.mozilla.org favicondisplayกำหนดการแสดงผลblock, inline, flex, grid
developer.mozilla.org faviconpositionกำหนดตำแหน่งstatic, relative, absolute
developer.mozilla.org faviconflex-directionทิศทาง flexrow, column
developer.mozilla.org favicongrid-template-columnsกำหนดคอลัมน์ gridrepeat(3, 1fr)

Display

ValueDescriptionExample
blockใช้พื้นที่เต็มบรรทัดdiv, p
inlineอยู่ในบรรทัดเดียวกับข้อความspan, a
inline-blockผสมระหว่าง inline และ blockbutton
flexจัด layout แบบ flexible box.container { display: flex; }
gridจัด layout แบบ grid.container { display: grid; }
noneซ่อน element.hidden { display: none; }

Box Model

box-model.css
css
.box {
  width: 300px;
  padding: 20px;
  margin: 30px;
  border: 2px solid black;
}

Flexbox

flexbox.css
css
.container {
  display: flex;
  justify-content: center;
  align-items: center;
}

Grid

grid.css
css
.container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

Color

PropertyDescriptionExample
developer.mozilla.org faviconcolorสีข้อความ#000000, red
developer.mozilla.org faviconbackground-colorสีพื้นหลัง#ffffff
developer.mozilla.org faviconborder-colorสีเส้นขอบblue
developer.mozilla.org faviconopacityความโปร่งใส0.5

Color Values

colors.css
css
/* Hex */
color: #4285f4;

/* RGB */
color: rgb(66, 133, 244);

/* RGBA */
background-color: rgba(66, 133, 244, 0.5);

/* HSL */
color: hsl(213, 90%, 61%);

/* Named colors */
border-color: red;

Color Functions

color-functions.css
css
/* Lighten */
background-color: lighten(#4285f4, 20%);

/* Darken */
border-color: darken(#4285f4, 15%);

/* Mix */
color: mix(red, blue, 50%);

Font

PropertyDescriptionExample
developer.mozilla.org faviconfont-familyชนิดตัวอักษรArial, sans-serif
developer.mozilla.org faviconfont-sizeขนาดตัวอักษร16px, 1rem
developer.mozilla.org faviconfont-weightความหนาbold, 700
developer.mozilla.org faviconline-heightระยะห่างบรรทัด1.5, 24px

Font Properties

font.css
css
.text {
  font-family: 'Segoe UI', sans-serif;
  font-size: 1rem;
  font-weight: 600; /* bold */
  font-style: italic;
  line-height: 1.5;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  text-decoration: underline;
}

Google Fonts Example

google-fonts.css
css
/* Import in HTML <head> */
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet">

/* Usage in CSS */
body {
  font-family: 'Roboto', sans-serif;
}

Animation

PropertyDescriptionExample
developer.mozilla.org faviconanimation-nameชื่อ keyframeslidein
developer.mozilla.org faviconanimation-durationระยะเวลา0.3s
developer.mozilla.org faviconanimation-timing-functionการเคลื่อนไหวease-out
developer.mozilla.org faviconanimation-iteration-countจำนวนครั้งinfinite

Keyframes

animation.css
css
@keyframes slidein {
  from { transform: translateX(100%); }
  to { transform: translateX(0); }
}

.element {
  animation: slidein 0.3s ease-out;
}

Animation Properties

animation-props.css
css
.box {
  animation-name: slidein;
  animation-duration: 0.3s;
  animation-timing-function: ease-out;
  animation-delay: 0.2s;
  animation-iteration-count: infinite;
  animation-direction: alternate;
}

Transition

PropertyDescriptionExample
developer.mozilla.org favicontransition-propertyคุณสมบัติall, opacity
developer.mozilla.org favicontransition-durationระยะเวลา0.2s
developer.mozilla.org favicontransition-timing-functionการเปลี่ยนแปลงease-in-out
developer.mozilla.org favicontransition-delayดีเลย์0.1s
transition.css
css
.button {
  transition: all 0.2s ease;
  background: #4285f4;
}

.button:hover {
  background: #34a853;
  transform: scale(1.05);
}

Design System

Responsive Design

Media Queries

responsive.css
css
@media (max-width: 768px) {
  /* Mobile styles */
}

Design Tokens

tokens.css
css
:root {
  /* Colors */
  --primary-500: #4285f4;
  --white: #ffffff;
  
  /* Fonts */
  --font-sans: 'Segoe UI', sans-serif;
  
  /* Spacing */
  --space-md: 1rem;
}

Theme

theme.css
css
:root {
  --primary-color: #4285f4;
  --text-color: #202124;
}

body {
  color: var(--text-color);
}

Last updated: