คอร์ส IT พื้นฐาน CSS 022_ข้อความ, แบบอักษร, ลิงก์
ข้อความ
การควบคุมข้อความ CSS ช่วยให้เราแสดงข้อมูลข้อความบนหน้าเว็บได้ดีขึ้นและปรับปรุงเอฟเฟกต์ภาพ
การย่อหน้า
ใช้สำหรับตั้งค่าการย่อหน้าบรรทัดแรกของข้อความ เหมาะสำหรับการย่อหน้าย่อหน้า หลีกเลี่ยงการใช้กับอิลิเมนต์อินไลน์ คุณสมบัตินี้รับค่าสัมบูรณ์หรือสัมพัทธ์ หน่วยสัมบูรณ์ได้แก่ พิกเซล (px), นิ้ว (in), เซนติเมตร (cm), มิลลิเมตร (mm) เป็นต้น หน่วยสัมพัทธ์ได้แก่ em, rem, vw, vh เป็นต้น
ตัวอย่าง:
p { text-indent: 2em;}เอฟเฟกต์:

โหมดการเขียน
โหมดการเขียนใน CSS หมายถึงทิศทางการจัดเรียงข้อความ รวมถึงโหมดแนวนอน แนวตั้ง และแบบผสม จริงๆ แล้วเป็นการตั้งค่าทิศทางการแสดงผลของอิลิเมนต์ระดับบล็อกบนหน้า — จากบนลงล่าง จากขวาไปซ้าย หรือจากซ้ายไปขวา ซึ่งกำหนดทิศทางของข้อความ
horizontal-tb: การไหลของบล็อกจากบนลงล่าง ทิศทางข้อความที่สอดคล้องคือแนวนอนvertical-rl: การไหลของบล็อกจากขวาไปซ้าย ทิศทางข้อความที่สอดคล้องคือแนวตั้งvertical-lr: การไหลของบล็อกจากซ้ายไปขวา ทิศทางข้อความที่สอดคล้องคือแนวตั้ง
ตัวอย่าง:
body { writing-mode: vertical-rl;}เอฟเฟกต์:
เมื่อเราสลับโหมดการเขียน เราก็เปลี่ยนทิศทางบล็อกและข้อความอินไลน์ด้วย ในโหมดการเขียน horizontal-tb ทิศทางบล็อกคือแนวนอนจากบนลงล่าง ขณะที่ในโหมด vertical-rl ทิศทางบล็อกคือแนวตั้งจากขวาไปซ้าย มิติบล็อกหมายถึงทิศทางการแสดงผลของบล็อกในโหมดการเขียนของหน้าเสมอ มิติอินไลน์หมายถึงทิศทางข้อความเสมอ
ภาพนี้แสดงสองมิติในโหมดการเขียนแนวนอน

ภาพนี้แสดงสองมิติในโหมดการเขียนแนวตั้ง

ทิศทางข้อความ
ใช้คุณสมบัติ direction เพื่อตั้งค่าทิศทางการอ่านข้อความ: จากซ้ายไปขวา (ltr) หรือจากขวาไปซ้าย (rtl)
เหมาะสำหรับเว็บไซต์หลายภาษา กำหนดทิศทางการอ่านตามภาษาของข้อความ บางภาษา (เช่น อาหรับ) เขียนแนวนอนแต่จากขวาไปซ้าย
ตัวอย่าง:
html { direction: rtl;}เอฟเฟกต์:

การตกแต่งข้อความ
ใช้คุณสมบัติ text-decoration เพื่อตั้งค่าเอฟเฟกต์ตกแต่งเส้นของข้อความ
- none: ไม่มีเส้น
- overline: เส้นบน
- underline: ขีดเส้นใต้
- line-through: ขีดทับ
ตัวอย่าง:
<p style="text-decoration: none;">ไม่มีเส้นตกแต่งข้อความ</p><p style="text-decoration: overline;">ฉันมีเส้นบน</p><p style="text-decoration: underline;">ฉันมีขีดเส้นใต้</p><p style="text-decoration: line-through;">ฉันมีขีดทับ</p>เอฟเฟกต์:

