เพื่อช่วยให้นักพัฒนาปรับแต่งเว็บไซต์ของตนด้วยการผสมผสานระหว่าง JavaScript และ CSS คุณสมบัติ CSS ใหม่ได้รับการพัฒนาและสนับสนุนเบราว์เซอร์ยอดนิยมในขณะนี้ บางส่วนมีดังต่อไปนี้ −
โฟกัส-ภายใน
มีจุดมุ่งหมายเพื่อแก้ปัญหาการเข้าถึงโฟกัสภายในองค์ประกอบ
เลื่อนสแนป
ซึ่งจะทำให้การเลื่อนและการชะลอตัวแบบเนทีฟ
@media(prefers-*)
ช่วยตั้งค่าทั้ง UI และ UX ของหน้าตามการตั้งค่าอุปกรณ์ของผู้ใช้ ซึ่งช่วยให้มีความเป็นส่วนตัวในระดับที่สูงขึ้น
* สามารถระบุระดับแสง สีบังคับ โทนสี คอนทราสต์ ลดการเคลื่อนไหว และความโปร่งใสลดลง
ตำแหน่ง:เหนียว
เพื่อให้ UI อยู่ในวิวพอร์ต
คุณสมบัติเชิงตรรกะสำหรับการมีเลย์เอาต์มาตรฐาน
ช่วยให้เรามีระยะห่างระหว่างทิศทางแบบไดนามิกภายในและรอบๆ องค์ประกอบ
คุณสมบัติช่องว่าง
คุณสมบัตินี้พร้อมใช้งานสำหรับ flexbox แล้ว gap ตั้งค่าคอนเทนเนอร์ให้เป็นเจ้าของการเว้นวรรค แทนที่จะให้องค์ประกอบย่อยแต่ละรายการมีระยะห่างของตัวเอง
ตัวกรองด้านหลัง
เพื่อความสะดวกในการตั้งค่าสไตล์เบื้องหลังองค์ประกอบ
CSS Houdini API
API ระดับต่ำที่ช่วยให้นักพัฒนาสามารถบอกเบราว์เซอร์ว่าต้องการอ่านและทำความเข้าใจ CSS ที่กำหนดเองอย่างไร นักพัฒนาสามารถเข้าถึง CSS Object Model ได้ด้วยวิธีการบริโภคที่มากขึ้น Layout API, Paint API, Parser API, Properties &Values API, AnimationWorklet, Typed OM และ Font Metrics API อยู่ภายใต้สิ่งนี้
อัตราส่วนภาพ
รักษาขนาดของสื่อ
ขนาด
กำหนดความสูงและความกว้างในแอตทริบิวต์เดียว
นาที(), สูงสุด() และแคลมป์()
กำหนดข้อจำกัดคุณสมบัติ CSS ใดๆ
จอแสดงผล:ด้านนอกด้านใน
ไวยากรณ์อันมีค่าสองแบบสำหรับองค์ประกอบที่เหมาะสมยิ่งขึ้น
list-style-type
เพิ่มสไตล์ที่กำหนดเองลงในรายการ
โมดูล CSS
ตอนนี้เราสามารถใช้ JavaScript เพื่อขอโมดูลเฉพาะจากไฟล์ในเครื่องหรือไฟล์ระยะไกลได้
ภูมิภาค CSS
เติมเนื้อหาในพื้นที่
ตารางย่อย CSS
ช่วยเราสร้างเค้าโครงขนาดเล็กด้วยเค้าโครงขนาดเล็กใน CSS Grid
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงคุณสมบัติบางอย่าง -
<!DOCTYPE html> <html> <head> <style> * { margin: 2%; text-align: center; } :is(header, main, footer) span:after { content: " Awesome!"; box-shadow: inset 0 0 8px lightgreen; font-size: 1.2em; font-family: Calibri; } :-webkit-any(header, div, section) span:after { content: " Awesome!"; box-shadow: inset 0 0 8px lightgreen; font-size: 1.2em; font-family: Calibri; } :-moz-any(header, div, section) span:after { content: " Awesome!"; box-shadow: inset 0 0 8px lightgreen; font-size: 1.2em; font-family: Calibri; } :matches(header, div, section) span:after { content: " Awesome!"; box-shadow: inset 0 0 8px lightgreen; font-size: 1.2em; font-family: Calibri; } </style> </head> <body> <header> <span>:is() operator is</span> </header> <div> <span>DEMO</span> <span>Alt + F4</span> <span>Enter</span> </div> <section> <span>Howzit?</span> </section> </body> </html>
ผลลัพธ์
สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -
ตัวอย่าง
<html> <head> <style> #parent { margin: 8%; background-image: url("https://images.unsplash.com/photo-1611081352477- 9f1477ec09ae?crop=entropy&cs=tinysrgb&fit=crop&fm=jpg&h=400&ixlib=rb1.2.1&q=80&w=400"); padding: 2%; width: 200px; height: 200px; box-shadow: 0 0 20px rgba(100,0,40,0.8); } h2 { margin-top: 20vh; backdrop-filter: invert(1); } </style> </head> <body> <div id="parent"> <div> <h2>Watch this cool effect</h2> </div> </div> </body>
ผลลัพธ์
สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -