CSS

จากวิกิพีเดีย สารานุกรมเสรี
ข้ามไปที่การนำทาง ข้ามไปที่การค้นหา
Cascading สไตล์ชีต (CSS)
โลโก้ CSS3 และ wordmark.svg
นามสกุลไฟล์
.css
ประเภทสื่ออินเทอร์เน็ต
ข้อความ/css
ตัวระบุประเภทเครื่องแบบ (UTI)public.css
พัฒนาโดยสมาคมเวิลด์ไวด์เว็บ (W3C)
เปิดตัวครั้งแรก17 ธันวาคม 2539 ; 24 ปีที่แล้ว ( 2539-12-17 )
รุ่นล่าสุด
CSS 2.1 : Level 2 Revision 1
(12 เมษายน 2559 ; 5 ปีที่แล้ว ) (2016-04-12)
ประเภทของรูปแบบภาษาชีตสไตล์
คอนเทนเนอร์สำหรับกฎรูปแบบสำหรับองค์ประกอบ HTML (แท็ก)
ประกอบด้วยเอกสาร HTML
เปิดรูปแบบ ?ใช่
เว็บไซต์www .w3 .org /TR /CSS / #css

Cascading Style Sheets ( CSS ) เป็นภาษาสไตล์ชีตที่ใช้ในการอธิบายถึงการนำเสนอของเอกสารที่เขียนในภาษามาร์กอัปเช่นHTML [1] CSS เป็นเทคโนโลยีสำคัญของเวิลด์ไวด์เว็บข้าง HTML และJavaScript [2]

CSS ถูกออกแบบมาเพื่อช่วยให้การแยกการนำเสนอและเนื้อหารวมทั้งรูปแบบ , สีและแบบอักษร [3]การแยกนี้สามารถปรับปรุงการเข้าถึงเนื้อหาให้ความยืดหยุ่นและการควบคุมมากขึ้นในข้อมูลจำเพาะของลักษณะการนำเสนอ เปิดใช้งานหน้าเว็บหลายหน้าเพื่อแชร์การจัดรูปแบบโดยระบุ CSS ที่เกี่ยวข้องในไฟล์ .css แยก ซึ่งช่วยลดความซับซ้อนและการซ้ำซ้อนในเนื้อหาโครงสร้างเป็น รวมถึงการเปิดใช้แคชไฟล์ .css เพื่อปรับปรุงความเร็วในการโหลดหน้าเว็บระหว่างหน้าที่แชร์ไฟล์และการจัดรูปแบบ

การแยกการจัดรูปแบบและเนื้อหายังทำให้สามารถนำเสนอหน้ามาร์กอัปเดียวกันในสไตล์ที่แตกต่างกันสำหรับวิธีการเรนเดอร์ที่แตกต่างกัน เช่น บนหน้าจอ ในการพิมพ์ ด้วยเสียง (ผ่านเบราว์เซอร์ที่ใช้คำพูดหรือโปรแกรมอ่านหน้าจอ ) และแบบอักษรเบรลล์อุปกรณ์สัมผัส CSS นอกจากนี้ยังมีกฎระเบียบสำหรับการจัดรูปแบบอื่นถ้าเนื้อหามีการเข้าถึงบนอุปกรณ์มือถือ [4]

ชื่อแบบเรียงซ้อนมาจากรูปแบบลำดับความสำคัญที่ระบุเพื่อกำหนดว่ากฎของสไตล์ใดจะนำไปใช้ หากมีกฎมากกว่าหนึ่งกฎที่ตรงกับองค์ประกอบหนึ่งๆ โครงการลำดับความสำคัญแบบเรียงซ้อนนี้สามารถคาดการณ์ได้

ข้อกำหนด CSS ได้รับการดูแลโดยWorld Wide Web Consortium (W3C) ประเภทสื่ออินเทอร์เน็ต ( ชนิด MIME ) ได้text/cssรับการลงทะเบียนเพื่อใช้กับ CSS โดย RFC 2318 (มีนาคม 1998) W3C ให้บริการตรวจสอบความถูกต้องของ CSS สำหรับเอกสาร CSS ฟรี [5]

นอกเหนือไปจาก HTML, ภาษามาร์กอัปอื่น ๆ ที่สนับสนุนการใช้ CSS รวมทั้งXHTML , XML ธรรมดา , SVGและXUL

ไวยากรณ์

CSS มีไวยากรณ์ที่เรียบง่ายและใช้คำหลักภาษาอังกฤษจำนวนหนึ่งเพื่อระบุชื่อของคุณสมบัติสไตล์ต่างๆ

แผ่นสไตล์ประกอบด้วยรายการของกฎ แต่ละกฎหรือกฎชุดประกอบด้วยหนึ่งหรือมากกว่าเตอร์และบล็อกการประกาศ

ตัวเลือก

ใน CSS ตัวเลือกจะประกาศส่วนใดของมาร์กอัปที่สไตล์ใช้กับโดยการจับคู่แท็กและแอตทริบิวต์ในมาร์กอัปเอง

ตัวเลือกอาจนำไปใช้กับสิ่งต่อไปนี้:

  • องค์ประกอบทั้งหมดของประเภทเฉพาะ เช่น ส่วนหัวระดับที่สองh2
  • องค์ประกอบที่ระบุโดยแอตทริบิวต์โดยเฉพาะ:
    • id : ตัวระบุที่ไม่ซ้ำภายในเอกสาร ระบุด้วยคำนำหน้าแฮชเช่น#id
    • class : ตัวระบุที่สามารถใส่คำอธิบายประกอบหลายองค์ประกอบในเอกสาร ระบุด้วยคำนำหน้าจุดเช่น.classname
  • องค์ประกอบขึ้นอยู่กับว่าพวกเขาจะอยู่เมื่อเทียบกับคนอื่น ๆ ในต้นไม้เอกสาร

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

คลาสหลอกใช้ในตัวเลือก CSS เพื่ออนุญาตการจัดรูปแบบตามข้อมูลที่ไม่มีอยู่ในแผนผังเอกสาร ตัวอย่างหนึ่งของ pseudo-class ที่ใช้กันอย่างแพร่หลายคือซึ่งระบุเนื้อหาเฉพาะเมื่อผู้ใช้ "ชี้ไปที่" องค์ประกอบที่มองเห็นได้ โดยปกติแล้วโดยการกดเคอร์เซอร์ของเมาส์ไว้เหนือองค์ประกอบนั้น มันถูกผนวกเข้ากับตัวเลือกเป็นในหรือ จัดประเภทหลอกชั้นเอกสารองค์ประกอบเช่นหรือในขณะที่องค์ประกอบหลอกทำให้ตัวเลือกที่อาจประกอบด้วยองค์ประกอบบางส่วนเช่นหรือ [6]:hovera:hover#elementid:hover:link:visited::first-line::first-letter

ตัวเลือกอาจรวมกันได้หลายวิธีเพื่อให้ได้ความจำเพาะและความยืดหยุ่นที่ยอดเยี่ยม [7]ตัวเลือกหลายตัวอาจเข้าร่วมในรายการที่เว้นระยะเพื่อระบุองค์ประกอบตามตำแหน่ง ประเภทองค์ประกอบ รหัส คลาส หรือการรวมกันของสิ่งนั้น ลำดับของผู้คัดเลือกมีความสำคัญ ตัวอย่างเช่นนำไปใช้กับองค์ประกอบทั้งหมดของคลาส myClass ที่อยู่ภายในองค์ประกอบ div ในขณะที่นำไปใช้กับองค์ประกอบ div ทั้งหมดที่อยู่ในองค์ประกอบของคลาส myClass อย่าสับสนกับตัวระบุที่ต่อกัน เช่นที่ใช้กับองค์ประกอบ div ของคลาส myClass div .myClass {color: red;}.myClass div {color: red;}div.myClass {color: red;}

ตารางต่อไปนี้แสดงบทสรุปของไวยากรณ์ตัวเลือกที่ระบุการใช้งานและเวอร์ชันของ CSS ที่แนะนำ [8]

ลวดลาย แมตช์ กำหนดครั้งแรก
ในระดับ CSS
E องค์ประกอบประเภท E 1
E:link องค์ประกอบ E คือจุดยึดต้นทางของไฮเปอร์ลิงก์ที่ยังไม่ได้เข้าชมเป้าหมาย (:ลิงก์) หรือเข้าชมแล้ว (:เข้าชมแล้ว) 1
E:active องค์ประกอบ E ระหว่างการกระทำบางอย่างของผู้ใช้ 1
E::first-line รูปแบบบรรทัดแรกขององค์ประกอบ E 1
E::first-letter ตัวอักษรรูปแบบแรกขององค์ประกอบ E 1
.c องค์ประกอบทั้งหมดที่มี class="c" 1
#myid องค์ประกอบที่มี id="myid" 1
E.warning องค์ประกอบ E ที่มีคลาสเป็น "คำเตือน" (ภาษาเอกสารระบุว่าคลาสถูกกำหนดอย่างไร) 1
E#myid องค์ประกอบ E ที่มี ID เท่ากับ "myid" 1
.c#myid องค์ประกอบที่มี class="c" และ ID เท่ากับ "myid" 1
E F ลูกหลานขององค์ประกอบ F ขององค์ประกอบ E 1
* องค์ประกอบใด ๆ 2
E[foo] องค์ประกอบ E ที่มีแอตทริบิวต์ "foo" 2
E[foo="bar"] องค์ประกอบ E ที่มีค่าแอตทริบิวต์ "foo" เท่ากับ "bar" ทุกประการ 2
E[foo~="bar"] องค์ประกอบ E ที่มีค่าแอตทริบิวต์ "foo" เป็นรายการค่าที่คั่นด้วยช่องว่าง ซึ่งค่าหนึ่งมีค่าเท่ากับ "แถบ" ทุกประการ 2
E[foo|="en"] องค์ประกอบ E ที่มีแอตทริบิวต์ "foo" มีรายการค่าที่คั่นด้วยยัติภังค์ซึ่งขึ้นต้น (จากด้านซ้าย) ด้วย "en" 2
E:first-child องค์ประกอบ E ลูกคนแรกของผู้ปกครอง 2
E:lang(fr) องค์ประกอบประเภท E ในภาษา "fr" (ภาษาเอกสารระบุว่าภาษาถูกกำหนดอย่างไร) 2
E::before สร้างเนื้อหาก่อนเนื้อหาขององค์ประกอบ E 2
E::after สร้างเนื้อหาหลังจากเนื้อหาขององค์ประกอบ E 2
E > F ลูกองค์ประกอบ F ขององค์ประกอบ E 2
E + F องค์ประกอบ F นำหน้าด้วยองค์ประกอบ E ทันที 2
E[foo^="bar"] องค์ประกอบ E ที่มีค่าแอตทริบิวต์ "foo" ขึ้นต้นด้วยสตริง "bar" 3
E[foo$="bar"] องค์ประกอบ E ที่มีค่าแอตทริบิวต์ "foo" ลงท้ายด้วยสตริง "bar" 3
E[foo*="bar"] องค์ประกอบ E ที่มีค่าแอตทริบิวต์ "foo" มีสตริงย่อย "bar" 3
E:root องค์ประกอบ E รูทของเอกสาร 3
E:nth-child(n) องค์ประกอบ E ลูกที่ n ของผู้ปกครอง 3
E:nth-last-child(n) องค์ประกอบ E ลูกที่ n ของผู้ปกครอง นับจากอันสุดท้าย 3
E:nth-of-type(n) องค์ประกอบ E พี่น้องที่ n ของประเภท 3
E:nth-last-of-type(n) องค์ประกอบ E พี่น้องลำดับที่ n ของประเภท นับจากอันสุดท้าย 3
E:last-child องค์ประกอบ E ลูกคนสุดท้ายของผู้ปกครอง 3
E:first-of-type องค์ประกอบ E พี่น้องคนแรกของประเภท 3
E:last-of-type องค์ประกอบ E พี่น้องคนสุดท้ายของประเภท 3
E:only-child องค์ประกอบ E ลูกคนเดียวของผู้ปกครอง 3
E:only-of-type องค์ประกอบ E พี่น้องเท่านั้นของประเภท 3
E:empty องค์ประกอบ E ที่ไม่มีลูก (รวมถึงโหนดข้อความ) 3
E:target องค์ประกอบ E เป็นเป้าหมายของ URI ที่อ้างอิง 3
E:enabled องค์ประกอบส่วนต่อประสานผู้ใช้ E ที่เปิดใช้งาน 3
E:disabled องค์ประกอบส่วนต่อประสานผู้ใช้ E ที่ปิดใช้งาน 3
E:checked องค์ประกอบส่วนต่อประสานผู้ใช้ E ที่ทำเครื่องหมายไว้ (เช่น ปุ่มตัวเลือกหรือช่องทำเครื่องหมาย) 3
E:not(s) องค์ประกอบ E ที่ไม่ตรงกับตัวเลือกง่ายๆ s 3
E ~ F องค์ประกอบ F นำหน้าด้วยองค์ประกอบ E 3