การจัดตำแหน่งข้อความ
ตั้งค่าการจัดตำแหน่งแนวนอนของข้อความ
- left: ข้อความจัดชิดซ้าย ค่าเริ่มต้นในภาษาส่วนใหญ่
- center: ข้อความจัดกึ่งกลางแนวนอน
- right: ข้อความจัดชิดขวา
- justify: ข้อความจัดชิดทั้งสองด้าน เติมช่องว่างเพิ่มเติมในแต่ละบรรทัด เนื่องจากการจัดเรียงข้อความและความกว้างของคอนเทนเนอร์ (ข้อความสั้น ขาดช่องว่าง บรรทัดน้อยเกินไป ภาษาเดียว) ในบางกรณีเอฟเฟกต์จัดชิดทั้งสองด้านอาจไม่เห็นได้ชัด
- justify-all (ไม่ค่อยใช้): คล้ายกับ justify แต่กระจายช่องว่างเพิ่มเติมอย่างสม่ำเสมอที่ต้นและท้ายบรรทัด
- start: ตามทิศทางข้อความของเบราว์เซอร์ ข้อความจัดตำแหน่งที่จุดเริ่มต้น (โดยปกติคือซ้าย)
- end: ตามทิศทางข้อความของเบราว์เซอร์ ข้อความจัดตำแหน่งที่จุดสิ้นสุด (โดยปกติคือขวา)
ตัวอย่าง:
<p style="text-align: left;">ข้อความนี้จัดชิดซ้าย</p><p style="text-align: right;">ข้อความนี้จัดชิดขวา</p><p style="text-align: center;">ข้อความนี้จัดกึ่งกลาง</p>เอฟเฟกต์:

ความสูงบรรทัด
ใช้คุณสมบัติ line-height เพื่อตั้งค่าความสูงระหว่างบรรทัดข้อความ การปรับความสูงบรรทัดตามขนาดแบบอักษรและข้อกำหนดการออกแบบสามารถปรับปรุงความสามารถในการอ่านได้
ตัวอย่าง:
<p>นี่คือความสูงบรรทัดปกติ <br>นี่คือความสูงบรรทัดปกติ</p><p style="line-height: 3;">ดูความสูงบรรทัดของข้อความนี้ <br>ดูความสูงบรรทัดของข้อความนี้</p>เอฟเฟกต์:

ระยะห่าง
ตั้งค่าระยะห่างระหว่างเนื้อหาข้อความ
letter-spacingตั้งค่าระยะห่างระหว่างตัวอักษร อักขระจีน และตัวเลขword-spacingตั้งค่าระยะห่างระหว่างคำ (อักขระทั้งสองด้านของช่องว่าง)
ตัวอย่าง:
<p style="letter-spacing: 10px;">ดูระยะห่างข้อความของฉัน CSS</p><p style="word-spacing: 10px;">ดู ระยะห่างข้อความของฉัน CSS 123</p>เอฟเฟกต์:

