Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> CSS

CSS Button: คู่มือจัดสไตล์ปุ่ม (Button) แบบครบถ้วน

เมื่อออกแบบเว็บ มักมีปุ่มที่ต้องการลักษณะเฉพาะ เช่น พื้นหลังสีต่างจากองค์ประกอบอื่น เพื่อดึงดูดสายตา

ด้วย CSS สร้าง styled buttons ได้ เปลี่ยนสีพื้นหลัง, สีข้อความ, ขนาดฟอนต์, ขอบ, ความกว้าง/สูง, และอื่นๆ

บทเรียนนี้อธิบายการใช้ CSS properties จัดสไตล์ HTML button พร้อมตัวอย่าง จนจบคุณจะจัดสไตล์ปุ่มอย่างเชี่ยวชาญ

ภาพรวม Button

กำหนด button ใน HTML 2 วิธีหลัก: <button> tag หรือ <input type="button"> ให้ปุ่มแบบเดียวกัน

HTML button ไม่มีสไตล์ (default):

CSS Button: คู่มือจัดสไตล์ปุ่ม (Button) แบบครบถ้วน
ปุ่ม HTML default (plain)
<button>Click me</button>

ใช้ CSS จัดสไตล์ (customize ลักษณะ) บทความนี้ครอบคลุม:

  • เปลี่ยนสีพื้นหลัง (background-color)
  • เปลี่ยนสีข้อความ (color)
  • เปลี่ยนขนาดข้อความ (font-size)
  • เพิ่ม padding
  • มุมโค้ง (border-radius)
  • ขอบสี (border)
  • ใช้ :hover feature
  • เพิ่มเงา (box-shadow)
  • เปลี่ยนความกว้าง (width)
  • ปิดใช้งาน (disable)
  • อนิเมชัน (animate)
  • สร้าง button groups (horizontal/vertical)

1. Background Color (สีพื้นหลัง)

Default: พื้นหลังสีขาว ข้อความสีดำ ใช้ background-color

ตัวอย่าง: ปุ่มพื้นหลังสีชมพู

/* HTML */
<button class="button">Click me</button>

/* CSS */
.button {
  width: 100px; height: 50px;
  background-color: pink;
}
CSS Button: คู่มือจัดสไตล์ปุ่ม (Button) แบบครบถ้วน
ปุ่มพื้นหลังสีชมพู

2. Text Color (สีข้อความ)

ใช้ color property

ตัวอย่าง: พื้นหลังชมพู ข้อความสีเขียว

.button {
  width: 100px; height: 50px;
  color: green;
  background-color: pink;
}
CSS Button: คู่มือจัดสไตล์ปุ่ม (Button) แบบครบถ้วน
ปุ่มชมพู ข้อความสีเขียว

3. Text Size (ขนาดข้อความ)

ใช้ font-size

.button {
  width: 100px; height: 50px;
  background-color: blue; color: white;
  font-size: 20px;
}
CSS Button: คู่มือจัดสไตล์ปุ่ม (Button) แบบครบถ้วน
ปุ่มขนาดเดียวกัน แต่ font-size 20px

4. Padding (ระยะห่างข้อความ-ขอบ)

padding ระยะห่างระหว่างข้อความและขอบปุ่ม ใช้ px, em, %

ตัวอย่าง: ปุ่ม padding 20px และ 40px

<button class="button1">Click me</button>
<button class="button2">Click me</button>

.button1 { padding: 20px; font-size: 16px; background-color: blue; color: white; }
.button2 { padding: 40px; font-size: 16px; background-color: blue; color: white; }
CSS Button: คู่มือจัดสไตล์ปุ่ม (Button) แบบครบถ้วน CSS Button: คู่มือจัดสไตล์ปุ่ม (Button) แบบครบถ้วน
ซ้าย: padding 20px, ขวา: padding 40px (ไม่กำหนด width/height ให้ padding ทำงานเต็มที่)

5. Rounded Corners (มุมโค้ง)

Default: มุมโค้ง ใช้ border-radius

ตัวอย่าง 3 ขนาด radius:

.button1 { width: 100px; height: 50px; background-color: blue; color: white; border-radius: 5px; }
.button2 { width: 100px; height: 50px; background-color: blue; color: white; border-radius: 10px; }
.button3 { width: 100px; height: 50px; background-color: blue; color: white; border-radius: 15px; }
CSS Button: คู่มือจัดสไตล์ปุ่ม (Button) แบบครบถ้วน
border-radius มากขึ้น = มุมโค้งมนขึ้น

6. Border Color (ขอบสี)

ใช้ border property

.button {
  background-color: white; color: black;
  border: 3px solid #ffb6c1;  /* Light pink */
  padding: 25px;
}
CSS Button: คู่มือจัดสไตล์ปุ่ม (Button) แบบครบถ้วน
ปุ่มพื้นหลังขาว ขอบชมพูอ่อน 3px padding 25px

7. Hover Effect (เอฟเฟกต์เมื่อ Hover)

ใช้ :hover selector เปลี่ยนสไตล์เมื่อ hover

ตัวอย่าง: ปกติขาว/ดำ + ขอบชมพู → Hover: เขียว/ขาว

