พอดแคสต์ CSS - 036: ข้อความและการพิมพ์
ข้อความเป็นหนึ่งในองค์ประกอบพื้นฐานที่สำคัญของเว็บ
เมื่อสร้างเว็บไซต์ คุณไม่จำเป็นต้องจัดรูปแบบข้อความเสมอไป เพราะ HTML ก็มีการจัดรูปแบบเริ่มต้นที่สมเหตุสมผลอยู่แล้ว
อย่างไรก็ตาม ข้อความมีแนวโน้มที่จะเป็นเนื้อหาส่วนใหญ่ของเว็บไซต์ ดังนั้นการเพิ่มสไตล์เพื่อเพิ่มความน่าสนใจก็เป็นสิ่งที่คุ้มค่า การเปลี่ยนแปลงคุณสมบัติพื้นฐานบางอย่างจะช่วยปรับปรุงประสบการณ์การอ่านของผู้ใช้ได้อย่างมาก
ในโมดูลนี้ เราจะมาดูคุณสมบัติแบบอักษร CSS พื้นฐานบางรายการ เช่น font-family
, font-style
, font-weight
และ font-size
จากนั้นเราจะเจาะลึกเกี่ยวกับพร็อพเพอร์ตี้ที่ส่งผลต่อย่อหน้าของข้อความ เช่น text-indent
และ word-spacing
และปิดท้ายโมดูลด้วยหัวข้อขั้นสูงอื่นๆ เช่น แบบอักษรที่เปลี่ยนแปลงได้และองค์ประกอบสมมติ
เปลี่ยนแบบอักษร
ใช้ font-family
เพื่อเปลี่ยนลักษณะแบบอักษรของข้อความ
พร็อพเพอร์ตี้ font-family
ยอมรับรายการสตริงที่คั่นด้วยคอมมา ซึ่งอาจหมายถึงชุดแบบอักษรเฉพาะหรือทั่วไป ชุดแบบอักษรเฉพาะคือสตริงที่มีเครื่องหมายคำพูด เช่น “Helvetica”, “EB Garamond” หรือ “Times New Roman” ชุดแบบอักษรทั่วไปคือคีย์เวิร์ด เช่น serif
, sans-serif
และ monospace
(โปรดดูรายการตัวเลือกทั้งหมดใน MDN) เบราว์เซอร์จะแสดงแบบอักษรแรกที่ใช้ได้จากรายการที่มีให้
เมื่อใช้ font-family
คุณควรระบุชุดแบบอักษรทั่วไปอย่างน้อย 1 ชุดในกรณีที่เบราว์เซอร์ของผู้ใช้ไม่มีแบบอักษรที่ต้องการ โดยทั่วไป ชุดแบบอักษรทั่วไปสำรองควรคล้ายกับแบบอักษรที่ต้องการ กล่าวคือ หากใช้ font-family: "Helvetica"
(ชุดแบบอักษร Sans-Serif) แบบอักษรสำรองควรอยู่ในระดับ sans-serif
เพื่อให้ตรงกัน
ใช้แบบอักษรตัวเอียงและเอียง
ใช้ font-style
เพื่อตั้งค่าว่าข้อความควรเป็นตัวเอียงหรือไม่ font-style
ยอมรับคีย์เวิร์ด normal
, italic
และ oblique
ทำให้ข้อความเป็นตัวหนา
ใช้ font-weight
เพื่อตั้งค่า "ตัวหนา" ของข้อความ พร็อพเพอร์ตี้นี้ยอมรับค่าคีย์เวิร์ด (normal
, bold
) ค่าคีย์เวิร์ดสัมพัทธ์ (lighter
, bolder
) และค่าตัวเลข (100
ถึง 900
)
คีย์เวิร์ด normal
และ bold
เทียบเท่ากับค่าตัวเลข 400
และ 700
ตามลำดับ
คีย์เวิร์ด lighter
และ bolder
จะได้รับการคำนวณโดยสัมพันธ์กับองค์ประกอบระดับบนสุด ดูความหมายของน้ำหนักสัมพัทธ์ของ MDN สำหรับแผนภูมิที่มีประโยชน์ซึ่งแสดงวิธีการหาค่านี้
เปลี่ยนขนาดข้อความ
ใช้ font-size
เพื่อควบคุมขนาดองค์ประกอบของข้อความ พร็อพเพอร์ตี้นี้ยอมรับค่าความยาว เปอร์เซ็นต์ และค่าของคีย์เวิร์ดจำนวนหนึ่ง
นอกจากความยาวและค่าเปอร์เซ็นต์แล้ว font-size
ยังยอมรับค่าคีย์เวิร์ดแบบสัมบูรณ์บางค่า (xx-small
, x-small
, small
, medium
, large
, x-large
, xx-large
) และค่าคีย์เวิร์ดแบบสัมพัทธ์ 2-3 ค่า (smaller
, larger
) ค่าสัมพัทธ์นั้นสัมพัทธ์กับ font-size
ขององค์ประกอบระดับบนสุด
เปลี่ยนช่องว่างระหว่างบรรทัด
ใช้ line-height
เพื่อระบุความสูงของแต่ละบรรทัดในองค์ประกอบ พร็อพเพอร์ตี้นี้ยอมรับตัวเลข ความยาว เปอร์เซ็นต์ หรือคีย์เวิร์ด normal
โดยทั่วไป เราขอแนะนำให้ใช้ตัวเลขแทนความยาวหรือเปอร์เซ็นต์เพื่อหลีกเลี่ยงปัญหาเกี่ยวกับการสืบทอดค่า
เปลี่ยนการเว้นวรรคระหว่างอักขระ
ใช้ letter-spacing
เพื่อควบคุมระยะห่างแนวนอนระหว่างอักขระต่างๆ ในข้อความ พร็อพเพอร์ตี้นี้ยอมรับค่าความยาว เช่น em
, px
และ rem
โปรดทราบว่าค่าที่ระบุจะเพิ่มพื้นที่ธรรมชาติระหว่างอักขระ ในการสาธิตด้านล่าง ลองเลือกอักษรตัวใดตัวหนึ่งเพื่อดูขนาดของตู้ไปรษณีย์และการเปลี่ยนแปลงด้วย letter-spacing
เปลี่ยนการเว้นวรรคระหว่างคำ
ใช้ word-spacing
เพื่อเพิ่มหรือลดระยะห่างระหว่างแต่ละคำในข้อความ พร็อพเพอร์ตี้นี้ยอมรับค่าความยาว เช่น em
, px
และ rem
โปรดทราบว่าความยาวที่คุณระบุมีไว้สำหรับการเว้นวรรคเพิ่มเติมนอกเหนือจากการเว้นวรรคปกติ ซึ่งหมายความว่า word-spacing: 0
เทียบเท่ากับ word-spacing: normal
font
ชวเลข
คุณสามารถใช้พร็อพเพอร์ตี้ font
ชวเลขเพื่อตั้งค่าพร็อพเพอร์ตี้ที่เกี่ยวข้องกับแบบอักษรหลายรายการพร้อมกันได้ รายการพร็อพเพอร์ตี้ที่เป็นไปได้ ได้แก่ font-family
, font-size
, font-stretch
, font-style
, font-variant
, font-weight
และ line-height
ดูรายละเอียดวิธีสั่งซื้อพร็อพเพอร์ตี้เหล่านี้ได้จากบทความ font
ของ MDN
เปลี่ยนลักษณะตัวพิมพ์ของข้อความ
ใช้ text-transform
เพื่อแก้ไขการใช้อักษรตัวพิมพ์ใหญ่ในข้อความโดยไม่จำเป็นต้องเปลี่ยน HTML ที่สำคัญ พร็อพเพอร์ตี้นี้ยอมรับค่าคีย์เวิร์ด uppercase
, lowercase
และ capitalize
เพิ่มการขีดเส้นใต้ เส้นเหนือ และบรรทัดผ่านในข้อความ
ใช้ text-decoration
เพื่อเพิ่มบรรทัดในข้อความ ส่วนใหญ่ใช้ขีดเส้นใต้ แต่คุณสามารถเพิ่มบรรทัดเหนือข้อความหรือขีดทับได้โดยตรง
พร็อพเพอร์ตี้ text-decoration
ย่อมาจากพร็อพเพอร์ตี้ที่เฉพาะเจาะจงมากขึ้นซึ่งแสดงรายละเอียดด้านล่าง
พร็อพเพอร์ตี้ text-decoration-line
ยอมรับคีย์เวิร์ด underline
, overline
และ line-through
นอกจากนี้ คุณยังสามารถระบุคำหลักมากกว่าหนึ่งคำสำหรับหลายบรรทัด
พร็อพเพอร์ตี้ text-decoration-color
กำหนดสีของการตกแต่งทั้งหมดจาก text-decoration-line
พร็อพเพอร์ตี้ text-decoration-style
ยอมรับคีย์เวิร์ด solid
, double
, dotted
, dashed
และ wavy
พร็อพเพอร์ตี้ text-decoration-thickness
ยอมรับค่าความยาวทั้งหมดและตั้งค่าความกว้างของเส้นโครงร่างของการตกแต่งทั้งหมดจาก text-decoration-line
พร็อพเพอร์ตี้ text-decoration
เป็นชื่อย่อของพร็อพเพอร์ตี้ข้างต้นทั้งหมด
เพิ่มการเยื้องในข้อความ
ใช้ text-indent
เพื่อเพิ่มการเยื้องในบล็อกข้อความ พร็อพเพอร์ตี้นี้จะใช้เวลา (เช่น 10px
, 2em
) หรือเปอร์เซ็นต์ของความกว้างของบล็อกที่มีอยู่
จัดการกับเนื้อหาที่ล้นหรือถูกซ่อนไว้
ใช้ text-overflow
เพื่อระบุวิธีการแสดงเนื้อหาที่ซ่อน มี 2 ตัวเลือก ได้แก่ clip
(ค่าเริ่มต้น) ซึ่งตัดข้อความส่วนที่เกินมา และ ellipsis
ซึ่งแสดงจุดไข่ปลา (...) ที่จุดข้อความที่เกินมา
ควบคุมช่องว่าง
พร็อพเพอร์ตี้ white-space
ใช้เพื่อระบุวิธีจัดการช่องว่างในองค์ประกอบ ดูรายละเอียดเพิ่มเติมได้ที่บทความเกี่ยวกับ white-space
เกี่ยวกับ MDN
white-space: pre
มีประโยชน์ในการแสดงผลรูปแบบ ASCII หรือการเยื้องโค้ดบล็อกที่มีการเยื้อง
ควบคุมการแบ่งคำ
ใช้ word-break
เพื่อเปลี่ยนลักษณะการ "คั่น" คำที่ควรจะปรากฏเมื่อเกินบรรทัด โดยค่าเริ่มต้น เบราว์เซอร์จะไม่แยกคำ การใช้ค่าคีย์เวิร์ด break-all
สำหรับ word-break
จะสั่งให้เบราว์เซอร์แบ่งคำทีละอักขระหากจำเป็น
เปลี่ยนการจัดข้อความ
ใช้ text-align
เพื่อระบุการจัดข้อความแนวนอนในองค์ประกอบบล็อกหรือเซลล์ในตาราง พร็อพเพอร์ตี้นี้ยอมรับค่าคีย์เวิร์ด left
, right
, start
, end
, center
, justify
และ match-parent
ค่า left
และ right
จะจัดข้อความชิดขอบซ้ายและขวาของบล็อกตามลำดับ
ใช้ start
และ end
เพื่อแสดงตำแหน่งของจุดเริ่มต้นและจุดสิ้นสุดของบรรทัดข้อความในโหมดการเขียนปัจจุบัน ดังนั้น start
จึงแมปไปยัง left
ในภาษาอังกฤษ และกับภาษา right
เป็นภาษาอาหรับซึ่งเขียนจากขวาไปซ้าย (RTL) ทั้ง 2 อย่างนี้เป็นความสอดคล้องกับตรรกะ ดูข้อมูลเพิ่มเติมในโมดูลคุณสมบัติทางตรรกะของเรา
ใช้ center
เพื่อจัดข้อความให้อยู่กึ่งกลางของบล็อก
ค่า justify
จะจัดระเบียบข้อความและเปลี่ยนระยะห่างของคำโดยอัตโนมัติ เพื่อให้ข้อความอยู่ในแนวเดียวกันทั้งขอบซ้ายและขวาของบล็อก
เปลี่ยนทิศทางของข้อความ
ใช้ direction
เพื่อกำหนดทิศทางของข้อความ อาจเป็น ltr
(จากซ้ายไปขวา ค่าเริ่มต้น) หรือ rtl
(ขวาไปซ้าย) บางภาษา เช่น อาหรับ ฮีบรู หรือเปอร์เซียจะเขียนจากขวาไปซ้าย คุณจึงควรใช้ภาษาdirection: rtl
สำหรับภาษาอังกฤษและภาษาแบบซ้ายไปขวาอื่นๆ ให้ใช้ direction: ltr
เปลี่ยนลักษณะการไหลของข้อความ
ใช้ writing-mode
เพื่อเปลี่ยนวิธีการจัดเรียงและการจัดเรียงข้อความ ค่าเริ่มต้นคือ horizontal-tb
แต่คุณยังสามารถตั้งค่า writing-mode
เป็น vertical-lr
หรือ vertical-rl
สำหรับข้อความที่ต้องการให้อยู่ในแนวนอน
เปลี่ยนการวางแนวของข้อความ
ใช้ text-orientation
เพื่อระบุการวางแนวของอักขระในข้อความ ค่าที่ถูกต้องสำหรับพร็อพเพอร์ตี้นี้คือ mixed
และ upright
พร็อพเพอร์ตี้นี้เกี่ยวข้องเฉพาะเมื่อตั้งค่า writing-mode
เป็นอย่างอื่นที่ไม่ใช่ horizontal-tb
เพิ่มเงาในข้อความ
ใช้ text-shadow
เพื่อเพิ่มเงาลงในข้อความ พร็อพเพอร์ตี้นี้มีความยาว 3 ช่วง (x-offset
, y-offset
และ blur-radius
) และสี
ดูข้อมูลเพิ่มเติมได้ที่ส่วน text-shadow
ของโมดูลเกี่ยวกับเงา
แบบอักษรที่ปรับเปลี่ยนได้
ตามปกติแบบอักษร “ปกติ” จะต้องมีการนำเข้าไฟล์ที่แตกต่างกันสำหรับแบบอักษรแต่ละเวอร์ชัน เช่น ตัวหนา ตัวเอียง หรือแบบย่อ แบบอักษรตัวแปรคือแบบอักษรที่มีแบบอักษรที่มีแบบอักษรแตกต่างกันจำนวนมากในไฟล์เดียว
ดูรายละเอียดเพิ่มเติมได้ในบทความเกี่ยวกับแบบอักษรที่ปรับเปลี่ยนได้
องค์ประกอบจำลอง
องค์ประกอบจำลอง ::first-letter
และ ::first-line
องค์ประกอบจำลอง ::first-letter
และ ::first-line
จะกำหนดเป้าหมายอักษรตัวแรกและบรรทัดแรกตามลำดับขององค์ประกอบข้อความ
องค์ประกอบจำลอง ::selection
รายการ
ใช้องค์ประกอบจำลอง ::selection
เพื่อเปลี่ยนลักษณะของข้อความที่ผู้ใช้เลือก
เมื่อใช้องค์ประกอบจำลองนี้ จะมีการใช้พร็อพเพอร์ตี้ CSS บางรายการเท่านั้น ได้แก่ color
, background-color
, text-decoration
, text-shadow
, stroke-color
, fill-color
, stroke-width
font-variant
พร็อพเพอร์ตี้ font-variant
เป็นชื่อย่อของพร็อพเพอร์ตี้ CSS หลายรายการที่ให้คุณเลือกตัวแปรแบบอักษร เช่น small-caps
และ slashed-zero
พร็อพเพอร์ตี้ CSS ที่ชวเลขนี้รวมไว้คือ font-variant-alternates
, font-variant-caps
, font-variant-east-asian
, font-variant-ligatures
และ font-variant-numeric
ดูลิงก์ของแต่ละพร็อพเพอร์ตี้สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการใช้งาน
ตรวจสอบความเข้าใจของคุณ
ทดสอบความรู้เกี่ยวกับการพิมพ์บนเว็บ
คีย์เวิร์ดใดต่อไปนี้ที่ใช้เป็นคีย์เวิร์ดสำรองทั่วไป font-family
ได้
serif
monospace
italic
italic
เป็นคีย์เวิร์ดที่ถูกต้องสำหรับ font-style
ไม่ใช่ font-family
sci-fi
fantasy
คือรายการสำรองทั่วไปที่ถูกต้องสำหรับ font-family
sans-serif
helvetica
"Helvetica"
ไม่ใช่คีย์เวิร์ดทั่วไป แต่หมายถึงชุดแบบอักษรที่เฉพาะเจาะจงแทนคำสั่งใดใช้แปลงอักษรตัวแรกของแต่ละคำเป็นตัวพิมพ์ใหญ่ เช่น This is a sentence.
➡ This Is A Sentence.
text-capitalize: true;
text-case: capitalize;
text-transform: capitalize;
font-style: capitals;
font-variant: capitalize;
จริงหรือเท็จ: ใช้ text-orientation
เพื่อจัดข้อความไปทางซ้าย ขวา หรือตรงกลาง
text-orientation
เปลี่ยนการหมุนตัวอักษรในบรรทัดtext-orientation
เปลี่ยนการหมุนตัวอักษรในบรรทัด ใช้ text-align
เพื่อจัดข้อความไปทางซ้าย ทางขวา หรือตรงกลาง (และเพิ่มเติม)คุณสมบัติ CSS ใดที่ใช้เพื่อเปลี่ยนช่องว่างระหว่างบรรทัดข้อความได้
line-spacing
leading
baseline-distance
line-height
แหล่งข้อมูล
- แนวทางปฏิบัติที่ดีที่สุดเกี่ยวกับแบบอักษร กล่าวถึงการนำเข้าแบบอักษร การแสดงผลแบบอักษร และแนวทางปฏิบัติที่ดีที่สุดอื่นๆ ในการใช้แบบอักษรบนเว็บ
- การจัดรูปแบบข้อความและแบบอักษรพื้นฐาน MDN