การตัดบรรทัด
ควบคุมวิธีการตัดบรรทัดของข้อความ
word-wrap: ควบคุมการตัดบรรทัดของคำยาวหรือ URL เป็นหลัก เหมาะสำหรับสถานการณ์ภาษาอังกฤษมากกว่า
normal(ค่าเริ่มต้น): ตามกฎการตัดบรรทัดปกติ ไม่อนุญาตให้ตัดภายในคำbreak-word: อนุญาตให้ตัดภายในคำ สามารถบังคับตัดบรรทัดคำยาวหรือ URL ได้
ตัวอย่าง:
.base{ background: #d7d8d9; width: 60px;}.example1{ word-wrap: normal;}.example2{ word-wrap: break-word;} <p class="base example1">ดู ฉัน ตัดบรรทัดยังไง HelloCSS Hello-CSS</p> <p class="base example2">ดู ฉัน ตัดบรรทัดยังไง HelloCSS Hello-CSS</p>เอฟเฟกต์:

white-space: ควบคุมการจัดการอักขระช่องว่างภายในอิลิเมนต์ รวมถึงช่องว่าง อักขระขึ้นบรรทัดใหม่ เป็นต้น
normal(ค่าเริ่มต้น): จัดการอักขระช่องว่างตามปกติ รวมช่องว่างต่อเนื่องและตัดบรรทัดตามอักขระขึ้นบรรทัดใหม่nowrap: ไม่อนุญาตให้ตัดบรรทัดข้อความ ละเว้นอักขระขึ้นบรรทัดใหม่pre: คงอักขระช่องว่างไว้ ไม่รวมช่องว่างต่อเนื่อง ข้อความแสดงตามรูปแบบซอร์สโค้ดpre-line: คงอักขระขึ้นบรรทัดใหม่ไว้ รวมช่องว่างต่อเนื่อง ช่องว่างอื่นจัดการตามปกติpre-wrap: คงอักขระช่องว่างไว้ รวมช่องว่างต่อเนื่อง คงอักขระขึ้นบรรทัดใหม่ไว้
ตัวอย่าง:
.base{ background: #d7d8d9; width: 60px;}.example1{ white-space: normal;}.example2{ white-space: nowrap;}.example3{ white-space: pre;} <p class="base example1">ดู ฉัน ตัดบรรทัดยังไง HelloCSS Hello-CSS</p> <p class="base example2">ดู ฉัน ตัดบรรทัดยังไง HelloCSS Hello-CSS</p> <p class="base example3">ดู ฉัน ตัดบรรทัดยังไง HelloCSS Hello-CSS</p>เอฟเฟกต์:

เงา
สามารถเพิ่มเอฟเฟกต์เงาหนึ่งหรือหลายอัน (คั่นด้วยจุลภาค) ให้กับข้อความเพื่อเพิ่มความสามารถในการอ่านหรือสร้างเอฟเฟกต์การออกแบบที่เป็นเอกลักษณ์
h-shadow: ตำแหน่งเงาแนวนอน ค่าบวก (เลื่อนไปขวา) หรือค่าลบ (เลื่อนไปซ้าย)v-shadow: ตำแหน่งเงาแนวตั้ง ค่าบวก (เลื่อนลง) หรือค่าลบ (เลื่อนขึ้น)blur: ไม่บังคับ แสดงระดับความเบลอของเงา ค่ายิ่งมากยิ่งเบลอ สามารถละเว้นได้color: สีของเงา สามารถเป็นค่าสีเฉพาะ คีย์เวิร์ด หรือค่า RGBA
ตัวอย่าง:
<p style="text-shadow: 2px 2px black;">ดูเงาของฉัน</p><p style="text-shadow: 1px 1px 1px red;">ดูเงาของฉัน</p><p style="text-shadow: 3px 3px 5px darkgrey;">ดูเงาของฉัน</p><p style="text-shadow: 2px 2px 2px black, -2px -2px 2px white;">ดูเงาของฉัน</p>เอฟเฟกต์:

การแปลง
ควบคุมเอฟเฟกต์การแปลงตัวพิมพ์ใหญ่-เล็กของข้อความ
none: ค่าเริ่มต้น คงตัวพิมพ์ใหญ่-เล็กเดิมcapitalize: แปลงตัวอักษรแรกของแต่ละคำเป็นตัวพิมพ์ใหญ่uppercase: แปลงข้อความทั้งหมดเป็นตัวพิมพ์ใหญ่lowercase: แปลงข้อความทั้งหมดเป็นตัวพิมพ์เล็ก
ตัวอย่าง:
<p style="text-transform: none;">ดูฉันแปลงยังไง hello CSS</p><p style="text-transform: capitalize;">ดูฉันแปลงยังไง hello CSS</p><p style="text-transform: uppercase;">ดูฉันแปลงยังไง hello CSS</p><p style="text-transform: lowercase;">ดูฉันแปลงยังไง hello CSS</p>เอฟเฟกต์:

การล้นของข้อความ
ใน CSS สามารถใช้คุณสมบัติ overflow เพื่อจัดการการล้นของข้อความ
- visible: ข้อความไม่ล้น แสดงผลครบถ้วน
- hidden: เมื่อข้อความล้น จะถูกซ่อน
- scroll: เมื่อข้อความล้น จะแสดงแถบเลื่อนให้ผู้ใช้เลื่อนดูเนื้อหาทั้งหมด
- auto: เมื่อข้อความล้น จะตัดสินใจตามความกว้างและความสูงของอิลิเมนต์ว่าจะแสดงแถบเลื่อนหรือไม่
ตัวอย่าง:
.base{ white-space: nowrap; background: #d7d8d9; width: 120px;}.example1{ overflow: visible;}.example2{ overflow: hidden;}.example3{ overflow: scroll;}.example4{ overflow: auto;} <p class="base example1">ดูว่าเนื้อหาข้อความของฉันล้นหรือไม่</p> <p class="base example2">ดูว่าเนื้อหาข้อความของฉันล้นหรือไม่</p> <p class="base example3">ดูว่าเนื้อหาข้อความของฉันล้นหรือไม่</p> <p class="base example4">ดูว่าเนื้อหาข้อความของฉันล้นหรือไม่</p>เอฟเฟกต์:

แบบอักษร
วิธีการควบคุมและกำหนดแบบอักษรเป็นส่วนสำคัญของการออกแบบเว็บ
ตระกูลแบบอักษร
กำหนดแบบอักษรด้วยคุณสมบัติ font-family สามารถระบุแบบอักษรหนึ่งตัว แนะนำให้ระบุแบบอักษรสำรองหลายตัว เบราว์เซอร์จะลองแบบอักษรเหล่านี้ตามลำดับความสำคัญจนกว่าจะพบแบบอักษรที่เหมาะสม หากชื่อแบบอักษรมีช่องว่าง อักขระพิเศษ หรืออักขระจีน แนะนำให้ใส่เครื่องหมายคำพูด สามารถใช้บริการแบบอักษรเว็บได้ ระวังลิขสิทธิ์แบบอักษร
ตัวอย่าง:
<p style="font-family: Arial, sans-serif;">hello CSS hello CSS</p><p style="font-family: Gabriola; ">hello CSS hello CSS</p>เอฟเฟกต์:

ขนาด
ขนาดแบบอักษรใน CSS สามารถตั้งค่าด้วยคุณสมบัติ font-size
ใช้สำหรับตั้งค่าขนาดแบบอักษรของข้อความ ขนาดแบบอักษรสามารถระบุด้วยค่าสัมบูรณ์หรือสัมพัทธ์
เมื่อใช้ค่าสัมบูรณ์ ขนาดแบบอักษรจะคงที่และไม่เปลี่ยนแปลงตามความละเอียดหน้าจอ หน่วยสัมบูรณ์ได้แก่: พิกเซล (px), นิ้ว (in), เซนติเมตร (cm), มิลลิเมตร (mm) เป็นต้น
เมื่อใช้ค่าสัมพัทธ์ ขนาดแบบอักษรจะสัมพัทธ์กับขนาดแบบอักษรของอิลิเมนต์แม่ หน่วยสัมพัทธ์ได้แก่: em, rem, vw, vh เป็นต้น
การใช้คีย์เวิร์ดเพื่อระบุขนาดแบบอักษรสามารถปรับปรุงความสามารถในการอ่านและความสอดคล้อง คีย์เวิร์ดได้แก่: xx-small, x-small, small, medium, large, x-large, xx-large
ตัวอย่าง:
body { font-size: 16px;}การออกแบบแบบตอบสนอง:
- ขนาดแบบอักษรในการออกแบบแบบตอบสนองควรเป็นค่าสัมพัทธ์เพื่อให้แน่ใจว่ามีประสบการณ์การอ่านที่ดีบนหน้าจอและอุปกรณ์ต่างๆ
การเข้าถึง:
- ตรวจสอบให้แน่ใจว่าขนาดแบบอักษรใหญ่พอที่จะตรงตามมาตรฐานการเข้าถึง แนะนำให้ใช้อย่างน้อย 16px สำหรับข้อความเนื้อหา
การเลือกหน่วยแบบอักษร:
- การใช้หน่วยสัมพัทธ์ (em, rem, %) ปรับตัวได้ดีกว่ากับการตั้งค่าขนาดแบบอักษรของผู้ใช้ในเบราว์เซอร์ เพิ่มการเข้าถึงเว็บไซต์
การตั้งค่าความสูงบรรทัด:
- ตั้งค่าความสูงบรรทัดตามขนาดแบบอักษรเพื่อปรับปรุงความสามารถในการอ่าน โดยทั่วไปความสูงบรรทัดสามารถตั้งค่าเป็น 1.4 ถึง 1.6 เท่าของขนาดแบบอักษร
ความหนา
ความหนาแบบอักษรใน CSS สามารถตั้งค่าด้วยคุณสมบัติ font-weight
normal: ความหนาแบบอักษรเริ่มต้นbold: แบบอักษรหนาbolder: หนากว่าอิลิเมนต์แม่lighter: บางกว่าอิลิเมนต์แม่- ค่าตัวเลข: ตั้งค่าความหนาแบบอักษรด้วยค่าตัวเลข โดยปกติตั้งแต่ 100 ถึง 900
ตัวอย่าง:
<div style="font-weight: normal;">ความหนาแบบอักษรเริ่มต้น</div>
<div style="font-weight: bold;"> แบบอักษรหนา <div style="font-weight: bolder;">หนากว่าอิลิเมนต์แม่</div></div>
<div style="font-weight: 700;"> แบบอักษรหนาด้วยค่าตัวเลข <div style="font-weight: lighter;">บางกว่าอิลิเมนต์แม่</div></div>เอฟเฟกต์:

สไตล์
สไตล์แบบอักษรใน CSS สามารถตั้งค่าด้วยคุณสมบัติ font-style
normal: สไตล์แบบอักษรเริ่มต้นitalic: สไตล์ตัวเอียง ใช้เอฟเฟกต์ตัวเอียงที่ออกแบบเฉพาะในไฟล์แบบอักษรoblique: สไตล์เอียง คล้ายตัวเอียง หากไฟล์แบบอักษรไม่มีการออกแบบตัวเอียงเฉพาะ จะบังคับให้แบบอักษรปกติเอียง
ตัวอย่าง:
<div style="font-style: normal;">สไตล์แบบอักษรเริ่มต้น 123 ABC</div><div style="font-style: italic;">สไตล์ตัวเอียง 123 ABC</div><div style="font-style: oblique;">สไตล์เอียง 123 ABC</div>เอฟเฟกต์:

สี
สีแบบอักษรใน CSS สามารถตั้งค่าด้วยคุณสมบัติ color
- ชื่อสีที่กำหนดไว้ล่วงหน้า: เช่น
red,green,blueเป็นต้น - ค่าสีเลขฐานสิบหก: เช่น
#FF0000,#00FF00,#0000FFเป็นต้น - ค่าสี RGB, RGBA: เช่น
rgb(255, 0, 0),rgba(0, 255, 0, 0.5)เป็นต้น - ค่าสี HSL, HSLA: เช่น
hsl(0, 100%, 50%),hsla(120, 100%, 50%, 0.7)เป็นต้น
ตัวอย่าง:
<div style="color: blue;">สีแบบอักษร</div><div style="color: #ff6a00;">สีแบบอักษร</div><div style="color: rgba(0, 128, 0);">สีแบบอักษร</div><div style="color: rgba(0, 128, 0, 0.5);">สีแบบอักษร</div><div style="color: hsla(0, 100%, 50%);">สีแบบอักษร</div><div style="color: hsla(0, 100%, 50%, 0.7);">สีแบบอักษร</div><div style="color: transparent;">สีแบบอักษร</div>เอฟเฟกต์:

ลิงก์
ใน CSS สามารถใช้คุณสมบัติ color เพื่อตั้งค่าสีแบบอักษรของลิงก์ (ไฮเปอร์ลิงก์)
ตั้งค่าสีลิงก์
- a - ตั้งค่าสีลิงก์ทั่วไป
- a:link - ปกติ ลิงก์ที่ยังไม่ได้เยี่ยมชม
- a:visited - ลิงก์ที่ผู้ใช้เยี่ยมชมแล้ว
- a:hover - เมื่อผู้ใช้วางเมาส์บนลิงก์
- a:active - ขณะที่ลิงก์ถูกคลิก
ตัวอย่าง:
/* ลิงก์ทั่วไป */a { color: #3498db; /* สีน้ำเงิน */}
/* ลิงก์ที่ยังไม่ได้เยี่ยมชม */a:link { color: #3498db; /* สีน้ำเงิน */}
/* ลิงก์ที่เยี่ยมชมแล้ว */a:visited { color: #884dff; /* สีม่วง */}
/* ลิงก์เมื่อวางเมาส์ */a:hover { color: #ff6600; /* สีส้ม */}
/* สีลิงก์เมื่อคลิก */a:active { color: #ff0000; /* สีแดง */}ตั้งค่าขีดเส้นใต้ลิงก์
ตัวอย่าง:
a { text-decoration: none; /* ลบขีดเส้นใต้ */}
a:hover { text-decoration: underline; /* แสดงขีดเส้นใต้เมื่อวางเมาส์ */}