.button {
  background-color: white; color: black;
  border: 3px solid #ffb6c1; padding: 25px;
}

.button:hover {
  background-color: green; color: white;
}
CSS Button: คู่มือจัดสไตล์ปุ่ม (Button) แบบครบถ้วน
ซ้าย: ปกติ, ขวา: hover (เขียว/ขาว)

เพิ่ม transition-duration: 1s ทำให้เปลี่ยนสไตล์นุ่มนวลใน 1 วินาที

8. Shadows (เงา)

ใช้ box-shadow property

ตัวอย่าง: Drop shadow

.button {
  background-color: white; color: black;
  border: 3px solid #ffb6c1; padding: 25px;
  box-shadow: 0 10px 10px 0 rgba(0,0,0,0.2);
}
CSS Button: คู่มือจัดสไตล์ปุ่ม (Button) แบบครบถ้วน
ปุ่มพร้อม drop shadow

พารามิเตอร์: x-offset 0, y-offset 10px, blur 10px, spread 0, สี rgba(0,0,0,0.2) = เทาอ่อน

9. Width (ความกว้าง)

width property กำหนดความกว้างเฉพาะ (default ขึ้นกับเนื้อหา)

.button1 { width: 250px; ... }
.button2 { width: 50%; ... }
.button3 { width: 100%; ... }
CSS Button: คู่มือจัดสไตล์ปุ่ม (Button) แบบครบถ้วน
ปุ่ม 3 ปุ่ม ความกว้างต่างกัน

10. Disabling a Button (ปิดใช้งานปุ่ม)

ใช้ opacity (ความโปร่งใส) + cursor: not-allowed

  • opacity: 0.5 — โปร่งใส 50% ดูเหมือน disabled
  • cursor: not-allowed — เมาส์แสดง stop sign เมื่อ hover
.button1 { background-color: #ffb6c1; color: black; padding: 25px; }
.button2 { 
  background-color: #ffb6c1; color: black; padding: 25px;
  border: none; opacity: 0.5; cursor: not-allowed;
}
CSS Button: คู่มือจัดสไตล์ปุ่ม (Button) แบบครบถ้วน
ซ้าย: ปกติ, ขวา: disabled (opacity 0.5 + cursor not-allowed)

11. Creating Button Groups (กลุ่มปุ่ม)

Horizontal Button Group (แนวนอน)

ใช้ float: left จัดเรียงติดกัน

.button {
  background-color: #ffb6c1; color: black;
  padding: 25px; border: none; float: left;
}
CSS Button: คู่มือจัดสไตล์ปุ่ม (Button) แบบครบถ้วน
3 ปุ่มเรียงแนวนอน

เพิ่มขอบแยกปุ่ม: border: 2px solid blue;

CSS Button: คู่มือจัดสไตล์ปุ่ม (Button) แบบครบถ้วน
กลุ่มปุ่มแนวนอน พร้อมขอบสีน้ำเงินแยกแต่ละปุ่ม

Vertical Button Group (แนวตั้ง)

ใช้ display: block

.button {
  background-color: #ffb6c1; color: black;
  padding: 25px; border: 2px solid blue; display: block;
}
CSS Button: คู่มือจัดสไตล์ปุ่ม (Button) แบบครบถ้วน
กลุ่มปุ่มแนวตั้ง

12. Animating Buttons (อนิเมชันปุ่ม)

Pressed Effect (เอฟเฟกต์กดปุ่ม)

ปุ่ม light blue + shadow สีเทา → คลิก: กลายเป็นชมพู + shadow สีเทาอ่อน + กดเข้าไป (translateY)

.button {
  padding: 20px; font-size: 15px; color: white;
  background-color: lightblue; border: none;
  transition-duration: 0.5s; border-radius: 8px;
  box-shadow: 0 5px gray;
}

.button:active {
  background-color: #ffb6c1;
  box-shadow: 0 5px lightgray;
  transform: translateY(5px);
}
CSS Button: คู่มือจัดสไตล์ปุ่ม (Button) แบบครบถ้วน
ซ้าย: ก่อนคลิก, ขวา: หลังคลิก (pressed effect)

.button:active ใช้ transform: translateY(5px) ทำให้ปุ่มดูเหมือนถูกกดเข้าไป

Fade-In Effect (เอฟเฟกต์ลางเลื่อนเข้ามา)

ใช้ opacity + transition + :hover

.button {
  padding: 20px; font-size: 15px; color: white;
  background-color: lightblue; border: none;
  transition-duration: 0.5s; border-radius: 8px;
  opacity: 0.7;
}

.button:hover { opacity: 1; }
CSS Button: คู่มือจัดสไตล์ปุ่ม (Button) แบบครบถ้วน
ซ้าย: opacity 0.7 (โปร่งใส), ขวา: hover opacity 1 (ทึบชัด)

สรุป

HTML กำหนดโครงสร้างปุ่ม CSS จัดสไตล์ตามต้องการ บทเรียนนี้ครอบคลุม: background-color, color, font-size, padding, border-radius, border, :hover, box-shadow, width, disabled state, button groups (horizontal/vertical), และ animations (pressed, fade-in) ตอนนี้คุณพร้อมจัดสไตล์ปุ่ม CSS อย่างมืออาชีพ!