เครื่องมือสร้างฟอร์ม CSS

ผลลัพธ์

ฟอร์มถือเป็นส่วนที่ผู้ใช้มีปฏิสัมพันธ์บ่อยที่สุดในเว็บไซต์ส่วนใหญ่ แต่กลับเป็นส่วนที่ได้รับการดูแลด้านการออกแบบน้อยที่สุดในหลายเว็บไซต์ ตัวสร้างนี้จะสร้าง CSS สำหรับฟอร์มที่ออกแบบมาอย่างครบถ้วน: ตารางฟอร์มแบบปรับขนาดได้ (responsive grid), คู่ป้ายกำกับกับช่องป้อนข้อมูล, เขตพิมพ์ข้อความ, ตัวเลือก และสถานะโฟกัสที่มองเห็นได้ชัดเจน ในสไตล์การนำเสนอที่สอดคล้องกัน ตั้งค่าสีหลัก ความโค้งมุม และระยะห่าง จากนั้นคัดลอกสไตล์ชีตไปใช้ได้เลย CSS นี้ยังคงรักษาโครงสร้างพื้นฐานของฟอร์มไว้ ทำให้ระบบตรวจสอบความถูกต้อง การใช้งานผ่านคีย์บอร์ด และเครื่องอ่านหน้าจอทำงานได้ตามปกติ

วิธีใช้งานตัวสร้าง

  1. 1

    ตั้งค่าสีหลัก (accent)

    สีหลักกำหนดสีของวงแหวนโฟกัสและสีขอบของทุกฟิลด์

  2. 2

    เลือกความโค้งมุม

    ความโค้งมุมมีผลกับช่องป้อนข้อมูล เขตพิมพ์ข้อความ และตัวเลือก เพื่อให้ทุกรายการมีรูปทรงเดียวกัน

  3. 3

    ตั้งค่าระยะห่าง

    ระยะห่างควบคุมช่องว่างแนวตั้งระหว่างฟิลด์ในตารางฟอร์ม

  4. 4

    คัดลอก CSS

    สไตล์ชีตที่ครบถ้วน พร้อมนำไปวางและปรับแต่งได้ โดยไม่ต้องแก้ไข HTML ของคุณ

แบบฟอร์มพื้นฐาน

<form class="form">
  <label class="field">
    <span class="field-label">Email</span>
    <input type="email" required>
    <span class="field-error">Please enter a valid email.</span>
  </label>

  <label class="field">
    <span class="field-label">Password</span>
    <input type="password" minlength="8" required>
  </label>

  <button type="submit" class="button">Sign up</button>