บล็อกประกาศ

บล็อกการประกาศประกอบด้วยรายการของการประกาศในวงเล็บปีกกา แต่ละคนประกาศตัวเองประกอบด้วยคุณสมบัติ , ลำไส้ใหญ่ ( :) และค่า หากมีหลายการประกาศในบล็อก;จะต้องแทรกเซมิโคลอน ( ) เพื่อแยกการประกาศแต่ละรายการ ตัวเลือกลำไส้ใหญ่กึ่งหลังจากที่ผ่านมา (หรือเดี่ยว) ประกาศอาจจะถูกใช้ [9]

คุณสมบัติระบุไว้ในมาตรฐาน CSS แต่ละคุณสมบัติมีชุดของค่าที่เป็นไปได้ คุณสมบัติบางอย่างอาจส่งผลต่อองค์ประกอบประเภทใดก็ได้ และคุณสมบัติอื่นๆ ใช้กับกลุ่มขององค์ประกอบบางกลุ่มเท่านั้น [10] [11]

ค่าอาจเป็นคีย์เวิร์ด เช่น "center" หรือ "inherit" หรือค่าตัวเลข เช่น200px(200 พิกเซล) 50vw(50 เปอร์เซ็นต์ของความกว้างของวิวพอร์ต) หรือ80% (80 เปอร์เซ็นต์ของความกว้างขององค์ประกอบหลัก) ค่าสีสามารถระบุได้ด้วยคีย์เวิร์ด (เช่น " ") ค่าฐานสิบหก (เช่นย่อมาจาก) ค่า RGB ในระดับ 0 ถึง 255 (เช่น) ค่า RGBA ที่ระบุทั้งสีและความโปร่งใสของอัลฟา (เช่น) หรือ HSL หรือค่า HSLA (เช่น, ) (12)red#FF0000#F00rgb(255, 0, 0)rgba(255, 0, 0, 0.8)hsl(000, 100%, 50%)hsla(000, 100%, 50%, 80%)

หน่วยความยาว

ค่าตัวเลขที่ไม่ใช่ศูนย์ที่แสดงการวัดเชิงเส้นต้องมีหน่วยความยาว ซึ่งเป็นรหัสตัวอักษรหรือตัวย่อ เช่น ใน200pxหรือ50vw; หรือเครื่องหมายเปอร์เซ็นต์ เช่น80%. บางหน่วย – cm( เซนติเมตร ); in( นิ้ว ); mm( มิลลิเมตร ); pc( พิก้า ); และpt( จุด ) – เป็นค่าสัมบูรณ์ซึ่งหมายความว่ามิติที่แสดงผลไม่ขึ้นอยู่กับโครงสร้างของหน้า อื่นๆ – em( em ); ex( อดีต ) และpx( พิกเซล ) – สัมพันธ์กันซึ่งหมายความว่าปัจจัยต่างๆ เช่น ขนาดแบบอักษรขององค์ประกอบหลักสามารถส่งผลต่อการวัดที่แสดงผล แปดหน่วยเหล่านี้เป็นคุณลักษณะของ CSS 1 [13]และเก็บไว้ในการแก้ไขที่ตามมาทั้งหมด CSS Values ​​and Units Module Level 3 ที่เสนอ หากนำมาใช้เป็นคำแนะนำ W3C จะมีหน่วยความยาวเพิ่มเติมอีกเจ็ดหน่วย: ch; Q; rem; vh; vmax; vmin; และvw. [14]

ใช้

ก่อน CSS แอตทริบิวต์การนำเสนอเกือบทั้งหมดของเอกสาร HTML อยู่ในมาร์กอัป HTML ต้องอธิบายสีแบบอักษร ลักษณะพื้นหลัง การจัดแนวองค์ประกอบ เส้นขอบและขนาดทั้งหมดอย่างชัดเจนภายใน HTML บ่อยครั้ง CSS ช่วยให้ผู้เขียนย้ายข้อมูลส่วนใหญ่ไปยังไฟล์อื่น ซึ่งก็คือสไตล์ชีต ส่งผลให้ HTML ง่ายขึ้นมาก

ตัวอย่างเช่น ส่วนหัว ( h1องค์ประกอบ) หัวข้อh2ย่อย ( h3) หัวข้อย่อย ( ) ฯลฯ ถูกกำหนดโครงสร้างโดยใช้ HTML ในการพิมพ์และบนหน้าจอทางเลือกของตัวอักษร , ขนาด , สีและเน้นสำหรับองค์ประกอบเหล่านี้คือpresentational

ก่อน CSS ผู้เขียนเอกสารที่ต้องการกำหนดลักษณะการพิมพ์ดังกล่าวh2ส่วนหัวทั้งหมดต้องมาร์กอัปการนำเสนอ HTML ซ้ำ สำหรับการเกิดขึ้นแต่ละครั้งของประเภทส่วนหัวนั้น ทำให้เอกสารมีความซับซ้อนมากขึ้น มีขนาดใหญ่ขึ้น และเกิดข้อผิดพลาดได้ง่ายยิ่งขึ้น และดูแลรักษายาก CSS ช่วยให้สามารถแยกการนำเสนอออกจากโครงสร้างได้ CSS สามารถกำหนดสี แบบอักษร การจัดตำแหน่งข้อความ ขนาด เส้นขอบ ระยะห่าง เลย์เอาต์ และลักษณะการพิมพ์อื่นๆ ได้มากมาย และสามารถทำได้แยกกันสำหรับมุมมองบนหน้าจอและแบบพิมพ์ CSS ยังกำหนดรูปแบบที่ไม่ใช่ภาพ เช่น ความเร็วในการอ่านและการเน้นสำหรับผู้อ่านข้อความเกี่ยวกับหูW3Cได้ตอนนี้เลิกใช้ทั้งหมด presentational HTML มาร์กอัป[15]

ตัวอย่างเช่น ภายใต้ pre-CSS HTML องค์ประกอบส่วนหัวที่กำหนดด้วยข้อความสีแดงจะถูกเขียนเป็น:

< h1 >< font  color = "red" >บทที่ 1 </ font ></ h1 >

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

< h1  style = "สี: สีแดง;" >บทที่ 1 </ h1 >

ข้อดีของสิ่งนี้อาจไม่ชัดเจนในทันที แต่พลังของ CSS นั้นชัดเจนยิ่งขึ้นเมื่อวางคุณสมบัติของสไตล์ในองค์ประกอบสไตล์ภายในหรือไฟล์ CSS ภายนอกที่ดียิ่งขึ้น ตัวอย่างเช่น สมมติว่าเอกสารมีองค์ประกอบสไตล์:

< style > 
    h1  { 
        สี:  แดง; 
    } 
</ style >

h1องค์ประกอบทั้งหมดในเอกสารจะกลายเป็นสีแดงโดยอัตโนมัติโดยไม่ต้องใช้รหัสที่ชัดเจน หากภายหลังผู้เขียนต้องการทำให้h1องค์ประกอบเป็นสีน้ำเงินแทน สามารถทำได้โดยเปลี่ยนองค์ประกอบสไตล์เป็น:

< style > 
    h1  { 
        สี:  ฟ้า; 
    } 
</ style >

แทนที่จะใช้ความอุตสาหะในการดูเอกสารและเปลี่ยนสีสำหรับแต่ละh1องค์ประกอบ

สไตล์ยังสามารถวางในไฟล์ CSS ภายนอกตามที่อธิบายไว้ด้านล่าง และโหลดโดยใช้ไวยากรณ์ที่คล้ายกับ:

< link  href = "path/to/file.css"  rel = "stylesheet"  type = "text/css" >

สิ่งนี้จะแยกการจัดสไตล์ออกจากเอกสาร HTML และทำให้สามารถจัดรูปแบบเอกสารหลายฉบับใหม่ได้โดยเพียงแค่แก้ไขไฟล์ CSS ภายนอกที่แชร์

ที่มา

ข้อมูล CSS ได้จากแหล่งต่างๆ แหล่งที่มาเหล่านี้อาจเป็นเว็บเบราว์เซอร์ ผู้ใช้ และผู้แต่ง ข้อมูลจากผู้เขียนสามารถจำแนกเพิ่มเติมได้เป็นอินไลน์ ประเภทสื่อ ความสำคัญ ความเฉพาะเจาะจงของตัวเลือก ลำดับกฎ การสืบทอด และคำจำกัดความคุณสมบัติ ข้อมูลรูปแบบ CSS สามารถอยู่ในเอกสารแยกต่างหาก หรือสามารถฝังลงในเอกสาร HTML ได้ นำเข้าสไตล์ชีตได้หลายแบบ สามารถใช้สไตล์ที่แตกต่างกันได้ขึ้นอยู่กับอุปกรณ์ส่งออกที่ใช้ ตัวอย่างเช่น เวอร์ชันหน้าจออาจแตกต่างจากเวอร์ชันที่พิมพ์ได้ค่อนข้างมาก เพื่อให้ผู้เขียนสามารถปรับแต่งการนำเสนอได้อย่างเหมาะสมสำหรับแต่ละสื่อ

สไตล์ชีตที่มีลำดับความสำคัญสูงสุดจะควบคุมการแสดงเนื้อหา การประกาศที่ไม่ได้ตั้งค่าในแหล่งที่มาที่มีลำดับความสำคัญสูงสุดจะถูกส่งไปยังแหล่งที่มาที่มีลำดับความสำคัญต่ำกว่า เช่น รูปแบบตัวแทนผู้ใช้ กระบวนการนี้เรียกว่าซ้อน

หนึ่งในเป้าหมายของ CSS คือการอนุญาตให้ผู้ใช้ควบคุมการนำเสนอได้ดียิ่งขึ้น คนที่พบว่าหัวเอียงสีแดงอ่านยากอาจใช้สไตล์ชีตอื่น ขึ้นอยู่กับเบราว์เซอร์และเว็บไซต์ ผู้ใช้อาจเลือกสไตล์ชีตต่างๆ ที่ออกแบบโดยนักออกแบบ หรืออาจลบสไตล์ที่เพิ่มทั้งหมดและดูไซต์โดยใช้สไตล์เริ่มต้นของเบราว์เซอร์ หรืออาจแทนที่เฉพาะรูปแบบส่วนหัวของตัวเอียงสีแดงโดยไม่เปลี่ยนแปลงส่วนอื่นๆ คุณลักษณะ.

รูปแบบลำดับความสำคัญ CSS (จากมากไปน้อย)
ลำดับความสำคัญ ประเภทแหล่งที่มา CSS คำอธิบาย
1 ความสำคัญ "การ" บันทึกย่อเขียนทับประเภทลำดับความสำคัญก่อนหน้านี้ !important
2 อินไลน์ สไตล์ที่ใช้กับองค์ประกอบ HTML ผ่านแอตทริบิวต์ "สไตล์" ของ HTML
3 ประเภทสื่อ นิยามคุณสมบัติใช้กับสื่อทุกประเภท เว้นแต่กำหนด CSS เฉพาะสื่อ
4 ผู้ใช้กำหนด เบราว์เซอร์ส่วนใหญ่มีคุณสมบัติการช่วยสำหรับการเข้าถึง: ผู้ใช้กำหนด CSS
5 ความจำเพาะของตัวเลือก ตัวเลือกบริบทเฉพาะ ( ) เขียนทับคำจำกัดความทั่วไป #heading p
6 กฏระเบียบ การประกาศกฎข้อสุดท้ายมีลำดับความสำคัญสูงกว่า
7 มรดกพ่อแม่ หากไม่ได้ระบุคุณสมบัติ จะสืบทอดมาจากองค์ประกอบหลัก
8 นิยามคุณสมบัติ CSS ในเอกสาร HTML กฎ CSS หรือรูปแบบอินไลน์ CSS เขียนทับค่าเบราว์เซอร์เริ่มต้น
9 ค่าเริ่มต้นของเบราว์เซอร์ ลำดับความสำคัญต่ำสุด: ค่าเริ่มต้นของเบราว์เซอร์กำหนดโดยข้อกำหนดค่าเริ่มต้นของ W3C

ความจำเพาะ

ความจำเพาะหมายถึงน้ำหนักสัมพัทธ์ของกฎต่างๆ [16]กำหนดลักษณะที่จะนำไปใช้กับองค์ประกอบเมื่อสามารถใช้กฎได้มากกว่าหนึ่งกฎ ตามข้อกำหนด ตัวเลือกอย่างง่าย (เช่น H1) มีความจำเพาะ 1, ตัวเลือกคลาสมีความจำเพาะ 1,0 และตัวเลือก ID มีความจำเพาะ 1,0,0 เนื่องจากค่าความจำเพาะไม่ส่งต่อเหมือนในระบบทศนิยม เครื่องหมายจุลภาคจึงใช้เพื่อแยก "ตัวเลข" [17] (กฎ CSS ที่มี 11 องค์ประกอบและ 11 คลาสจะมีความจำเพาะที่ 11,11 ไม่ใช่ 121)

ดังนั้นตัวเลือกกฎต่อไปนี้ส่งผลให้เกิดความจำเพาะที่ระบุ:

ตัวเลือก ความจำเพาะ
h1 {color: white;} 0, 0, 0, 1
p em {color: green;} 0, 0, 0, 2
.grape {color: red;} 0, 0, 1, 0
p.bright {color: blue;} 0, 0, 1, 1
p.bright em.dark {color: yellow;} 0, 0, 2, 2
#id218 {color: brown;} 0, 1, 0, 0
style=" " 1, 0, 0, 0

ตัวอย่าง

พิจารณาส่วน HTML นี้:

<!DOCTYPE html> 
< html > 
    < head > 
        < meta  charset = "utf-8" > 
        < style > 
            # xyz  {  color :  blue ;  } 
        </ style > 
    </ head > 
    < body > 
        < p  id = "xyz"  style = "color: green;" >เพื่อแสดงความจำเพาะ</ p > 
    </ body > 
</ html >

ในตัวอย่างข้างต้น การประกาศในstyleแอตทริบิวต์จะแทนที่การประกาศใน<style>องค์ประกอบเนื่องจากมีความจำเพาะสูงกว่า ดังนั้นย่อหน้าจึงปรากฏเป็นสีเขียว

มรดก

การสืบทอดเป็นคุณสมบัติหลักใน CSS; มันอาศัยความสัมพันธ์ระหว่างบรรพบุรุษกับลูกหลานในการดำเนินการ การสืบทอดเป็นกลไกที่ใช้คุณสมบัติไม่เพียงกับองค์ประกอบที่ระบุเท่านั้น แต่ยังรวมถึงลูกหลานด้วย [16] การสืบทอดอาศัยโครงสร้างเอกสาร ซึ่งเป็นลำดับชั้นของXHTMLองค์ประกอบในหน้าตามการซ้อน องค์ประกอบสืบทอดอาจสืบทอดค่าคุณสมบัติ CSS จากองค์ประกอบบรรพบุรุษที่ล้อมรอบพวกเขา โดยทั่วไป องค์ประกอบสืบทอดจะสืบทอดคุณสมบัติที่เกี่ยวข้องกับข้อความ แต่คุณสมบัติที่เกี่ยวข้องกับกล่องจะไม่สืบทอดมา คุณสมบัติที่สามารถสืบทอดได้ ได้แก่ สี แบบอักษร การเว้นวรรคตัวอักษร ความสูงของบรรทัด รูปแบบรายการ การจัดแนวข้อความ การเยื้องข้อความ การแปลงข้อความ การมองเห็น ช่องว่างสีขาว และการเว้นวรรคคำ คุณสมบัติที่ไม่สามารถสืบทอดได้ ได้แก่ พื้นหลัง เส้นขอบ แสดง ลอยและชัดเจน ความสูง และความกว้าง ระยะขอบ ความสูงและความกว้างต่ำสุดและสูงสุด โครงร่าง ล้น ช่องว่างภายใน ตำแหน่ง การตกแต่งข้อความ การจัดแนวแนวตั้ง และ z -ดัชนี.

สามารถใช้การสืบทอดเพื่อหลีกเลี่ยงการประกาศคุณสมบัติบางอย่างซ้ำแล้วซ้ำอีกในสไตล์ชีต ซึ่งช่วยให้ CSS สั้นลง

การสืบทอดใน CSS นั้นไม่เหมือนกับการสืบทอดในภาษาการเขียนโปรแกรมแบบอิงคลาสซึ่งเป็นไปได้ที่จะกำหนดคลาส B ว่า "เหมือนคลาส A แต่มีการดัดแปลง" [18]ด้วย CSS คุณสามารถจัดรูปแบบองค์ประกอบด้วย "คลาส A แต่มีการดัดแปลง" อย่างไรก็ตาม เป็นไปไม่ได้ที่จะกำหนด CSS คลาส B แบบนั้น ซึ่งสามารถใช้เพื่อจัดรูปแบบองค์ประกอบหลายรายการโดยไม่ต้องทำการแก้ไขซ้ำ

ตัวอย่าง

รับสไตล์ชีตต่อไปนี้:

h1  { 
   สี:  ชมพู; 
}

สมมติว่ามีองค์ประกอบ h1 ที่มีองค์ประกอบเน้น (em) อยู่ภายใน:

< h1 > 
   นี่คือการ< em >แสดง</ em >มรดก
 </ h1 >

หากไม่มีการกำหนดสีให้กับองค์ประกอบ em คำว่า "illustrate" ที่เน้นสีจะสืบทอดสีขององค์ประกอบหลัก h1 สไตล์ชีต h1 มีสีชมพู ดังนั้นองค์ประกอบ em จึงเป็นสีชมพูเช่นเดียวกัน

ช่องว่าง

ช่องว่างระหว่างคุณสมบัติและตัวเลือกจะถูกละเว้น ข้อมูลโค้ดนี้:

