เครื่องมือสร้างฟอร์ม 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

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

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

เครื่องสร้างตัวอักษรสุ่ม

สร้างตัวอักษร A-Z แบบสุ่ม เลือกจำนวน ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก หรือแบบผสม แล้วใช้กับเกม โจทย์ หรือกิจกรรมในห้องเรียน

เครื่องมือตรวจสอบหมายเลขโทรศัพท์

ตรวจสอบโครงสร้างหมายเลขตามประเทศ พร้อมดูภูมิภาค ประเภท และรูปแบบ E.164 ระหว่างประเทศ ในประเทศ และ RFC 3966