เกริ่นนำ
เว็บเป็นแพลตฟอร์มที่มีประสิทธิภาพอย่างยิ่งสำหรับข้อความ ซึ่ง Adobe มีประสบการณ์และความเชี่ยวชาญเป็นอย่างมาก ตอนที่ Adobe พยายามหาวิธีที่จะช่วยให้เว็บพัฒนาก้าวหน้า ดังนั้น การผลักดันความสามารถของข้อความในเว็บให้ก้าวหน้ายิ่งขึ้นนั้นดูเหมือนเป็นจุดที่เราจะต้องเริ่มต้นอย่างชัดเจนยิ่งขึ้น โดยปกติเว็บจะถือว่าข้อความมีคอลัมน์เดียวตามแนวตั้ง แม้ว่าจะสามารถวางข้อความรอบภาพกราฟิกได้ และแม้กระทั่งจัดรูปแบบข้อความเป็นหลายคอลัมน์ด้วย CSS ก็ยังคงยากมากที่จะได้เลย์เอาต์ที่เหมือนนิตยสารบนเว็บ Adobe เป็นผู้นำในภูมิภาค CSS และการยกเว้น CSS เพื่อนำประสิทธิภาพของการเผยแพร่บนเดสก์ท็อปไปใช้กับเบราว์เซอร์ที่ทันสมัย ตัวอย่างเช่น ในภาพหน้าจอด้านล่าง มีการใช้การยกเว้น CSS เพื่อส่งข้อความตามแนวของภูเขา
เอกสารในภาพหน้าจอด้านล่างยังใช้การยกเว้น CSS เพื่อให้ข้อความล้อมรอบรูปร่างในรูปภาพ ตลอดจนพื้นที่ CSS เพื่อจัดรูปแบบข้อความเป็นคอลัมน์และล้อมรอบข้อความที่ยกมา
ภูมิภาค CSS
ก่อนที่จะลงลึกรายละเอียดของภูมิภาค CSS เราจะอธิบายวิธีเปิดใช้ภูมิภาคใน Google Chrome เมื่อเปิดใช้ภูมิภาค CSS แล้ว คุณจะลองใช้ตัวอย่างบางส่วนที่กล่าวถึงในบทความนี้และสร้างตัวอย่างของคุณเองได้
การเปิดใช้งาน CSS Regions ใน Google Chrome
ตั้งแต่ Chrome เวอร์ชัน 20 (เวอร์ชัน 20.0.1132.57 เป็นต้นไป) จะเปิดใช้ภูมิภาค CSS ผ่านอินเทอร์เฟซ chrome://flags
หากต้องการเปิดใช้ภูมิภาค CSS ให้ทำตามขั้นตอนต่อไปนี้
- เปิดแท็บหรือหน้าต่างใหม่ใน Chrome
- พิมพ์
chrome://flags
ในแถบสถานที่ - ใช้ค้นหาในหน้าเว็บ (control/command + f) และค้นหาส่วน "ฟีเจอร์แพลตฟอร์มเว็บรุ่นทดลอง"
- คลิกลิงก์เปิดใช้
- คลิกปุ่มเปิดใหม่เลยที่ด้านล่าง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแฟล็กของ Chrome โปรดดูบล็อกโพสต์ของฉันในหัวข้อทั้งหมดเกี่ยวกับ Chrome Flag
เมื่อเปิดใช้เบราว์เซอร์อีกครั้งแล้ว ก็เริ่มทดสอบกับ CSS Regions ได้อย่างอิสระ
ภาพรวมของภูมิภาค CSS
พื้นที่ CSS ช่วยให้บล็อกข้อความที่มาร์กอัปเชิงความหมายไหลเข้าสู่ "กล่อง" ได้โดยอัตโนมัติ (ปัจจุบันคือองค์ประกอบ) แผนภาพด้านล่างแสดงการแยกข้อความ (ลำดับข้อความ) และกล่อง (พื้นที่ที่ข้อความรับเข้ามา)
มาดูกรณีการใช้งานภูมิภาค CSS ที่เกิดขึ้นจริงกัน นอกจากเป็นนักพัฒนาซอฟต์แวร์ที่ Adobe แล้ว เรายังเป็นนักเขียนนิยายวิทยาศาสตร์ด้วย ฉันเผยแพร่ผลงานของฉันทางออนไลน์ภายใต้สัญญาอนุญาตครีเอทีฟคอมมอนส์อยู่บ่อยครั้ง และเพื่อให้ทำงานได้บนอุปกรณ์และเบราว์เซอร์ที่มีจำนวนสูงสุด ฉันมักจะใช้รูปแบบที่เรียบง่ายมากๆ ซึ่งมีลักษณะดังนี้:
การใช้ CSS Regions ทำให้ผมสร้างประสบการณ์ที่ทั้งดูน่าสนใจและมีการทำงานมากขึ้นเนื่องจากไปยังส่วนต่างๆ ได้ง่ายและอ่านสะดวกขึ้น
สำหรับการสาธิต เราได้เพิ่มความสามารถในการแสดงภูมิภาค CSS ในต้นแบบนี้ ภาพหน้าจอด้านล่างแสดงวิธีการจัดเรียงภูมิภาคจนมีลักษณะเป็นคอลัมน์ที่ล้อมรอบกราฟิกและเครื่องหมายอัญประกาศตรงกลาง
คุณทดสอบกับต้นแบบนี้ได้ (รวมถึงดูซอร์สโค้ด) ที่นี่ ใช้แป้นลูกศรเพื่อไปยังส่วนต่างๆ และกดปุ่ม Esc
เพื่อแสดงภูมิภาค ต้นแบบก่อนหน้านี้มีให้บริการที่นี่ด้วย
การสร้างโฟลว์ที่มีชื่อ
CSS ที่จำเป็นเพื่อให้บล็อกข้อความส่งผ่านไปยังภูมิภาคต่างๆ นั้นง่ายมาก ข้อมูลโค้ดด้านล่างจะกำหนดขั้นตอนที่มีชื่อ "บทความ" ให้กับ div ที่มีรหัส "content" และกำหนดขั้นตอนที่มีชื่อ "บทความ" เดียวกันนี้ให้กับองค์ประกอบใดก็ตามที่มีคลาส "region" ผลที่ได้ก็คือข้อความที่อยู่ในองค์ประกอบ "content" จะส่งผ่านองค์ประกอบใดก็ตามที่มีคลาส "region" โดยอัตโนมัติ
<!DOCTYPE html>
<html>
<head>
<style>
#content {
{ % mixin flow-into: article; % }
}
.region {
{ % mixin flow-from: article; % }
box-sizing: border-box;
position: absolute;
width: 200px;
height: 200px;
padding: 10px;
}
#box-a {
border: 1px solid red;
top: 10px;
left: 10px;
}
#box-b {
border: 1px solid green;
top: 210px;
left: 210px;
}
#box-c {
border: 1px solid blue;
top: 410px;
left: 410px;
}
</style>
</head>
<body>
<div id="box-a" class="region"></div>
<div id="box-b" class="region"></div>
<div id="box-c" class="region"></div>
<div id="content">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eleifend dapibus felis, a consectetur nisl aliquam at. Aliquam quam augue, molestie a scelerisque nec, accumsan non metus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin cursus euismod nisi, a egestas sem rhoncus eget. Mauris non tortor arcu. Pellentesque in odio at leo volutpat consequat....
</div>
</body>
</html>
ผลลัพธ์จะมีลักษณะดังนี้
โปรดทราบว่าข้อความภายใน div "เนื้อหา" ไม่มีส่วนทราบเกี่ยวกับการนำเสนอ กล่าวคือ เนื้อหาอาจสมบูรณ์ในเชิงความหมาย แม้ว่าจะไหลผ่านภูมิภาคต่างๆ ก็ตาม นอกจากนี้ เนื่องจากภูมิภาคเป็นเพียงองค์ประกอบ การวางตำแหน่งและปรับขนาดโดยใช้ CSS เช่นเดียวกับองค์ประกอบอื่นๆ ดังนั้นจึงเข้ากันได้กับหลักการออกแบบที่ตอบสนองตามอุปกรณ์อย่างสมบูรณ์ การกำหนดองค์ประกอบให้เป็นส่วนหนึ่งของโฟลว์ที่มีชื่อหมายความว่าข้อความที่ระบุส่งผ่านองค์ประกอบเหล่านั้นโดยอัตโนมัติ
โมเดลออบเจ็กต์ CSS
รูปแบบออบเจ็กต์ CSS หรือ CSSOM จะกำหนด JavaScript API สำหรับการทำงานกับ CSS ด้านล่างนี้เป็นรายการ API ใหม่ที่เกี่ยวข้องกับภูมิภาค CSS
document.webkitGetNamedFlows()
: ฟังก์ชันที่แสดงผลคอลเล็กชันของโฟลว์ที่มีชื่อซึ่งมีอยู่ในเอกสารdocument.webkitGetNamedFlows().namedItem("article")
: ฟังก์ชันที่แสดงผลการอ้างอิงไปยังขั้นตอนที่ตั้งชื่อที่เฉพาะเจาะจง อาร์กิวเมนต์สอดคล้องกับชื่อที่ระบุเป็นค่าของพร็อพเพอร์ตี้ CSSflow-into
และfrom-from
หากต้องการรับการอ้างอิงไปยังขั้นตอนที่ตั้งชื่อซึ่งระบุไว้ในข้อมูลโค้ดด้านบน คุณจะต้องส่งในสตริง "บทความ"WebKitNamedFlow
: การแสดงออบเจ็กต์ของ Floe ที่มีชื่อ พร้อมด้วยพร็อพเพอร์ตี้และฟังก์ชันต่อไปนี้firstEmptyRegionIndex
: ค่าจำนวนเต็มที่ชี้ไปยังดัชนีของพื้นที่ว่างเปล่าแรกที่เชื่อมโยงกับขั้นตอนที่ตั้งชื่อ ดูgetRegions()
ด้านล่างเพื่อดูวิธีรับคอลเล็กชันของภูมิภาคname
: ค่าสตริงที่มีชื่อของโฟลว์overset
: พร็อพเพอร์ตี้บูลีนที่มีลักษณะดังนี้false
เมื่อเนื้อหาของขั้นตอนที่มีชื่อตรงกับภูมิภาคที่เกี่ยวข้องtrue
เมื่อเนื้อหาไม่เหมาะสมและต้องมีภูมิภาคเพิ่มเติมเพื่อให้มีเนื้อหาทั้งหมด
getContent()
: ฟังก์ชันที่แสดงผลคอลเล็กชันที่มีการอ้างอิงไปยังโหนดที่ไหลเข้าสู่ขั้นตอนที่ตั้งชื่อไว้getRegions()
: ฟังก์ชันที่แสดงผลคอลเล็กชันที่มีการอ้างอิงไปยังภูมิภาคที่เก็บเนื้อหาของโฟลว์ที่ตั้งชื่อไว้getRegionsByContentNode(node)
: ฟังก์ชันที่แสดงผลการอ้างอิงไปยังภูมิภาคที่มีโหนดที่ระบุ ซึ่งจะเป็นประโยชน์อย่างยิ่งสำหรับการค้นหาภูมิภาคที่มีสิ่งต่างๆ เช่น Anchor ที่มีชื่อ
webkitregionoversetchange
เหตุการณ์ เหตุการณ์นี้จะเกิดขึ้นในWebkitNamedFlow
เมื่อใดก็ตามที่เลย์เอาต์ของเนื้อหาที่เกี่ยวข้องเปลี่ยนแปลงไม่ว่าด้วยเหตุผลใดก็ตาม (มีการเพิ่มหรือนำเนื้อหาออก ขนาดแบบอักษรเปลี่ยนแปลง รูปร่างของภูมิภาคเปลี่ยนแปลง เป็นต้น) และทำให้พร็อพเพอร์ตี้webkitRegionOverset
ของภูมิภาคหนึ่งๆ เปลี่ยนแปลง เหตุการณ์นี้มีประโยชน์สำหรับการฟังการเปลี่ยนแปลงเลย์เอาต์คร่าวๆ โดยเป็นตัวบ่งชี้ว่ามีเหตุการณ์สำคัญเกิดขึ้นและเลย์เอาต์อาจต้องดำเนินการ เช่น จำเป็นต้องมีภูมิภาคเพิ่มเติม บางภูมิภาคอาจว่างเปล่า เป็นต้นwebkitregionfragmentchange
เหตุการณ์ ไม่ได้ใช้ ณ เวลาที่แก้ไขนี้ เหตุการณ์นี้จะเกิดขึ้นบนWebkitNamedFlow
เมื่อใดก็ตามที่เลย์เอาต์ของเนื้อหาที่เกี่ยวข้องเปลี่ยนแปลงไม่ว่าด้วยเหตุผลใดก็ตาม เช่นเดียวกับwebkitregionoversetchange
แต่ไม่ว่าจะมีการเปลี่ยนแปลงใดๆ ในพร็อพเพอร์ตี้webkitRegionOverset
หรือไม่ก็ตาม กิจกรรมนี้มีประโยชน์สำหรับการรับฟังการเปลี่ยนแปลงเลย์เอาต์แบบละเอียดซึ่งไม่จำเป็นต้องส่งผลต่อเลย์เอาต์ทั้งหมดของโฟลว์ที่มีชื่อ เช่น เนื้อหาจะย้ายจากภูมิภาคหนึ่งไปยังอีกภูมิภาคหนึ่ง แต่เนื้อหาโดยรวมจะยังคงเหมาะกับทุกภูมิภาคElement.webkitRegionOverset
: องค์ประกอบจะกลายเป็นภูมิภาคเมื่อมีการกำหนดพร็อพเพอร์ตี้ CSSflow-from
ไว้ องค์ประกอบเหล่านี้มีพร็อพเพอร์ตี้webkitRegionOverset
ซึ่งหากเป็นส่วนหนึ่งของโฟลว์ที่มีชื่อ จะระบุว่าเนื้อหาจากโฟลว์ล้นภูมิภาคหรือไม่ ค่าที่เป็นไปได้ของ webkitRegionOverset มีดังนี้- "overflow" หากมีเนื้อหามากเกินกว่าที่ภูมิภาคจะรองรับได้
- "fit" หากเนื้อหาหยุดก่อนสิ้นสุดภูมิภาค
- "เว้นว่าง" หากเนื้อหายังไปไม่ถึงภูมิภาค
การใช้งานหลักอย่างหนึ่งสำหรับ CSSOM คือการรอรับเหตุการณ์ webkitregionoversetchange
และการเพิ่มหรือนำภูมิภาคออกแบบไดนามิกเพื่อรองรับจำนวนข้อความต่างๆ เช่น หากจำนวนข้อความที่ต้องจัดรูปแบบนั้นคาดเดาไม่ได้ (บางทีอาจจะสร้างขึ้นโดยผู้ใช้) หากมีการปรับขนาดหน้าต่างเบราว์เซอร์ หรือหากขนาดแบบอักษรมีการเปลี่ยนแปลง อาจต้องเพิ่มหรือนำพื้นที่ออกเพื่อรองรับการเปลี่ยนแปลงลำดับขั้นตอน นอกจากนี้ หากคุณต้องการจัดระเบียบเนื้อหาออกเป็นหน้าเว็บต่างๆ คุณจะต้องใช้กลไกสำหรับการแก้ไข DOM รวมถึงภูมิภาคของคุณแบบไดนามิก
ข้อมูลโค้ด JavaScript ต่อไปนี้แสดงการใช้ CSSOM เพื่อเพิ่มภูมิภาคแบบไดนามิกตามความจำเป็น โปรดทราบว่าเพื่อความเรียบง่าย จะไม่มีการนำภูมิภาคออกหรือกำหนดขนาดและตำแหน่งของภูมิภาค แต่มีไว้เพื่อการสาธิตเท่านั้น
var flow = document.webkitGetNamedFlows().namedItem("article")
flow.addEventListener("webkitregionoversetchange", onLayoutUpdate);
function onLayoutUpdate(event) {
var flow = event.target;
// The content does not fit
if (flow.overset === true) {
addRegion();
} else {
regionLayoutComplete();
}
}
function addRegion() {
var region = document.createElement("div");
region.style = "flow-from: article";
document.body.appendChild(region);
}
function regionLayoutComplete() {
// Finish up your layout.
}
ดูการสาธิตเพิ่มเติมได้ในหน้าตัวอย่างภูมิภาค CSS
เทมเพลตหน้า CSS
การใช้ประโยชน์จาก CSSOM อาจเป็นวิธีที่มีประสิทธิภาพและยืดหยุ่นมากที่สุดในการนำฟังก์ชันต่างๆ เช่น การจัดหน้าและเลย์เอาต์ที่ปรับเปลี่ยนตามอุปกรณ์มาใช้ แต่ Adobe ได้ทำงานกับเครื่องมือการเผยแพร่ข้อความและเดสก์ท็อปมานานพอสมควรแล้วที่รู้ว่านักออกแบบและนักพัฒนาซอฟต์แวร์ก็ต้องการวิธีที่ง่ายขึ้นในการสร้างความสามารถในการแบ่งหน้าทั่วไปด้วย ด้วยเหตุนี้เราจึงกำลังดำเนินการเกี่ยวกับข้อเสนอที่เรียกว่า "เทมเพลตหน้าเว็บ CSS" ซึ่งอนุญาตให้กำหนดลักษณะการทำงานของการแบ่งหน้าได้ชัดเจนทั้งหมด
มาดูกรณีการใช้งานทั่วไปสำหรับเทมเพลตหน้า CSS กัน ข้อมูลโค้ดด้านล่างแสดงการใช้ CSS เพื่อสร้างขั้นตอนที่ตั้งชื่อไว้ 2 ลำดับ นั่นคือ "โฟลว์บทความ" และ "โฟลว์ไทม์ไลน์" นอกจากนี้ ยังกำหนดตัวเลือกที่ 3 ที่เรียกว่า "บทความแบบรวม" ซึ่งจะอยู่ในขั้นตอนทั้ง 2 นี้ การรวมพร็อพเพอร์ตี้ overflow-style
แบบง่ายภายในตัวเลือก "บทความแบบรวม" บ่งชี้ว่าเนื้อหาควรจัดหน้าตามแกน x หรือในแนวนอนโดยอัตโนมัติ
<style>
#article {
{ % mixin flow-into: article-flow; % }
}
#timeline {
{ % mixin flow-into: timeline-flow; % }
}
#combined-articles {
overflow-style: paged-x;
}
</style>
เมื่อกำหนดโฟลว์และระบุลักษณะการทำงานส่วนเกินที่ต้องการแล้ว เราจะสร้างเทมเพลตของหน้าเว็บเองได้ โดยทำดังนี้
@template {
@slot left {
width: 35%;
float: left;
{ % mixin flow-from: article-flow; % }
}
@slot time {
width: 25%;
float: left;
{ % mixin flow-from: timeline-flow; % }
}
@slot right {
width: 35%;
float: left;
{ % mixin flow-from: article-flow; % }
}
}
เทมเพลตหน้าเว็บจะกำหนดโดยใช้ไวยากรณ์ "at" ใหม่ ในข้อมูลโค้ดด้านบน เราจะกำหนดช่องสามช่อง แต่ละช่องสอดคล้องกับคอลัมน์ ข้อความจาก "โฟลว์บทความ" จะไหลผ่านคอลัมน์ทางด้านซ้ายและขวา และข้อความจาก "เส้นทางของไทม์ไลน์" จะแสดงคอลัมน์ที่อยู่ตรงกลาง ผลลัพธ์อาจมีลักษณะดังนี้
โปรดทราบว่าข้อความของบทความ (ข้อความในคอลัมน์ซ้ายและขวา) เป็นภาษาอังกฤษ และเส้นควบคุมเวลาตรงกลางจะเป็นภาษาเยอรมัน นอกจากนั้น ยังทำให้หน้าเอกสารอยู่ในแนวนอนได้โดยไม่จำเป็นต้องใช้โค้ด JavaScript ใดๆ อีกด้วย ทุกอย่างดำเนินการอย่างชัดเจนใน CSS
เทมเพลตหน้าเว็บ CSS ยังคงเป็นข้อเสนอ แต่เรามีต้นแบบที่ใช้ "shim" ของ JavaScript (หรือที่เรียกว่า polyfill) เพื่อให้คุณสามารถทดสอบได้ทันที
หากต้องการดูข้อมูลเพิ่มเติมทั่วไปเกี่ยวกับภูมิภาค CSS โปรดดูหน้าภูมิภาค CSS ใน html.adobe.com
การยกเว้น CSS
การที่จะได้การวางเลย์เอาต์แบบเดียวกับนิตยสารนั้นยังไม่เพียงพอต่อการรับส่งข้อความผ่านภูมิภาคต่างๆ ได้ องค์ประกอบสำคัญของการเผยแพร่บนเดสก์ท็อปที่มีคุณภาพสูงและน่าสนใจคือความสามารถในการทำให้ข้อความไหลไปโดยรอบหรือภายในกราฟิกและรูปร่างที่ไม่ปกติ การยกเว้น CSS ทำให้เว็บมีคุณภาพการผลิตระดับนี้
ภาพหน้าจอด้านล่างมาจากต้นแบบการยกเว้น CSS และแสดงข้อความแบบไดนามิกที่เคลื่อนที่ไปรอบๆ เส้นทางที่ตรงกับรูปร่างของกลุ่มหินขนาดใหญ่
ภาพผกผันในภาพหน้าจอถัดไป ได้แก่ ข้อความที่ไหลอยู่ภายในรูปหลายเหลี่ยมที่มีรูปร่างผิดปกติ
ขั้นตอนแรกที่จะสามารถวางข้อความไว้ไปรอบๆ หรือภายในรูปร่างที่กำหนดเองคือการพัฒนาและเพิ่มประสิทธิภาพอัลกอริทึมที่จำเป็น ขณะนี้ Adobe กำลังดำเนินการปรับใช้ซึ่งจะสนับสนุน WebKit โดยตรง เมื่ออัลกอริทึมเหล่านี้ได้รับการปรับให้เหมาะสมแล้ว อัลกอริทึมเหล่านี้จะกลายเป็นรากฐานที่สำคัญในการสร้างการยกเว้น CSS ที่เหลือทั้งหมด
ดูข้อมูลเพิ่มเติมเกี่ยวกับการยกเว้น CSS ได้ที่หน้าการยกเว้น CSS ใน html.adobe.com และดูรายละเอียดเพิ่มเติมเกี่ยวกับงานของ Adobe ในเทคโนโลยีที่เกี่ยวข้องสำหรับการยกเว้น CSS ได้ในบล็อกโพสต์ของ Hans Muller หัวข้อกล่องแนวนอน: สี่แยก Polygon สำหรับการยกเว้น CSS
สถานะปัจจุบันของภูมิภาค CSS และการยกเว้น CSS
ครั้งแรกที่ผมพูดถึงภูมิภาค CSS และการยกเว้น CSS ต่อสาธารณะคืองาน Adobe Developer Pod ที่งาน Google I/O 2011 ในตอนนั้น ผมแสดงการสาธิตในเบราว์เซอร์ต้นแบบที่กำหนดเองของเรา ผลตอบรับเป็นไปอย่างกระตือรือร้นสุดๆ อย่างไรก็ตาม เรารู้สึกผิดหวังเมื่อผู้ชมพบว่าฟังก์ชันการทำงานที่ฉันแสดงไม่พร้อมใช้งานในเบราว์เซอร์หลักๆ ใดเลย
ฉันมาที่ Google I/O อีกครั้งในปีนี้ (2012) โดยคราวนี้เป็นผู้นำเสนอกับเพื่อนร่วมงานของฉันอย่าง Vincent Hardy และ Alex Danilo จาก Google (คุณสามารถดูการนำเสนอได้ที่นี่) ในอีก 1 ปีต่อมา มีการใช้ข้อกำหนดภูมิภาค CSS ประมาณ 80% ใน WebKit และใน Google Chrome เวอร์ชันล่าสุดอยู่แล้ว (โปรดทราบว่าปัจจุบันต้องเปิดใช้ภูมิภาค CSS ผ่าน chrome://flags
) การสนับสนุนเบื้องต้นสำหรับภูมิภาค CSS ก็มีให้ใช้งานใน Chrome สำหรับ Android แล้วเช่นกัน
นอกจากนี้ ทั้งภูมิภาค CSS และการยกเว้น CSS มีการใช้งานในการแสดงตัวอย่างของ Internet Explorer 10 และขณะนี้กำลังอยู่ในแผนกลยุทธ์สำหรับ Firefox ของ Mozilla ในปี 2012 Safari เวอร์ชันหลักถัดไปควรรองรับข้อกำหนดเกี่ยวกับภูมิภาค CSS ส่วนใหญ่ และการอัปเดตในภายหลังควรรวมเวอร์ชันที่เหลือด้วย
ข้อมูลด้านล่างคือลำดับเวลาโดยละเอียดของความคืบหน้าที่เราได้ดำเนินการกับภูมิภาค CSS และการยกเว้น CSS ตั้งแต่ข้อเสนอครั้งแรกต่อ W3C ในเดือนเมษายน 2011
บทสรุป
Adobe มีประสบการณ์มากมายในด้านข้อความ แบบอักษร และการเผยแพร่บนเดสก์ท็อปโดยทั่วไปผ่านเครื่องมือต่างๆ เช่น InDesign แม้ว่าเว็บจะเป็นแพลตฟอร์มที่มีประสิทธิภาพมากสำหรับข้อความอยู่แล้ว แต่เราต้องการใช้ความรู้และประสบการณ์ของเราในการผลักดันการนำเสนอข้อความให้มากยิ่งขึ้นไปอีก ภูมิภาค CSS และการยกเว้น CSS ช่วยให้เนื้อหายังคงวางโครงสร้างทางความหมาย ในขณะเดียวกันก็เปิดใช้เลย์เอาต์ที่เหมือนนิตยสารอย่างแท้จริง และทำให้เนื้อหาในเว็บมีความชัดเจนมากยิ่งขึ้น