</form>
.field {
  display: block;
  margin-bottom: 1.25rem;
}
.field-label {
  display: block;
  font-weight: 500;
  margin-bottom: .25rem;
}
.field input {
  width: 100%;
  padding: .5rem .75rem;
  font: inherit;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  background: #fff;
  transition: border-color 120ms, box-shadow 120ms;
}
.field input:focus-visible {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}
.field input:invalid:not(:placeholder-shown) {
  border-color: #dc2626;
}
.field-error { display: none; color: #dc2626; font-size: .875rem; margin-top: .25rem; }
.field input:invalid:not(:placeholder-shown) ~ .field-error { display: block; }

สไตล์ทั่วไป 4 แบบ

รูปแบบ คุณสมบัติ เหมาะสำหรับ
แบบมีเส้นกรอบ มีเส้นกรอบรอบช่องป้อนข้อมูล และพื้นหลังโปร่งใส แบบฟอร์มบนเดสก์ท็อป การจัดวางที่หนาแน่น
แบบมีเส้นใต้ มีเพียงขอบด้านล่างเท่านั้น UI แบบมินิมอล/สำหรับงานบรรณาธิการ
แบบพื้นหลังทึบ พื้นหลังสีเทา ไม่มีขอบ UI ที่ได้รับแรงบันดาลใจจาก Material Design
ป้ายกำกับลอยตัว ป้ายติดอยู่ด้านใน และจะเคลื่อนขึ้นด้านบนเมื่อโฟกัสหรือมีการกรอกค่า เน้นอุปกรณ์เคลื่อนที่เป็นหลัก หน้าแลนดิงเพจ

แท็กแบบลอยตัว (floating-label) ดูสวยงามที่สุด แต่จำเป็นต้องใช้การเพิ่มโค้ดหรือ JavaScript เพื่อตรวจจับสถานะว่าง ส่วนแท็กแบบเส้นกรอบ (outlined) เป็นตัวเลือกที่ใช้งานได้กว้างขวางที่สุด

รายการตรวจสอบด้านการเข้าถึง (Accessibility)

  • ต้องมีป้ายกำกับที่มองเห็นได้สำหรับข้อมูลทุกชุด อย่าใช้สัญลักษณ์แทน (placeholder) เป็นป้ายกำกับเพียงอย่างเดียว เพราะป้ายกำกับดังกล่าวจะหายไปเมื่อเลือกเนื้อหา และทำให้การแยกแยะข้อมูลไม่ชัดเจน
  • <label for> หรือ <label> แบบห่อ ทั้งสองรูปแบบถือว่าใช้ได้ แต่รูปแบบแบบห่อจะใช้งานง่ายกว่าเล็กน้อย
  • ตัวบ่งชี้โฟกัส: ห้ามใช้ outline: none หากไม่มีตัวทดแทน เนื่องจากผู้ใช้คีย์บอร์ดจำเป็นต้องใช้งานฟังก์ชันนี้
  • ข้อความแสดงข้อผิดพลาด: ให้เชื่อมโยงไปยังข้อมูลผ่านรหัส aria-describedby ในส่วนของข้อมูลขาเข้า อย่าใช้เพียงสีเพื่อระบุข้อผิดพลาดเท่านั้น ควรประกอบด้วยข้อความหรือไอคอนประกอบด้วย
  • ฟิลด์ที่จำเป็น: ใช้แอตทริบิวต์ required และเพิ่มเครื่องหมายแสดงตำแหน่ง (เครื่องหมายดอกจัน) ในป้ายชื่อสำหรับผู้ใช้ที่มองเห็นได้ปกติ
  • ประเภทข้อมูลที่ใช้: ใช้ type="email", type="tel", type="url" และ type="number" โดยคีย์บอร์ดมือถือสามารถปรับใช้งานได้ตามความเหมาะสม
  • คุณสมบัติของ autocomplete: autocomplete="email", autocomplete="current-password" และอื่นๆ ช่วยให้ผู้ใช้ประหยัดเวลาในการพิมพ์ได้อย่างมาก

สถานะการตรวจสอบความถูกต้องแบบเนทีฟ

CSS มีคลาสปลอมสำหรับการตรวจสอบความถูกต้องของแบบฟอร์ม:

  • :required / :optional
  • :valid / :invalid
  • :in-range / :out-of-range (สำหรับการป้อนค่าตัวเลขที่มีค่าขั้นต่ำและสูงสุด)
  • :placeholder-shown (ว่าง ตำแหน่งสำหรับใส่ข้อมูลปรากฏให้เห็น)
  • :user-invalid (ไม่ถูกต้อง และผู้ใช้ได้มีปฏิสัมพันธ์แล้ว, เหมาะสำหรับรูปแบบข้อผิดพลาด)

คลาสปลอม :user-invalid เป็นวิธีที่เหมาะสมที่สุดในการแสดงข้อผิดพลาดเฉพาะหลังจากที่ผู้ใช้ดำเนินการแล้ว โดยไม่ปรากฏเส้นขอบสีแดงก่อนการโต้ตอบ ฟีเจอร์นี้ได้รับการรองรับในระบบปฏิบัติการหลักทั้งหมดตั้งแต่ปี 2023 เป็นต้นมา

สถานะปิดใช้งาน

.field input:disabled {
  background: #f3f4f6;
  color: #9ca3af;
  cursor: not-allowed;
}

ช่องป้อนข้อมูลที่ถูกปิดใช้งาน (disabled) จะไม่สามารถโฟกัสหรือส่งค่าได้ หากต้องการให้ยังโฟกัสได้เพื่อรองรับเครื่องอ่านหน้าจอ ให้ใช้ readonly แทน, ฟอร์มจะส่งค่าดังกล่าวไป แต่ผู้ใช้ไม่สามารถแก้ไขค่าได้

คำถามที่พบบ่อย

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

เนื่องจาก :invalid ใช้ได้ทันทีกับช่องข้อมูลที่ต้องกรอกแต่ยังว่างเปล่า ควรใช้ :user-invalid (ที่รองรับการโต้ตอบระหว่างผู้ใช้) หรือใช้ :invalid:not(:placeholder-shown) ร่วมกันเป็นทางเลือกในเบราว์เซอร์รุ่นเก่า

ตั้งค่า appearance: none ลบลูกศรเริ่มต้นออก จากนั้นเพิ่มลูกศรของคุณเองโดยใช้ภาพพื้นหลัง หรือใช้ลักษณะการล้อมรอบพร้อมลูกศรแบบ pseudo-element รายการตัวเลือกภายในจะยังคงแสดงในรูปแบบตามระบบปฏิบัติการ และไม่สามารถปรับแต่งได้ด้วย CSS

ทั้งสองวิธีนี้ วิธีการตรวจสอบความถูกต้องของ HTML (required, type, pattern) ใช้สำหรับกรณีพื้นฐานที่ไม่ต้องอาศัย JavaScript ในขณะที่ JavaScript ใช้สำหรับกฎที่ซับซ้อน เช่น ความแข็งแกร่งของรหัสผ่าน หรือความสัมพันธ์ระหว่างฟิลด์ต่างๆ นอกจากนี้ควรดำเนินการตรวจสอบความถูกต้องบนเซิร์ฟเวอร์เสมอ เนื่องจากการตรวจสอบบนฝั่งไคลเอนต์มีจุดประสงค์เพื่อประสบการณ์การใช้งาน (UX) มากกว่าด้านความปลอดภัย

เครื่องมือที่เกี่ยวข้อง

ตารางอ้างอิง ASCII

ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL

อ้างอิงตัวอักษร HTML

รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ

ตารางอ้างอิงแป้นพิมพ์ลัด

ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux

เครื่องสุ่มที่อยู่

สร้างระเบียนคล้ายที่อยู่ 1–20 รายการสำหรับแบบจำลองและการทดสอบ ด้วยรูปแบบประเทศแบบย่อ

ตัวตรวจสอบความถูกต้องของ JSON

ตรวจสอบไวยากรณ์ JSON และตรวจจับเครื่องหมายจุลภาคต่อท้าย เครื่องหมายอัญประกาศที่ผิด คีย์ซ้ำ และโครงสร้างที่ผิดรูปแบบ พร้อมระบุตำแหน่งข้อผิดพลาดอย่างแม่นยำ

ตัวลดรูปพีชคณิตบูลีน

ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^

เครื่องมือนี้มีให้บริการในภาษาอื่น