ร่างกาย{ ล้น: ซ่อน; พื้นหลัง: #000000 ; ภาพพื้นหลัง: url ( images/bg.gif ); background-repeat : ไม่ซ้ำ; พื้นหลังตำแหน่ง: ซ้าย บน;}

ใช้งานได้เทียบเท่ากับสิ่งนี้:

ร่างกาย { 
   ล้น:  ซ่อน; 
   สีพื้นหลัง:  #000000 ; 
   ภาพพื้นหลัง:  url ( images/bg.gif ); 
   background-repeat :  ไม่ซ้ำ; 
   พื้นหลังตำแหน่ง:  ซ้าย บน; 
}

วิธีหนึ่งทั่วไปในการจัดรูปแบบ CSS เพื่อให้อ่านง่ายคือการเยื้องแต่ละคุณสมบัติและกำหนดบรรทัดของตัวเอง นอกจากการจัดรูปแบบ CSS เพื่อให้อ่านง่ายแล้ว คุณสามารถใช้คุณสมบัติชวเลขเพื่อเขียนโค้ดได้เร็วขึ้น ซึ่งจะได้รับการประมวลผลเร็วขึ้นเมื่อแสดงผล: [19]

ร่างกาย { 
   ล้น:  ซ่อน; 
   พื้นหลัง:  #000  url ( images/bg.gif )  ไม่ซ้ำ ด้าน บนซ้าย; 
}

การวางตำแหน่ง

CSS 2.1 กำหนดรูปแบบการวางตำแหน่งสามรูปแบบ:

การไหลปกติ
รายการในบรรทัดจะถูกจัดวางในลักษณะเดียวกับตัวอักษรในคำในข้อความ ทีละรายการในพื้นที่ว่างที่มีอยู่จนกว่าจะไม่มีที่ว่างเหลือ จากนั้นจึงขึ้นบรรทัดใหม่ด้านล่าง บล็อกรายการเรียงซ้อนในแนวตั้ง เช่น ย่อหน้า และชอบรายการในรายการหัวข้อย่อย โฟลว์ปกติยังรวมถึงการวางตำแหน่งสัมพันธ์ของรายการบล็อกหรืออินไลน์ และกล่องรันอิน
ลอยน้ำ
สิ่งของที่ลอยอยู่จะถูกนำออกจากกระแสปกติและเลื่อนไปทางซ้ายหรือขวาให้มากที่สุดในพื้นที่ที่มี เนื้อหาอื่นจะไหลควบคู่ไปกับรายการที่ลอยอยู่
ตำแหน่งที่แน่นอน
สิ่งของที่อยู่ในตำแหน่งที่แน่นอนไม่มีที่เข้า และไม่มีผลกระทบต่อการไหลปกติของสิ่งของอื่นๆ มันใช้ตำแหน่งที่ได้รับมอบหมายในคอนเทนเนอร์โดยไม่ขึ้นกับรายการอื่นๆ (20)

คุณสมบัติตำแหน่ง

มีห้าค่าที่เป็นไปได้ของpositionคุณสมบัติ ถ้ารายการที่อยู่ในตำแหน่งในทางอื่น ๆ กว่าใด ๆstaticแล้วคุณสมบัติที่เพิ่มเติมtop, bottom, leftและrightจะใช้ในการระบุการชดเชยและองค์ประกอบ positions.The มีตำแหน่งคงไม่ได้รับผลกระทบจาก top, bottom, leftหรือ rightคุณสมบัติ

คงที่
ค่าเริ่มต้นวางรายการในโฟลว์ปกติ
ญาติ
รายการถูกวางในโฟลว์ปกติแล้วเลื่อนหรือออฟเซ็ตจากตำแหน่งนั้น รายการโฟลว์ที่ตามมาจะถูกจัดวางราวกับว่ารายการนั้นไม่ได้ถูกย้าย
แอบโซลูท
ระบุตำแหน่งแน่นอน องค์ประกอบอยู่ในตำแหน่งที่สัมพันธ์กับบรรพบุรุษที่ไม่คงที่ที่ใกล้ที่สุด
แก้ไขแล้ว
รายการอยู่ในตำแหน่งที่แน่นอนบนหน้าจอแม้ในขณะที่ส่วนที่เหลือของเอกสารถูกเลื่อน[20]

ลอยและชัดเจน

floatคุณสมบัติอาจจะมีหนึ่งในสามของค่า ไม่สามารถลอยรายการตำแหน่งที่แน่นอนหรือคงที่ได้ องค์ประกอบอื่น ๆ ได้ตามปกติการไหลของรายการรอบลอยจนกว่าพวกเขาจะมีการป้องกันจากการทำเช่นนี้โดยพวกเขาclearคุณสมบัติ

ซ้าย
รายการลอยอยู่ทางด้านซ้ายของบรรทัดที่มันจะปรากฏ รายการอื่นอาจไหลไปทางด้านขวา
ขวา
รายการลอยอยู่ทางด้านขวาของบรรทัดที่มันจะปรากฏ สิ่งของอื่นๆ อาจไหลไปทางด้านซ้าย
แจ่มใส
บังคับให้องค์ประกอบปรากฏภายใต้ ('ชัดเจน') องค์ประกอบลอยไปทางซ้าย ( ), ขวา ( ) หรือทั้งสองด้าน ( ) (20) [21]clear:leftclear:rightclear:both

ประวัติ

Håkon Wium Lieหัวหน้าฝ่ายเทคนิคของบริษัท Opera Software และผู้ร่วมสร้างมาตรฐานเว็บ CSS

CSS ถูกเสนอครั้งแรกโดยHåkon Wium Lieที่ 10 ตุลาคม 1994 [22]ในขณะที่โกหกได้ทำงานกับTim Berners-Leeที่เซิร์น [23]ภาษาสไตล์ชีตอื่น ๆ อีกหลายภาษาสำหรับเว็บได้รับการเสนอในเวลาเดียวกัน และการอภิปรายเกี่ยวกับรายชื่อผู้รับจดหมายสาธารณะและภายในWorld Wide Web Consortiumส่งผลให้มีการแนะนำ W3C CSS (CSS1) ฉบับแรก[24]ออกในปี พ.ศ. 2539 โดยเฉพาะ ข้อเสนอของเบิร์ต บอสมีอิทธิพลมาก เขากลายเป็นผู้ร่วมเขียน CSS1 และถือเป็นผู้ร่วมสร้าง CSS [25]

สไตล์ชีตมีอยู่ในรูปแบบใดรูปแบบหนึ่งตั้งแต่เริ่มต้น Standard Generalized Markup Language ( SGML ) ในทศวรรษ 1980 และ CSS ได้รับการพัฒนาเพื่อจัดเตรียมสไตล์ชีตสำหรับเว็บ[26]ข้อกำหนดประการหนึ่งสำหรับภาษาของสไตล์ชีตของเว็บคือสำหรับสไตล์ชีตที่มาจากแหล่งต่างๆ บนเว็บ ดังนั้น ภาษาของสไตล์ชีตที่มีอยู่ เช่นDSSSLและFOSIจึงไม่เหมาะ ในทางกลับกัน CSS ให้สไตล์ของเอกสารได้รับอิทธิพลจากสไตล์ชีตหลายแบบโดยใช้สไตล์ "เรียงซ้อน" (26)

เป็น HTML ขึ้นมาเพื่อให้ครอบคลุมความหลากหลายมากขึ้นของความสามารถในโวหารเพื่อตอบสนองความต้องการของนักพัฒนาเว็บวิวัฒนาการนี้ทำให้นักออกแบบสามารถควบคุมลักษณะที่ปรากฏของไซต์ได้มากขึ้น โดยใช้ HTML ที่ซับซ้อนมากขึ้น รูปแบบในเว็บเบราเซอร์การใช้งานเช่นViolaWWWและWorldWideWeb , [27]ปรากฏตัวเว็บไซต์สอดคล้องยากและผู้ใช้ต้องควบคุมน้อยกว่าวิธีการที่เนื้อหาเว็บแสดง เบราว์เซอร์/ตัวแก้ไขที่พัฒนาโดย Tim Berners-Lee มีสไตล์ชีตที่ฮาร์ดโค้ดลงในโปรแกรม ดังนั้นจึงไม่สามารถเชื่อมโยงสไตล์ชีตกับเอกสารบนเว็บได้[23]โรเบิร์ต ไคลิอู เช่นเดียวกับ CERN ที่ต้องการแยกโครงสร้างออกจากการนำเสนอเพื่อให้สไตล์ชีตที่แตกต่างกันสามารถอธิบายการนำเสนอที่แตกต่างกันสำหรับการพิมพ์ การนำเสนอบนหน้าจอ และบรรณาธิการ[27]

การปรับปรุงความสามารถในการนำเสนอเว็บเป็นหัวข้อที่น่าสนใจสำหรับหลาย ๆ คนในชุมชนเว็บ และมีการเสนอภาษาของสไตล์ชีตที่แตกต่างกัน 9 ภาษาในรายการส่งเมลแบบ www [26]จากข้อเสนอเก้าข้อนี้ สองข้อเสนอมีอิทธิพลอย่างยิ่งต่อสิ่งที่กลายเป็น CSS: Cascading HTML Style Sheets [22]และ Stream-based Style Sheet Proposal (SSP) [25] [28]สองเบราว์เซอร์ทำหน้าที่เป็นเตียงทดสอบสำหรับข้อเสนอเบื้องต้น Lie ทำงานร่วมกับYves Lafonเพื่อปรับใช้ CSS ในเบราว์เซอร์ArenaของDave Raggett [29] [30] [31]เบิร์ต บอส ใช้ข้อเสนอ SSP ของเขาเองในเบราว์เซอร์Argo [25]หลังจากนั้น Lie และ Bos ได้ทำงานร่วมกันเพื่อพัฒนามาตรฐาน CSS (ตัว 'H' ถูกลบออกจากชื่อเนื่องจากสไตล์ชีตเหล่านี้สามารถนำไปใช้กับภาษามาร์กอัปอื่นๆ นอกเหนือจาก HTML ได้) [23]

ข้อเสนอของ Lie ถูกนำเสนอในการประชุม " Mosaic and the Web " (ภายหลังเรียกว่า WWW2) ในเมืองชิคาโก รัฐอิลลินอยส์ ในปี 1994 และอีกครั้งกับ Bert Bos ในปี 1995 [23]ในช่วงเวลานี้ W3C ได้ถูกสร้างขึ้นแล้วและได้รับความสนใจ ในการพัฒนา CSS มันจัดอบรมเชิงปฏิบัติการในช่วงท้ายที่เป็นประธานโดยสตีเฟนเพมเบอร์ตันส่งผลให้ W3C เพิ่มงานใน CSS ให้กับผลงานของคณะกรรมการตรวจสอบบรรณาธิการ HTML (ERB) Lie และ Bos เป็นเจ้าหน้าที่ด้านเทคนิคหลักในด้านนี้ของโครงการ โดยมีสมาชิกเพิ่มเติม รวมถึงThomas Reardonจาก Microsoft เข้าร่วมด้วย ในเดือนสิงหาคม พ.ศ. 2539 Netscape Communication Corporation ได้นำเสนอภาษาสไตล์ชีตทางเลือกที่เรียกว่าสไตล์ชีต JavaScript (JSSS) [23]ข้อมูลจำเพาะยังไม่เสร็จสิ้น และเลิกใช้แล้ว [32]ภายในสิ้นปี 2539 CSS ก็พร้อมที่จะเป็นทางการ และคำแนะนำ CSS ระดับ 1 ได้รับการเผยแพร่ในเดือนธันวาคม

การพัฒนา HTML, CSS และDOMทั้งหมดเกิดขึ้นในกลุ่มเดียว นั่นคือ HTML Editorial Review Board (ERB) ในช่วงต้นปี 1997 ERB ถูกแบ่งออกเป็นสามกลุ่มงาน: HTML Working groupโดยมีDan Connollyแห่ง W3C เป็นประธาน; คณะทำงาน DOM โดยมี Lauren Wood แห่งSoftQuadเป็นประธาน; และCSS Working groupโดยมีChris Lilleyแห่ง W3C เป็นประธาน

คณะทำงาน CSS เริ่มจัดการกับปัญหาที่ไม่ได้รับการจัดการกับ CSS ระดับ 1 ส่งผลให้มีการสร้าง CSS ระดับ 2 เมื่อวันที่ 4 พฤศจิกายน 1997 ได้รับการตีพิมพ์เป็นคำแนะนำของ W3C เมื่อวันที่ 12 พฤษภาคม 1998 CSS ระดับ 3 ซึ่งเป็น เริ่มในปี 2541 ยังอยู่ระหว่างการพัฒนาในปี 2557

ในปี 2548 คณะทำงาน CSS ได้ตัดสินใจที่จะบังคับใช้ข้อกำหนดสำหรับมาตรฐานต่างๆ อย่างเคร่งครัดมากขึ้น ซึ่งหมายความว่ามาตรฐานที่เผยแพร่แล้ว เช่น CSS 2.1, CSS 3 Selectors และ CSS 3 Text ถูกดึงกลับจาก Candidate Recommendation เป็น Working Draft

ความยากลำบากในการรับเลี้ยงบุตรบุญธรรม

ข้อกำหนด CSS 1 เสร็จสมบูรณ์ในปี 1996 Internet Explorer 3 [23]ของ Microsoft เปิดตัวในปีนั้น โดยมีการสนับสนุนที่จำกัดสำหรับ CSS IE 4และNetscape 4.x ได้เพิ่มการสนับสนุนมากขึ้น แต่โดยทั่วไปแล้วจะไม่สมบูรณ์และมีข้อบกพร่องมากมายที่ทำให้ CSS ไม่สามารถนำมาใช้ประโยชน์ได้ เป็นเวลากว่าสามปีก่อนที่เว็บเบราว์เซอร์ใด ๆ จะใช้งานข้อกำหนดนี้จนเกือบสมบูรณ์Internet Explorer 5.0สำหรับMacintoshซึ่งจัดส่งในเดือนมีนาคม 2000 เป็นเบราว์เซอร์ตัวแรกที่รองรับ CSS 1 เต็มรูปแบบ (ดีกว่า 99 เปอร์เซ็นต์) [33]เหนือกว่าOperaซึ่งเป็นผู้นำตั้งแต่เปิดตัว CSS รองรับเมื่อ 15 เดือนก่อน เบราว์เซอร์อื่นๆ ตามมาหลังจากนั้นไม่นาน และหลายๆ เบราว์เซอร์ได้นำส่วนต่างๆ ของ CSS 2 มาใช้เพิ่มเติม[ ต้องการการอ้างอิง ]

อย่างไรก็ตามแม้ในขณะที่ต่อมา 'รุ่น 5' เว็บเบราว์เซอร์เริ่มที่จะมีการดำเนินการอย่างเป็นธรรมเต็มรูปแบบของ CSS, พวกเขายังคงไม่ถูกต้องในบางพื้นที่และเต็มไปด้วยความไม่สอดคล้องกันแมลงและอื่น ๆ ที่นิสัยใจคอ Microsoft Internet Explorer 5.x สำหรับ Windowsต่างจากIE ที่แตกต่างกันมากสำหรับ Macintoshมีการนำ ' รูปแบบกล่อง CSS ' ไปใช้อย่างมีข้อบกพร่องเมื่อเทียบกับมาตรฐาน CSS ไม่สอดคล้องกันและการเปลี่ยนแปลงในการสนับสนุนคุณสมบัติดังกล่าวทำให้มันยากสำหรับนักออกแบบเพื่อให้บรรลุลักษณะที่สอดคล้องกันในเบราว์เซอร์และแพลตฟอร์มโดยไม่ต้องใช้วิธีการแก้ปัญหาที่เรียกว่าแฮ็ก CSS และฟิลเตอร์บั๊กของโมเดลกล่อง IE/Windows นั้นร้ายแรงมากเมื่อInternet Explorer 6เปิดตัวแล้ว Microsoft ได้แนะนำโหมดการตีความ CSS ที่เข้ากันได้แบบย้อนหลัง (' โหมด quirks ') ควบคู่ไปกับ 'โหมดมาตรฐาน' ที่แก้ไขแล้ว เบราว์เซอร์อื่นที่ไม่ใช่ของ Microsoft ยังให้ความสามารถในการทำงานของสวิตช์ 'โหมด' ดังนั้นจึงกลายเป็นสิ่งจำเป็นสำหรับผู้เขียนไฟล์HTMLเพื่อให้แน่ใจว่ามีเครื่องหมาย 'มาตรฐาน CSS ที่ตั้งใจไว้' ที่โดดเด่นเป็นพิเศษเพื่อแสดงว่าผู้เขียนตั้งใจให้ CSS ตีความอย่างถูกต้อง สอดคล้องกับมาตรฐาน ตรงข้ามกับที่ตั้งใจไว้เป็นเวลานานเบราว์เซอร์ IE5/Windows ที่ล้าสมัย. หากไม่มีเครื่องหมายนี้ เว็บเบราว์เซอร์ที่มีความสามารถในการสลับ 'โหมดแปลก' จะปรับขนาดวัตถุในหน้าเว็บเหมือนกับ IE5/Windows แทนที่จะปฏิบัติตามมาตรฐาน CSS [ ต้องการการอ้างอิง ]

ปัญหาเกี่ยวกับการนำ CSS มาใช้เป็นหย่อม ๆ ร่วมกับ errata ในข้อกำหนดดั้งเดิม ทำให้ W3C แก้ไขมาตรฐาน CSS 2 เป็น CSS 2.1 ซึ่งย้ายไปอยู่ใกล้สแนปชอตที่ใช้งานได้ของการสนับสนุน CSS ปัจจุบันในเบราว์เซอร์ HTML คุณสมบัติ CSS 2 บางอย่างที่เบราว์เซอร์ใช้งานไม่สำเร็จถูกละทิ้ง และในบางกรณี พฤติกรรมที่กำหนดไว้ก็เปลี่ยนไปเพื่อให้มาตรฐานสอดคล้องกับการใช้งานที่มีอยู่อย่างเด่นๆ CSS 2.1 กลายเป็น Candidate Recommendation เมื่อวันที่ 25 กุมภาพันธ์ พ.ศ. 2547 แต่ CSS 2.1 ถูกดึงกลับไปที่สถานะ Working Draft เมื่อวันที่ 13 มิถุนายน พ.ศ. 2548 [34]และกลับสู่สถานะ Candidate Recommendation ในวันที่ 19 กรกฎาคม พ.ศ. 2550 [35]

นอกเหนือจากปัญหาเหล่านี้.cssส่วนขยายยังถูกใช้โดยผลิตภัณฑ์ซอฟต์แวร์ที่ใช้ในการแปลงไฟล์PowerPointเป็นไฟล์ Compact Slide Show [36] ดังนั้นเว็บเซิร์ฟเวอร์บางแห่งจึงให้บริการทั้งหมด.css[37]เป็นประเภท MIME application/x-pointplus[38]แทนที่จะเป็นtext/css.

คำนำหน้าผู้ขาย

ผู้จำหน่ายเบราว์เซอร์แต่ละรายแนะนำพารามิเตอร์ใหม่เป็นครั้งคราวก่อนการทำให้เป็นมาตรฐานและการทำให้เป็นสากล เพื่อป้องกันไม่ให้ยุ่งกับการใช้งานในอนาคตผู้ขาย prepended ชื่อที่ไม่ซ้ำกับพารามิเตอร์เช่น-moz-สำหรับMozilla Firefox , -webkit-การตั้งชื่อตามเครื่องมือการเรียกดูของApple Safari , -o-สำหรับเบราเซอร์ Operaและ-ms-สำหรับMicrosoft Internet Explorer

ในบางครั้ง พารามิเตอร์ที่มีคำนำหน้าผู้ขาย เช่น-moz-radial-gradientและ-webkit-linear-gradientมีไวยากรณ์ที่แตกต่างกันเล็กน้อยเมื่อเปรียบเทียบกับคำนำหน้าที่ไม่ใช่ของผู้ขาย [39]

คุณสมบัตินำหน้าจะล้าสมัยเมื่อถึงเวลากำหนดมาตรฐาน มีโปรแกรมให้เพิ่มคำนำหน้าโดยอัตโนมัติสำหรับเบราว์เซอร์รุ่นเก่า และเพื่อชี้ให้เห็นพารามิเตอร์นำหน้าเวอร์ชันมาตรฐาน เนื่องจากคำนำหน้าจำกัดไว้เฉพาะส่วนย่อยของเบราว์เซอร์ การลบคำนำหน้าจะทำให้เบราว์เซอร์อื่นๆ มองเห็นฟังก์ชันการทำงานได้ ข้อยกเว้นคือ-webkit-คุณสมบัตินำหน้าที่ล้าสมัยซึ่งพบได้ทั่วไปและคงอยู่บนเว็บซึ่งเบราว์เซอร์ตระกูลอื่นๆ ได้ตัดสินใจสนับสนุนคุณสมบัติเหล่านี้เพื่อความเข้ากันได้ [40]

รูปแบบต่างๆ

CSS มีระดับและโปรไฟล์ที่หลากหลาย CSS แต่ละระดับสร้างขึ้นจากส่วนสุดท้าย โดยทั่วไปจะเพิ่มคุณสมบัติใหม่และโดยทั่วไปจะแสดงเป็น CSS 1, CSS 2, CSS 3 และ CSS 4 โดยทั่วไปแล้ว โปรไฟล์จะเป็นชุดย่อยของ CSS หนึ่งระดับขึ้นไปที่สร้างขึ้นสำหรับอุปกรณ์หรือส่วนต่อประสานผู้ใช้เฉพาะ . ปัจจุบันมีโปรไฟล์สำหรับอุปกรณ์พกพา เครื่องพิมพ์ และโทรทัศน์ โปรไฟล์ไม่ควรสับสนกับประเภทสื่อที่เพิ่มใน CSS 2

CSS 1

ข้อกำหนด CSS แรกที่จะกลายเป็นคำแนะนำของ W3C อย่างเป็นทางการคือ CSS ระดับ 1 ซึ่งเผยแพร่เมื่อวันที่ 17 ธันวาคม พ.ศ. 2539 Håkon Wium LieและBert Bosได้รับการยกย่องว่าเป็นนักพัฒนาดั้งเดิม [41] [42]ความสามารถของมันคือการสนับสนุนสำหรับ

  • คุณสมบัติแบบอักษรเช่น แบบอักษรและการเน้น
  • สีของข้อความ พื้นหลัง และองค์ประกอบอื่นๆ
  • คุณสมบัติข้อความ เช่น การเว้นวรรคระหว่างคำ ตัวอักษร และบรรทัดข้อความ
  • การจัดแนวข้อความ รูปภาพตารางและองค์ประกอบอื่นๆ
  • ขอบ ขอบ ช่องว่างภายใน และการวางตำแหน่งสำหรับองค์ประกอบส่วนใหญ่
  • การระบุเอกลักษณ์และการจำแนกประเภททั่วไปของกลุ่มคุณลักษณะ

W3C ไม่รักษา CSS 1 Recommendation อีกต่อไป [43]

CSS2

ข้อมูลจำเพาะ CSS ระดับ 2 ได้รับการพัฒนาโดย W3C และเผยแพร่เป็นคำแนะนำในเดือนพฤษภาคม 2541 ซูเปอร์เซ็ตของ CSS 1, CSS 2 มีความสามารถใหม่จำนวนหนึ่ง เช่น การจัดตำแหน่งองค์ประกอบแบบสัมบูรณ์ สัมพัทธ์ และตำแหน่งคงที่ และดัชนี zแนวคิดของ ประเภทสื่อ การรองรับสไตล์ชีตเกี่ยวกับหู (ซึ่งต่อมาถูกแทนที่ด้วยโมดูลเสียงพูด CSS 3) [44]และข้อความแบบสองทิศทาง และคุณสมบัติแบบอักษรใหม่ เช่น เงา

W3C ไม่รักษาคำแนะนำ CSS 2 อีกต่อไป [45]

CSS 2.1

การแก้ไข CSS ระดับ 2 1 ซึ่งมักเรียกว่า "CSS 2.1" แก้ไขข้อผิดพลาดใน CSS 2 ลบคุณลักษณะที่ได้รับการสนับสนุนไม่ดีหรือไม่สามารถทำงานร่วมกันได้อย่างสมบูรณ์ และเพิ่มส่วนขยายเบราว์เซอร์ที่ใช้งานแล้วลงในข้อกำหนด เพื่อให้สอดคล้องกับกระบวนการ W3C สำหรับการกำหนดมาตรฐานข้อกำหนดทางเทคนิค CSS 2.1 ได้สลับไปมาระหว่างสถานะ Working Draft และสถานะ Candidate Recommendation เป็นเวลาหลายปี CSS 2.1 กลายเป็นข้อแนะนำสำหรับผู้สมัครครั้งแรกเมื่อวันที่ 25 กุมภาพันธ์ พ.ศ. 2547 แต่ได้เปลี่ยนกลับไปเป็นแบบร่างการทำงานเมื่อวันที่ 13 มิถุนายน พ.ศ. 2548 เพื่อตรวจสอบเพิ่มเติม เอกสารนี้กลับมาที่ Candidate Recommendation เมื่อวันที่ 19 กรกฎาคม 2550 และอัปเดตสองครั้งในปี 2552 อย่างไรก็ตาม เนื่องจากมีการเปลี่ยนแปลงและการชี้แจง จึงกลับไปใช้ Last Call Working Draft อีกครั้งในวันที่ 7 ธันวาคม 2553

CSS 2.1 ไปที่ Proposed Recommendation เมื่อวันที่ 12 เมษายน 2011 [46]หลังจากได้รับการตรวจสอบโดยคณะกรรมการที่ปรึกษา W3C ในที่สุดก็ได้รับการตีพิมพ์เป็นคำแนะนำของ W3C เมื่อวันที่ 7 มิถุนายน 2554 [47]

CSS 2.1 ได้รับการวางแผนให้เป็นการแก้ไขครั้งแรกและครั้งสุดท้ายของระดับ 2—แต่งานที่มีลำดับความสำคัญต่ำใน CSS 2.2 เริ่มขึ้นในปี 2558

CSS3

ต่างจาก CSS 2 ซึ่งเป็นข้อกำหนดเดียวขนาดใหญ่ที่กำหนดคุณลักษณะต่างๆ CSS 3 ถูกแบ่งออกเป็นเอกสารหลายฉบับที่เรียกว่า "โมดูล" แต่ละโมดูลเพิ่มความสามารถใหม่หรือขยายคุณสมบัติที่กำหนดไว้ใน CSS 2 เพื่อรักษาความเข้ากันได้แบบย้อนหลัง งานเกี่ยวกับ CSS ระดับ 3 เริ่มต้นขึ้นในช่วงเวลาของการเผยแพร่คำแนะนำ CSS 2 ดั้งเดิม ฉบับร่าง CSS 3 แรกสุดถูกตีพิมพ์ในเดือนมิถุนายน พ.ศ. 2542 [48]

เนื่องจากโมดูลาร์ไดเซชั่น โมดูลต่างๆ จึงมีเสถียรภาพและสถานะต่างกัน [49]

โมดูลบางโมดูลมีสถานะการแนะนำผู้สมัคร ( CR ) และถือว่ามีเสถียรภาพปานกลาง ที่ขั้นตอนCRแนะนำให้ทำการปรับใช้เพื่อลบคำนำหน้าผู้ขาย [50]

สรุปข้อกำหนดของโมดูลหลัก[51]
โมดูล ชื่อข้อมูลจำเพาะ สถานะ วันที่
css3-พื้นหลัง CSS Backgrounds and Borders Module ระดับ 3  บันทึกผู้สมัคร ธ.ค. 2020
css3-box โมเดลกล่องพื้นฐาน CSS บันทึกผู้สมัคร ธ.ค. 2020
css-cascade-3 CSS Cascading and Inheritance ระดับ 3  คำแนะนำ ก.พ. 2564
css3-color CSS Color Module ระดับ 3 คำแนะนำ มิ.ย. 2018
css3-content โมดูลเนื้อหาที่สร้างและแทนที่ CSS3  ร่างการทำงาน2 ส.ค. 2019
css-fonts-3 CSS Fonts Module ระดับ 3 คำแนะนำ ก.ย. 2018
css3-gcpm เนื้อหาที่สร้างโดย CSS สำหรับโมดูลสื่อที่มีเพจ ร่างการทำงาน พฤษภาคม 2014
css3-layout โมดูลเค้าโครงเทมเพลต CSS บันทึก มี.ค. 2015
css3-mediaqueries  แบบสอบถามสื่อ คำแนะนำ มิ.ย. 2555
mediaqueries-4  แบบสอบถามสื่อระดับ 4 บันทึกผู้สมัคร ก.ค. 2020
css3-multicol  โมดูลเค้าโครงหลายคอลัมน์ระดับ 1 ร่างการทำงาน ก.พ. 2564
css3-page CSS Paged Media Module ระดับ 3 ร่างการทำงาน ต.ค. 2018
ตัวเลือก-3 ตัวเลือกระดับ 3 คำแนะนำ พ.ย. 2018
ตัวเลือก-4 ตัวเลือกระดับ 4 ร่างการทำงาน พ.ย. 2018
css3-ui CSS Basic User Interface Module ระดับ 3 (CSS3 UI) คำแนะนำ มิ.ย. 2018

CSS 4

Jen Simmonsพูดคุยเกี่ยวกับสถานะของ CSS ในปี 2019 เนื่องจาก โมดูลCSS 4 หลายโมดูลกำลังอยู่ในขั้นสูง

ไม่มีข้อกำหนด CSS4 แบบบูรณาการเดียว[52]เนื่องจากข้อกำหนดนี้ถูกแบ่งออกเป็นโมดูลที่แยกจากกันจำนวนมากซึ่งมีระดับอย่างอิสระ

โมดูลที่สร้างในสิ่งที่จาก CSS ระดับที่ 2 เริ่มต้นที่ระดับ 3 บางส่วนของพวกเขาได้มาถึงแล้วระดับ 4 หรือที่มีอยู่แล้วใกล้ระดับ 5 โมดูลอื่น ๆ ที่กำหนดฟังก์ชันการทำงานใหม่ทั้งหมดเช่นflexbox , [53]ได้รับการกำหนดให้เป็นระดับ 1 และบางส่วนก็ใกล้จะถึงระดับ 2 แล้ว

บางครั้ง คณะทำงาน CSS จะเผยแพร่ "Snapshots" ซึ่งเป็นชุดของโมดูลทั้งหมดและบางส่วนของแบบร่างอื่นๆ ที่ถือว่าเสถียรพอที่จะนำไปใช้โดยนักพัฒนาเบราว์เซอร์ จนถึงตอนนี้ เอกสาร "แนวทางปฏิบัติที่ดีที่สุดในปัจจุบัน" ห้าฉบับได้รับการเผยแพร่เป็น Notes ในปี 2550, [54] 2010, [55] 2015, [56] 2017, [57]และ 2018 [58]

เนื่องจากสแนปชอตข้อมูลจำเพาะเหล่านี้มีไว้สำหรับนักพัฒนาเป็นหลัก จึงมีความต้องการเพิ่มขึ้นสำหรับเอกสารอ้างอิงเวอร์ชันที่คล้ายกันซึ่งกำหนดเป้าหมายไปที่ผู้เขียน ซึ่งจะนำเสนอสถานะของการใช้งานที่ทำงานร่วมกันได้ในขณะที่จัดทำเอกสารโดยไซต์เช่น Can I Use… [59]และ Mozilla Developer เครือข่าย. [60]กลุ่มชุมชน W3C ได้รับการจัดตั้งขึ้นในต้นปี 2563 เพื่อหารือและกำหนดทรัพยากรดังกล่าว [61]ประเภทของการกำหนดเวอร์ชันที่แท้จริงนั้นขึ้นอยู่กับการถกเถียง ซึ่งหมายความว่าเอกสารที่สร้างขึ้นอาจไม่ถูกเรียกว่า "CSS4"

รองรับเบราว์เซอร์

เว็บเบราว์เซอร์แต่ละตัวใช้เอ็นจินการจัดวางเพื่อแสดงหน้าเว็บ และการรองรับฟังก์ชัน CSS นั้นไม่สอดคล้องกัน เนื่องจากเบราว์เซอร์ไม่ได้แยกวิเคราะห์ CSS อย่างสมบูรณ์ จึงมีการพัฒนาเทคนิคการเข้ารหัสหลายแบบเพื่อกำหนดเป้าหมายเบราว์เซอร์เฉพาะด้วยวิธีแก้ปัญหา (ที่รู้จักกันทั่วไปว่าCSS hacksหรือตัวกรอง CSS) การนำฟังก์ชันใหม่ใน CSS มาใช้อาจถูกขัดขวางโดยการขาดการสนับสนุนในเบราว์เซอร์หลัก ตัวอย่างเช่น Internet Explorer ได้เพิ่มการรองรับคุณลักษณะ CSS 3 จำนวนมากได้ช้า ซึ่งทำให้การนำคุณลักษณะเหล่านั้นไปใช้ช้าลงและทำให้นักพัฒนาซอฟต์แวร์เสียชื่อเสียงของเบราว์เซอร์[62]เพื่อให้แน่ใจว่าผู้ใช้จะได้รับประสบการณ์ที่สอดคล้องกัน นักพัฒนาเว็บมักจะทดสอบไซต์ของตนในระบบปฏิบัติการ เบราว์เซอร์ และเวอร์ชันของเบราว์เซอร์ที่หลากหลาย ช่วยเพิ่มเวลาในการพัฒนาและความซับซ้อน เครื่องมือเช่นBrowserStackได้รับการสร้างขึ้นเพื่อลดความซับซ้อนของการรักษาสภาพแวดล้อมเหล่านี้

นอกจากนี้เพื่อเป็นเครื่องมือในการทดสอบเหล่านี้เว็บไซต์จำนวนมากรักษารายการของการสนับสนุนเบราว์เซอร์สำหรับคุณสมบัติเฉพาะ CSS, รวมทั้งCanIUseและMozilla พัฒนาเครือข่ายนอกจากนี้ CSS 3 ยังกำหนดคิวรี่คุณลักษณะ ซึ่งให้@supportsคำสั่งที่จะช่วยให้นักพัฒนากำหนดเป้าหมายเบราว์เซอร์ด้วยการสนับสนุนสำหรับฟังก์ชันการทำงานบางอย่างโดยตรงภายใน CSS ของตน[63] CSS ที่เบราว์เซอร์รุ่นเก่าไม่รองรับบางครั้งสามารถแก้ไขโดยใช้ JavaScript polyfillsซึ่งเป็นโค้ด JavaScript ที่ออกแบบมาเพื่อให้เบราว์เซอร์ทำงานอย่างสม่ำเสมอ วิธีแก้ปัญหาชั่วคราวเหล่านี้—และความจำเป็นในการสนับสนุนฟังก์ชันทางเลือก—สามารถเพิ่มความซับซ้อนให้กับโครงการพัฒนา และด้วยเหตุนี้ บริษัทต่างๆ จึงมักกำหนดรายการเวอร์ชันของเบราว์เซอร์ที่จะและไม่สนับสนุน

เนื่องจากเว็บไซต์ใช้มาตรฐานโค้ดที่ใหม่กว่าซึ่งเข้ากันไม่ได้กับเบราว์เซอร์รุ่นเก่า เบราว์เซอร์เหล่านี้อาจถูกตัดขาดจากการเข้าถึงทรัพยากรจำนวนมากบนเว็บ (บางครั้งโดยเจตนา) [64]ไซต์ที่ได้รับความนิยมสูงสุดหลายแห่งบนอินเทอร์เน็ตไม่เพียงแต่เสื่อมคุณภาพทางสายตาในเบราว์เซอร์รุ่นเก่าเนื่องจากการสนับสนุน CSS ที่ไม่ดี แต่ยังไม่ทำงานเลย ส่วนใหญ่เป็นผลมาจากวิวัฒนาการของ JavaScript และเทคโนโลยีเว็บอื่นๆ

ข้อจำกัด

ข้อจำกัดบางประการของความสามารถในปัจจุบันของ CSS ได้แก่:

ผู้คัดเลือกไม่สามารถขึ้นไปได้
CSS ขณะนี้มีวิธีการที่จะเลือกไม่มีพ่อแม่หรือปู่ย่าตายายขององค์ประกอบที่ตรงกับเงื่อนไขบางอย่าง [65]ตัวเลือก CSS ระดับ 4 ซึ่งยังคงอยู่ในสถานะ Working Draft เสนอตัวเลือกดังกล่าว[66]แต่เป็นส่วนหนึ่งของโปรไฟล์ตัวเลือก "สแนปชอต" ที่สมบูรณ์เท่านั้น ไม่ใช่โปรไฟล์ "ใช้งานจริง" แบบเร็วที่ใช้ในการจัดรูปแบบ CSS แบบไดนามิก [67]รูปแบบตัวเลือกขั้นสูง (เช่นXPath ) จะเปิดใช้งานสไตล์ชีตที่ซับซ้อนมากขึ้น สาเหตุหลักที่คณะทำงาน CSS ก่อนหน้านี้ปฏิเสธข้อเสนอสำหรับตัวเลือกหลักนั้นเกี่ยวข้องกับประสิทธิภาพของเบราว์เซอร์และปัญหาการแสดงผลที่เพิ่มขึ้น [68]
ไม่สามารถประกาศขอบเขตใหม่อย่างชัดเจนโดยไม่ขึ้นกับตำแหน่ง
กฎการกำหนดขอบเขตสำหรับคุณสมบัติ เช่น ดัชนี z จะค้นหาองค์ประกอบหลักที่ใกล้เคียงที่สุดด้วยแอตทริบิวต์ position:absolute หรือ position:relative การมีเพศสัมพันธ์แบบแปลก ๆ นี้มีผลที่ไม่พึงประสงค์ ตัวอย่างเช่น เป็นไปไม่ได้ที่จะหลีกเลี่ยงการประกาศขอบเขตใหม่เมื่อถูกบังคับให้ปรับตำแหน่งขององค์ประกอบ ป้องกันไม่ให้ใช้ขอบเขตที่ต้องการขององค์ประกอบหลัก
พฤติกรรมไดนามิกคลาสหลอกไม่สามารถควบคุมได้
CSS ใช้คลาสหลอกที่อนุญาตให้ผู้ใช้แสดงความคิดเห็นในระดับหนึ่งโดยการใช้สไตล์ทางเลือกแบบมีเงื่อนไข CSS pseudo-class หนึ่งคลาส " " เป็นไดนามิก (เทียบเท่ากับ JavaScript "onmouseover") และมีโอกาสนำไปใช้ในทางที่ผิด (เช่น การใช้ป๊อปอัปที่ใกล้เคียงเคอร์เซอร์) [69]แต่ CSS ไม่มีความสามารถสำหรับไคลเอ็นต์ในการปิดใช้งาน (ไม่มี "ปิดใช้งาน" คุณสมบัติเหมือน) หรือจำกัดเอฟเฟกต์ของมัน (ไม่มีค่าที่เหมือน "nochange" สำหรับแต่ละคุณสมบัติ):hover
ตั้งชื่อกฎไม่ได้
ไม่มีทางตั้งชื่อกฎ CSS ได้ ซึ่งจะทำให้ (เช่น) สคริปต์ฝั่งไคลเอ็นต์อ้างอิงถึงกฎได้ แม้ว่าตัวเลือกจะเปลี่ยนไปก็ตาม
ไม่สามารถรวมสไตล์จากกฎลงในกฎอื่นได้
สไตล์ CSS มักจะต้องทำซ้ำในหลายกฎเพื่อให้ได้ผลลัพธ์ตามที่ต้องการ ทำให้เกิดการบำรุงรักษาเพิ่มเติมและต้องมีการทดสอบอย่างละเอียดถี่ถ้วนมากขึ้น มีการเสนอคุณลักษณะ CSS ใหม่บางส่วนเพื่อแก้ปัญหานี้ แต่ถูกยกเลิกในภายหลัง [70] [71]แต่ผู้เขียนอาจจะได้รับความสามารถนี้โดยใช้ภาษาสไตล์ชีตที่มีความซับซ้อนมากขึ้นซึ่งจะรวบรวม CSS เช่นSass , หักหรือสไตลัส
ไม่สามารถกำหนดเป้าหมายข้อความเฉพาะโดยไม่แก้ไขมาร์กอัป
นอกจากองค์ประกอบหลอกแล้ว เราไม่สามารถกำหนดเป้าหมายช่วงข้อความที่เฉพาะเจาะจงได้โดยไม่ต้องใช้องค์ประกอบตัวยึดตำแหน่ง:first-letter

เรื่องที่แล้ว

นอกจากนี้ ยังมีปัญหาอื่นๆ อีกหลายประการในมาตรฐาน CSS เวอร์ชันก่อนหน้า แต่ได้รับการบรรเทาแล้ว:

ข้อจำกัดในการควบคุมแนวตั้ง
แม้ว่าการจัดวางองค์ประกอบในแนวนอนโดยทั่วไปจะควบคุมได้ง่ายเสมอ แต่การจัดวางในแนวตั้งมักไม่เป็นธรรมชาติ ซับซ้อน หรือเป็นไปไม่ได้เลย งานง่ายๆ เช่น การจัดองค์ประกอบให้อยู่ตรงกลางในแนวตั้งหรือการวางส่วนท้ายไม่สูงกว่าด้านล่างของวิวพอร์ต จำเป็นต้องมีกฎรูปแบบที่ซับซ้อนและไม่เป็นธรรมชาติ หรือกฎธรรมดาแต่ไม่ได้รับการสนับสนุนอย่างกว้างขวาง [65]โมดูลกล่องแบบยืดหยุ่นได้ปรับปรุงสถานการณ์อย่างมาก และการควบคุมแนวตั้งนั้นตรงไปตรงมามากกว่ามาก และรองรับในเบราว์เซอร์สมัยใหม่ทั้งหมด [72]เบราว์เซอร์รุ่นเก่ายังคงมีปัญหาเหล่านั้น แต่ส่วนใหญ่ (ส่วนใหญ่คือ Internet Explorer 9 และต่ำกว่า) ไม่ได้รับการสนับสนุนจากผู้จำหน่ายอีกต่อไป [73]
ไม่มีนิพจน์
ไม่มีความสามารถมาตรฐานในการระบุค่าคุณสมบัติเป็นนิพจน์ทั่วไป (เช่น) ซึ่งจะเป็นประโยชน์ในหลายกรณี เช่น การคำนวณขนาดของคอลัมน์ภายใต้ข้อจำกัดของผลรวมของคอลัมน์ทั้งหมด Internet Explorer เวอร์ชัน 5 ถึง 7 รองรับคำสั่ง expression() ที่เป็นกรรมสิทธิ์[74] ที่มีฟังก์ชันการทำงานที่คล้ายคลึงกัน คำสั่ง expression() ที่เป็นกรรมสิทธิ์นี้ไม่ได้รับการสนับสนุนจาก Internet Explorer 8 เป็นต้นไป ยกเว้นในโหมดความเข้ากันได้ การตัดสินใจนี้เกิดขึ้นเนื่องจาก "การปฏิบัติตามมาตรฐาน ประสิทธิภาพของเบราว์เซอร์ และเหตุผลด้านความปลอดภัย" [74]อย่างไรก็ตามคำแนะนำผู้สมัครที่มีค่า calc() เพื่อแก้ไขข้อจำกัดนี้ได้รับการเผยแพร่โดย CSS WG [75]margin-left: 10% 3em + 4px;และได้รับการสนับสนุนในเบราว์เซอร์สมัยใหม่ทั้งหมด [76]
ขาดการประกาศคอลัมน์
แม้ว่าจะเป็นไปได้ใน CSS 3 ปัจจุบัน (โดยใช้column-countโมดูล) เลย์เอาต์[77] ที่มีหลายคอลัมน์อาจมีความซับซ้อนในการใช้งานใน CSS 2.1 ด้วย CSS 2.1 กระบวนการมักจะทำโดยใช้องค์ประกอบแบบลอย ซึ่งมักจะแสดงผลแตกต่างกันไปตามเบราว์เซอร์ต่างๆ รูปร่างหน้าจอคอมพิวเตอร์ที่แตกต่างกัน และอัตราส่วนหน้าจอต่างๆ ที่ตั้งค่าไว้บนจอภาพมาตรฐาน เบราว์เซอร์สมัยใหม่ทั้งหมดสนับสนุนคุณลักษณะ CSS 3 นี้ในรูปแบบใดรูปแบบหนึ่ง [78]

ข้อดี

การแยกเนื้อหาออกจากการนำเสนอ
CSS อำนวยความสะดวกในการเผยแพร่เนื้อหาในรูปแบบการนำเสนอที่หลากหลายตามพารามิเตอร์ที่ระบุ พารามิเตอร์ที่กำหนดรวมถึงการตั้งค่าที่ชัดเจนของผู้ใช้ เว็บเบราว์เซอร์ต่างๆ ประเภทของอุปกรณ์ที่ใช้เพื่อดูเนื้อหา (คอมพิวเตอร์เดสก์ท็อปหรืออุปกรณ์เคลื่อนที่) ตำแหน่งทางภูมิศาสตร์ของผู้ใช้ และตัวแปรอื่นๆ อีกมากมาย
ความสม่ำเสมอทั่วทั้งไซต์
เมื่อใช้ CSS อย่างมีประสิทธิภาพ ในแง่ของการสืบทอดและ "การเรียงซ้อน" คุณสามารถใช้สไตล์ชีตส่วนกลางเพื่อสร้างผลกระทบและจัดรูปแบบองค์ประกอบทั่วทั้งไซต์ หากเกิดสถานการณ์ขึ้นว่าการจัดสไตล์ขององค์ประกอบควรเปลี่ยนแปลงหรือปรับเปลี่ยน การเปลี่ยนแปลงเหล่านี้สามารถทำได้โดยการแก้ไขกฎในสไตล์ชีตส่วนกลาง ก่อนหน้า CSS การบำรุงรักษาประเภทนี้ยากกว่า มีราคาแพง และใช้เวลานานกว่า
แบนด์วิดธ์
สไตล์ชีต ทั้งภายในและภายนอก ระบุสไตล์หนึ่งครั้งสำหรับช่วงขององค์ประกอบ HTML ที่เลือกโดยclassประเภท หรือความสัมพันธ์กับผู้อื่น สิ่งนี้มีประสิทธิภาพมากกว่าการทำซ้ำข้อมูลสไตล์แบบอินไลน์สำหรับองค์ประกอบแต่ละรายการ โดยปกติ สไตล์ชีตภายนอกจะถูกจัดเก็บไว้ในแคชของเบราว์เซอร์ดังนั้นจึงสามารถใช้ได้หลายหน้าโดยไม่ต้องโหลดซ้ำ ซึ่งจะช่วยลดการถ่ายโอนข้อมูลผ่านเครือข่ายได้อีก
การจัดรูปแบบหน้าใหม่
ด้วยการเปลี่ยนแปลงง่ายๆ เพียงบรรทัดเดียว คุณสามารถใช้สไตล์ชีตที่แตกต่างกันสำหรับหน้าเดียวกันได้ มีข้อดีสำหรับการเข้าถึง ตลอดจนความสามารถในการปรับแต่งเพจหรือไซต์ให้เข้ากับอุปกรณ์เป้าหมายต่างๆ นอกจากนี้ อุปกรณ์ที่ไม่เข้าใจสไตล์ยังคงแสดงเนื้อหา
การเข้าถึง
หากไม่มี CSS นักออกแบบเว็บไซต์มักจะต้องจัดวางหน้าเว็บด้วยเทคนิคต่างๆ เช่น ตาราง HTML ที่ขัดขวางการเข้าถึงสำหรับผู้ใช้ที่มีความบกพร่องทางการมองเห็น (ดูTableless web design#Accessibility )

การทำให้เป็นมาตรฐาน

กรอบงาน

เฟรมเวิร์ก CSSเป็นไลบรารีที่จัดเตรียมไว้ล่วงหน้าเพื่อให้จัดรูปแบบหน้าเว็บที่เป็นไปตามมาตรฐานได้ง่ายขึ้นโดยใช้ภาษา Cascading Style Sheets เฟรมเวิร์ก CSS ได้แก่Blueprint , Bootstrap , Foundationและ Materialize เช่นเดียวกับไลบรารีภาษาการเขียนโปรแกรมและสคริปต์ เฟรมเวิร์ก CSS มักจะรวมเป็นชีต .css ภายนอกที่อ้างอิงใน HTML<head>. พวกเขามีตัวเลือกสำเร็จรูปมากมายสำหรับการออกแบบและจัดวางหน้าเว็บ แม้ว่าเฟรมเวิร์กเหล่านี้จำนวนมากได้รับการเผยแพร่แล้ว แต่ผู้เขียนบางคนใช้เฟรมเวิร์กเหล่านี้สำหรับการสร้างต้นแบบอย่างรวดเร็ว หรือเพื่อการเรียนรู้จาก และชอบ 'งานฝีมือ' CSS ที่เหมาะสมกับไซต์ที่เผยแพร่แต่ละแห่งโดยไม่มีค่าใช้จ่ายในการออกแบบ บำรุงรักษา และดาวน์โหลดจากการมีคุณสมบัติที่ไม่ได้ใช้มากมาย ในการออกแบบเว็บไซต์ [79]

วิธีการออกแบบ

เนื่องจากขนาดของทรัพยากร CSS ที่ใช้ในโปรเจ็กต์เพิ่มขึ้น ทีมพัฒนามักจะต้องตัดสินใจเกี่ยวกับวิธีการออกแบบทั่วไปเพื่อจัดระเบียบ เป้าหมายคือความง่ายในการพัฒนา ความง่ายในการทำงานร่วมกันระหว่างการพัฒนา และประสิทธิภาพของสไตล์ชีตที่ปรับใช้ในเบราว์เซอร์ วิธีการยอดนิยม ได้แก่ OOCSS ( CSS เชิงวัตถุ), ACSS (atomic CSS), oCSS (สไตล์ชีต Cascade อินทรีย์), SMACSS (สถาปัตยกรรมที่ปรับขนาดได้และโมดูลาร์สำหรับ CSS) และ BEM (บล็อก องค์ประกอบ ตัวดัดแปลง) [80]

อ้างอิง

  1. ^ "คู่มือนักพัฒนา CSS" . Mozilla พัฒนาเครือข่าย เก็บถาวรจากต้นฉบับเมื่อ 2015-09-25 . สืบค้นเมื่อ2015-09-24 .
  2. ^ ฟลานาแกน, เดวิด. JavaScript – คู่มือฉบับสมบูรณ์ (6 ed.) NS. 1. JavaScript เป็นส่วนหนึ่งของเทคโนโลยีสามกลุ่มที่นักพัฒนาเว็บทุกคนต้องเรียนรู้ ได้แก่ HTML เพื่อระบุเนื้อหาของหน้าเว็บ CSS เพื่อระบุการนำเสนอของหน้าเว็บ และ JavaScript เพื่อระบุพฤติกรรมของหน้าเว็บ
  3. ^ "ซีเอสเอสคืออะไร" . สมาคมเวิลด์ไวด์เว็บ เก็บถาวรจากต้นฉบับเมื่อ 2010-11-29 . สืบค้นเมื่อ2010-12-01 .
  4. ^ "Web-based Apps มือถือแห่งอนาคตใช้ HTML 5, CSS และ JavaScript" HTMLกู๊ดดี้. 23 กรกฎาคม 2553. เก็บถาวรจากต้นฉบับเมื่อ 2014-10-20 . สืบค้นเมื่อ2014-10-16 .
  5. ^ "W3C CSS บริการการตรวจสอบ" เก็บถาวรไปจากเดิมใน 2011/02/14 สืบค้นเมื่อ2012-06-30 .
  6. ^ "สเป CSS2.1 W3C สำหรับหลอกองค์ประกอบและหลอกชั้นเรียน" สมาคมเวิลด์ไวด์เว็บ 7 มิถุนายน 2554. เก็บถาวรจากต้นฉบับเมื่อ 30 เมษายน 2555 . สืบค้นเมื่อ30 เมษายน 2555 .
  7. ^ เห็นความหมายที่สมบูรณ์ของตัวเลือกที่ W3C เว็บไซต์ ที่จัดเก็บ 2006/04/23 ที่เครื่อง Wayback
  8. ^ "ตัวเลือกระดับ 3" . W3.org เก็บถาวรจากต้นฉบับเมื่อ 2014-06-03 . สืบค้นเมื่อ2014-05-30 .
  9. ^ "ข้อกำหนด W3C CSS2.1 สำหรับชุดกฎบล็อกประกาศและตัวเลือก" สมาคมเวิลด์ไวด์เว็บ 7 มิถุนายน 2554. เก็บถาวรจากต้นฉบับเมื่อ 28 มีนาคม 2551 . สืบค้นเมื่อ2009-06-20 .
  10. ^ "ตารางคุณสมบัติเต็ม" . W3.org เก็บถาวรจากต้นฉบับเมื่อ 2014-05-30 . สืบค้นเมื่อ2014-05-30 .
  11. ^ "ดัชนี CSS คุณสมบัติ" www.w3.org . สืบค้นเมื่อ2020-08-09 .
  12. ^ "สี CSS" . เครือข่ายนักพัฒนา Mozilla 2016-06-28. เก็บถาวรจากต้นฉบับเมื่อ 2016-09-21 . สืบค้นเมื่อ2016-08-23 .
  13. ^ "6.1 หน่วยความยาว" . การ Cascading Style Sheets ระดับ 1 17 ธันวาคม 2539 เก็บถาวรจากต้นฉบับเมื่อ 14 มิถุนายน 2562 . สืบค้นเมื่อ20 มิถุนายน 2562 .
  14. ^ "5. Distance Units: the <length> type" . ค่า CSS และหน่วยโมดูลระดับที่ 3 6 มิถุนายน 2562 เก็บถาวรจากต้นฉบับเมื่อ 7 มิถุนายน 2562 . สืบค้นเมื่อ20 มิถุนายน 2562 .
  15. ^ W3C คณะทำงาน HTML "HTML 5. คำศัพท์และเกี่ยวข้อง APIs สำหรับ HTML และ XHTML" เวิลด์ไวด์เว็บ Consortium เก็บถาวรจากต้นฉบับเมื่อ 15 กรกฎาคม 2557 . สืบค้นเมื่อ28 มิถุนายน 2557 .
  16. ^ เมเยอร์, เอริคก (2006) Cascading Style Sheets: The Definitive Guide (ฉบับที่ 3) O'Reilly Media, Inc. ISBN 0-596-52733-0. เก็บถาวรจากต้นฉบับเมื่อ 2014-02-15 . สืบค้นเมื่อ2014-02-16 .
  17. ^ "การกำหนดค่าทรัพย์สิน Cascading และมรดก" เก็บถาวรจากต้นฉบับเมื่อ 2014-06-11 . สืบค้นเมื่อ2014-06-10 .
  18. ^ "คลาส CSS สามารถสืบทอดคลาสอื่นตั้งแต่หนึ่งคลาสขึ้นไปได้หรือไม่" . สแต็คโอเวอร์โฟลว์ เก็บถาวรจากต้นฉบับเมื่อ 2017-10-14 . สืบค้นเมื่อ2017-09-10 .
  19. ^ "คุณสมบัติชวเลข" . เกี่ยวกับการสอน นักพัฒนา Mozilla 2017-12-07. เก็บถาวรจากต้นฉบับเมื่อ 2018-01-30 . สืบค้นเมื่อ2018-01-30 .
  20. อรรถเป็น c บอส เบิร์ต; และคณะ (7 ธันวาคม 2553). "9.3 รูปแบบการจัดตำแหน่ง" . การ Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) สเปก W3C. เก็บถาวรจากต้นฉบับเมื่อ 18 กุมภาพันธ์ 2011 . สืบค้นเมื่อ16 กุมภาพันธ์ 2011 .
  21. ^ Holzschlag มอลลี่ E (2005) ฤดูใบไม้ผลิเป็น HTML และ CSS Pearson Education, Inc. ISBN 0-13-185586-7.
  22. ^ a b Lie, Hakon W (10 ต.ค. 1994) "Cascading HTML สไตล์ชีต – ข้อเสนอ" (ข้อเสนอ) (92) เซิร์น เก็บถาวรจากต้นฉบับเมื่อ 4 มิถุนายน 2557 . สืบค้นเมื่อ25 พฤษภาคม 2557 . Cite journal requires |journal= (help)
  23. อรรถa b c d e f Lie, Håkon Wium ; บอสเบิร์ต (1999). Cascading แผ่นสไตล์การออกแบบเว็บ แอดดิสัน เวสลีย์. ISBN 0-201-59625-3. สืบค้นเมื่อ23 มิถุนายน 2010 .
  24. ^ "Cascading Style Sheets ระดับ 1" . สมาคมเวิลด์ไวด์เว็บ เก็บถาวรจากต้นฉบับเมื่อ 2014-04-09 . สืบค้นเมื่อ2014-03-07 .
  25. อรรถเป็น c บอส เบิร์ต (14 เมษายน 2538) "แผ่นสไตล์ที่เรียบง่ายสำหรับ SGML และ HTML บนเว็บ" สมาคมเวิลด์ไวด์เว็บ เก็บถาวรจากต้นฉบับเมื่อ 23 กันยายน 2552 . สืบค้นเมื่อ20 มิถุนายน 2010 .
  26. ^ a b c "Cascading Style Sheets" . มหาวิทยาลัยออสโล. เก็บถาวรจากต้นฉบับเมื่อ 2006-09-06 . สืบค้นเมื่อ3 กันยายน 2557 .
  27. อรรถเป็น เพทรี ชาร์ลส์; Cailliau, Robert (พฤศจิกายน 1997) "สัมภาษณ์ Robert Cailliau เกี่ยวกับข้อเสนอ WWW: "มันเกิดขึ้นได้อย่างไร " " . สถาบันวิศวกรไฟฟ้าและอิเล็กทรอนิกส์ . เก็บถาวรจากต้นฉบับเมื่อ 6 มกราคม 2554 . สืบค้นเมื่อ18 สิงหาคม 2010 .
  28. ^ Bos เบิร์ต (31 มีนาคม 1995) "สตรีมตามสไตล์แผ่นข้อเสนอ" เก็บถาวรจากต้นฉบับเมื่อ 12 ตุลาคม 2014 . สืบค้นเมื่อ3 กันยายน 2557 .
  29. ^ นีลเซ่น, เฮนริก Frystyk (7 มิถุนายน 2002) "Libwww แฮกเกอร์" . สมาคมเวิลด์ไวด์เว็บ เก็บจากต้นฉบับเมื่อ 2 ธันวาคม 2552 . สืบค้นเมื่อ6 มิถุนายน 2010 .
  30. ^ "อีฟ ลาฟอน" . สมาคมเวิลด์ไวด์เว็บ เก็บถาวรจากต้นฉบับเมื่อ 24 มิถุนายน 2553 . สืบค้นเมื่อ17 มิถุนายน 2010 .
  31. ^ "ทีม W3C: เทคโนโลยีและสังคม" . สมาคมเวิลด์ไวด์เว็บ 18 กรกฎาคม 2551 เก็บถาวรจากต้นฉบับเมื่อ 28 พฤษภาคม 2553 . สืบค้นเมื่อ22 มกราคม 2011 .
  32. ^ ลู มอนตุลลี ; เบรนแดน ไอช์ ; สกอตต์ เฟอร์แมน ; ดอนน่า คอนเวิร์ส ; ทรอย เชอวาเลียร์ (22 สิงหาคม พ.ศ. 2539) "แผ่นที่ใช้ JavaScript Style" W3C. เก็บถาวรจากต้นฉบับเมื่อ 27 พฤษภาคม 2010 . สืบค้นเมื่อ23 มิถุนายน 2010 .
  33. ^ "ซอฟต์แวร์ CSS" . W3.org เก็บถาวรจากต้นฉบับเมื่อ 2010-11-25 . สืบค้นเมื่อ2011-01-15 .
  34. ^ แอนน์แวน Kesteren "CSS 2.1 – บล็อกของแอนน์" . เก็บถาวรจากต้นฉบับเมื่อ 2005-12-10 . สืบค้นเมื่อ2011-02-16 .
  35. ^ "จดหมายเหตุของ W3C News ในปี 2550" . เวิลด์ไวด์เว็บ Consortium เก็บถาวรไปจากเดิมใน 2011/06/28 สืบค้นเมื่อ2011-02-16 .
  36. ^ Nitot ละคร (18 มีนาคม 2002) "ไม่ถูกต้องชนิด mime สำหรับไฟล์ CSS" Mozilla ผู้พัฒนาศูนย์ มอซิลลา . เก็บถาวรจากต้นฉบับเมื่อ 2011-05-20 . สืบค้นเมื่อ20 มิถุนายน 2010 .
  37. ^ ไบรด์, ดอน (27 พฤศจิกายน 2009) "ประเภทไฟล์" . เก็บถาวรจากต้นฉบับเมื่อ 29 ตุลาคม 2553 . สืบค้นเมื่อ20 มิถุนายน 2010 .
  38. ^ "รายละเอียดนามสกุลไฟล์ css" . ฐานข้อมูลนามสกุลไฟล์ 12 มีนาคม 2553. เก็บข้อมูลจากต้นฉบับเมื่อ 18 กรกฎาคม 2554 . สืบค้นเมื่อ20 มิถุนายน 2010 .
  39. ^ "อย่างไรและทำไมคุณต้องการที่จะใช้คำนำหน้า CSS ผู้ขายในเว็บไซต์ของคุณ" ไลฟ์ไวร์ 2019-11-12.
  40. ^ "มาตรฐานความเข้ากันได้" . อะไรวะ .
  41. ^ บอส / Håkon Wium Lie, Bert (1997). สไตล์ชีตแบบเรียงซ้อน: การออกแบบสำหรับเว็บ (พิมพ์ครั้งที่ 1) ฮาร์โลว์ อังกฤษ; เรดดิ้ง แมสซาชูเซตส์: แอดดิสัน เวสลีย์ ลองแมน ISBN 0-201-41998-X.
  42. ^ W3C : Cascading Style Sheets ระดับ 1 เก็บถาวร 2011-02-09 ที่ข้อมูลจำเพาะWayback Machine CSS 1
  43. ^ W3C :ข้อกำหนด Cascading Style Sheets ระดับ 1 เก็บถาวร 2011-02-11 ที่ข้อกำหนดWayback Machine CSS ระดับ 1
  44. ^ "สไตล์ชีทหู" . W3C. เก็บถาวรจากต้นฉบับเมื่อ 2014-10-26 . สืบค้นเมื่อ2014-10-26 .
  45. ^ W3C : Cascading Style Sheets, ระดับ 2 เก็บถาวร 2011-01-16 ที่ข้อมูลจำเพาะWayback Machine CSS 2 (คำแนะนำปี 1998)
  46. ^ W3C : Cascading Style Sheets, level 2 revision 1 Archived 2011-11-09 ที่ข้อมูลจำเพาะWayback Machine CSS 2.1 (คำแนะนำที่เสนอโดย W3C)
  47. ^ W3C: Cascading Style Sheets Standard นำเสนอความสามารถในการทำงานร่วมกันที่ไม่เคยมีมาก่อนซึ่ง เก็บถาวรไว้ 2011-06-10 ที่ Wayback Machine
  48. ^ บอส เบิร์ต (18 กุมภาพันธ์ 2554). "รายละเอียดของข้อกำหนด CSS ทุกคน" เวิลด์ไวด์เว็บ Consortium เก็บถาวรจากต้นฉบับเมื่อ 31 มีนาคม 2554 . สืบค้นเมื่อ3 มีนาคม 2554 .
  49. ^ Bos เบิร์ต (26 กุมภาพันธ์ 2011) "งาน CSS ปัจจุบัน" . เวิลด์ไวด์เว็บ Consortium เก็บถาวรจากต้นฉบับเมื่อ 3 มีนาคม 2554 . สืบค้นเมื่อ3 มีนาคม 2554 .
  50. ^ Etemad, Elika เจ (12 ธันวาคม 2010) "Cascading Style Sheets (CSS) Snapshot 2010" . เวิลด์ไวด์เว็บ Consortium เก็บถาวรจากต้นฉบับเมื่อ 16 มีนาคม 2554 . สืบค้นเมื่อ3 มีนาคม 2554 .
  51. ^ "ข้อกำหนด CSS ทั้งหมด" W3.org 2014-05-22. เก็บถาวรจากต้นฉบับเมื่อ 2014-05-30 . สืบค้นเมื่อ2014-05-30 .
  52. ^ แอตกินส์ จูเนียร์ แท็บ "คำเกี่ยวกับ CSS4" เก็บถาวรจากต้นฉบับเมื่อ 31 ตุลาคม 2555 . สืบค้นเมื่อ18 ตุลาคม 2555 .
  53. ^ "CSS ยืดหยุ่นกล่องเค้าโครงโมดูลระดับ 1" W3C. 19 พฤศจิกายน 2561 เก็บถาวรจากต้นฉบับเมื่อ 19 ตุลาคม 2555 . สืบค้นเมื่อ18 ตุลาคม 2555 .
  54. ^ "Cascading Style Sheets (CSS) Snapshot 2007" . 12 พฤษภาคม 2554. เก็บถาวรจากต้นฉบับเมื่อ 8 สิงหาคม 2559 . สืบค้นเมื่อ18 กรกฎาคม 2559 .
  55. ^ "Cascading Style Sheets (CSS) Snapshot 2010" . 12 พฤษภาคม 2554. เก็บถาวรจากต้นฉบับเมื่อ 16 มีนาคม 2554 . สืบค้นเมื่อ3 มีนาคม 2554 .
  56. ^ "CSS Snapshot 2015" . W3C . 13 ตุลาคม 2558 เก็บถาวรจากต้นฉบับเมื่อ 27 มกราคม 2560 . สืบค้นเมื่อ13 กุมภาพันธ์ 2560 .
  57. ^ "CSS Snapshot 2017" . 31 มกราคม 2560 เก็บถาวรจากต้นฉบับเมื่อ 13 กุมภาพันธ์ 2560 . สืบค้นเมื่อ13 กุมภาพันธ์ 2560 .
  58. ^ "CSS Snapshot 2018" . 15 พฤศจิกายน 2561 เก็บถาวรจากต้นฉบับเมื่อ 1 กุมภาพันธ์ 2562 . สืบค้นเมื่อ2 มกราคม 2019 .
  59. ^ "ฉันใช้... สนับสนุนตารางสำหรับ HTML5, CSS3 ฯลฯ" . เก็บถาวรจากต้นฉบับเมื่อ 2018-02-19 . สืบค้นเมื่อ2019-01-26 .
  60. ^ "MDN เว็บเอกสาร: CSS"
  61. ^ "กลุ่มชุมชน CSS4" . เก็บถาวรจากต้นฉบับเมื่อ 2020-02-27 . สืบค้นเมื่อ2020-02-27 .
  62. ^ "โซลูชัน CSS3 สำหรับ Internet Explorer – นิตยสารยอดเยี่ยม" . นิตยสารยอดเยี่ยม . 2010-04-28. เก็บถาวรจากต้นฉบับเมื่อ 2016-10-12 . สืบค้นเมื่อ2016-10-12 .
  63. ^ "การใช้แบบสอบถามคุณลักษณะใน CSS ★ Mozilla Hacks - นักพัฒนาเว็บบล็อก" hacks.mozilla.orgครับ เก็บถาวรจากต้นฉบับเมื่อ 2016-10-11 . สืบค้นเมื่อ2016-10-12 .
  64. ^ "การดูเว็บด้วย Internet Explorer 6 ครั้งสุดท้าย" . อาส เทคนิค . เก็บถาวรจากต้นฉบับเมื่อ 2016-10-12 . สืบค้นเมื่อ2016-10-12 .
  65. ^ มอลลี่ Holzschlag (มกราคม 2012) "เจ็ดสิ่งที่ยังขาดหายไปจาก CSS" นิตยสาร .net เก็บถาวรจากต้นฉบับเมื่อ 2017-03-05 . สืบค้นเมื่อ2017-03-04 .
  66. ^ "ตัวเลือกระดับ 4 – การกำหนดหัวเรื่องของตัวเลือก" . W3.org เก็บถาวรจากต้นฉบับเมื่อ 2013-08-17 . สืบค้นเมื่อ2013-08-13 .
  67. ^ "Selectors ระดับที่ 4 - Fast VS เลือกโปรไฟล์ที่สมบูรณ์แบบ" W3.org เก็บถาวรจากต้นฉบับเมื่อ 2013-08-17 . สืบค้นเมื่อ2013-08-13 .
  68. ^ สนุก , โจนาธาน (ตุลาคม 2010). "ทำไมเราไม่มีตัวเลือกผู้ปกครอง" . สนุ๊ก. เก็บถาวรจากต้นฉบับเมื่อ 2012-01-18 . สืบค้นเมื่อ2012-01-26 .
  69. ^ "ป๊อปอัป CSS เพียว" meyerweb.com. เก็บถาวรจากต้นฉบับเมื่อ 2009-12-09 . สืบค้นเมื่อ2009-11-19 .
  70. ^ แท็บแอตกินส์จูเนียร์"CSS ใช้กฎ" GitHub. เก็บถาวรจากต้นฉบับเมื่อ 2016-02-22 . สืบค้นเมื่อ2016-02-27 .
  71. ^ "ทำไมฉันถึงละทิ้ง @apply — แท็บเสร็จสมบูรณ์" .
  72. ^ "CSS ยืดหยุ่นกล่องเค้าโครงโมดูล" ฉันสามารถใช้ ... ตารางการสนับสนุนสำหรับ HTML5, CSS3, ฯลฯ CanIUse.com. เก็บถาวรจากต้นฉบับเมื่อ 2016-02-23
  73. ^ "Internet Explorer สิ้นสุดการสนับสนุน" ไมโครซอฟต์. เก็บถาวรจากต้นฉบับเมื่อ 2019-06-02 . สืบค้นเมื่อ2016-02-27 .
  74. ^ a b "เกี่ยวกับคุณสมบัติไดนามิก" . Msdn.microsoft.com. เก็บถาวรจากต้นฉบับเมื่อ 2017-10-14 . สืบค้นเมื่อ2009-06-20 .
  75. ^ "ค่า CSS และหน่วยโมดูลระดับ 3" W3.org 6 มิถุนายน 2562 เก็บถาวรจากต้นฉบับเมื่อ 23 เมษายน 2551
  76. ^ "Calc () เป็นค่าหน่วย CSS" ฉันสามารถใช้ ... ตารางการสนับสนุนสำหรับ HTML5, CSS3, ฯลฯ CanIUse.com. เก็บถาวรจากต้นฉบับเมื่อ 2016-03-04
  77. ^ "CSS Multi-คอลัมน์เค้าโครงโมดูล" สมาคมเวิลด์ไวด์เว็บ เก็บถาวรจากต้นฉบับเมื่อ 2011-04-29 . สืบค้นเมื่อ2011-05-01 .
  78. ^ "ฉันขอใช้... ตารางสนับสนุน HTML5, CSS3 ฯลฯ"ได้ไหม CanIUse.com. เก็บถาวรจากต้นฉบับเมื่อ 2010-08-21 . สืบค้นเมื่อ2016-02-27 .
  79. ^ เซเดอร์โฮล์ม แดน; อีธาน มาร์กอตต์ (2009) CSS Handcrafted: Bulletproof เพิ่มเติมออกแบบเว็บ ไรเดอร์ใหม่. NS. 114. ISBN 978-0-321-64338-4. เก็บถาวรจากต้นฉบับเมื่อ 20 ธันวาคม 2555 . สืบค้นเมื่อ19 มิถุนายน 2010 .
  80. ^ อันตี , ฮิลจา. "OOCSS, ACSS, BEM, SMACSS: มันคืออะไร? ฉันควรใช้อะไรดี?" . clubmate.fi . ฮิลจา เก็บถาวรจากต้นฉบับเมื่อ 2 มิถุนายน 2558 . สืบค้นเมื่อ2 มิถุนายน 2558 .

อ่านเพิ่มเติม

ดูเพิ่มเติม

ลิงค์ภายนอก