來,一起幫忙制定CSS規範吧

2021-03-02 奇舞精選

編者按:奇舞團在積極參與WEB標準的討論與制定, 今天發的這篇文章是關於CSS工作組的正討論的一個特性,歡迎大家踴躍留言,貢獻自己的力量, 我們會幫大家反饋給CSS工作組的哦!

CSS工作組又要開會了,其中一個issue是「Allow shape-outside to apply to initial letter」。

標題一目了然,就是「讓initial-letter支持shape-outside」。為了方便大家參與,我們簡單介紹一下這兩個屬性。

shape-outside

shape-outside用於定義元素周圍的文本如何對其進行繞排,比如shape-outside: circle();會導致文本圍繞圓形對其繞排,而shape-outside: url(img/example.png);則會導致文本基於圖片的透明區域輪廓繞排,比如:

(圖片來源:https://drafts.csswg.org/css-shapes/#shape-margin-property)

initial-letter

initial-letter控制首字母下沉或上升的樣式,另一個屬性initial-letter-wrapping控制受首字母影響而縮短的行如何繞排首字母。

initial-letter接受兩個值:第一個控制首字母高度為幾行,第二個控制首字母下沉幾行。如果高度和下沉的行數相等,可以省略第二個值。比如initial-letter: 3;表示首字母高3行,下沉3行。

initial-letter-wrapping用於控制受首字母影響而縮短的行如何繞排,是繞著首字母的矩形盒子排,還是繞著首字母字形的輪廓排?這個屬性目前有如下幾個關鍵字值。


initial-letter是CSS Inline Layout Module Level 3中定義的一個屬性。CSS Inline Layout Module的目的是替換或擴展CSS 2.1中定義的相關模型。目前這個規範還在制定中。

(以上圖片來源:https://drafts.csswg.org/css-inline/)

讓inital-letter支持shape-outside

initial-letter-wrapping最多是讓受影響的行沿字母輪廓繞排,而shape-outside則支持比這多得多的形狀。因此就有人提出把shape-outside應用給首字母,也就是本文開頭的issue。

對此,CSS工作組也作出了積極回應,在CSS Inline Layout Module Level 3增加了這一句:

If the value of shape-outside is not none, shape-outside is used instead of the glyph outline.(如果shape-outside的值不是none,則應該依據shape-outside而不是字形繞排。)

API如何設計?

W3C特邀專家、CSS工作組資深編輯fantasai(Elika J. Etemad)最初建議給initial-letter-wrapping引入一個新的關鍵字值wrap。她希望在initial-letter-wrapping: wrap;存在時,shape-outside 才可以取代initial-letter-wrapping,否則仍然以initial-letter-wrapping 的值為準。

但CSS工作組成員、360前端工程師安佳對此發表了自己的看法。安佳認為不增加wrap值,讓shape-outside始終覆蓋initial-letter-wrapping 的值更好。理由是這樣簡單、好理解,還可以將initial-letter-wrapping 的值作為後備,即在未設置shape-outside或瀏覽器不支持shape-outside或shape-outside值寫錯的情況下,瀏覽器都會回退為繼續使用initial-letter-wrapping 的值。

基於安佳的意見,fantasai第二天又修改了自己的建議,看樣子她也同意了不引入新wrap值,而是以現有的all值作為接納shape-outside的開關:

initial-letter-wrap: all;

shape-outside: circle(); / _or something else_ /

也就是說,如果initial-letter-wrap: all;和shape-outside: ...;同時存在,則依據shape-outside來繞排。否則,如果initial-letter-wrap是其他值(如none、fisrt或grid),則即使shape-outside: ...;存在也不起作用。

這就是截止本文章發布時,CSS工作組對該API的最新意見。筆者認為,經過前面的討論和修訂,這個API相對更合理了,體現了CSS標準制定的開放性。如果你對此也有自己不同的看法,歡迎留言。

關於奇舞周刊

《奇舞周刊》是360公司專業前端團隊「奇舞團」運營的前端技術社區。關注公眾號後,直接發送連結到後臺即可給我們投稿。

相關焦點

  • HTML DIV+CSS 命名規範大全
    網頁製作中規範使用DIV+CSS命名規則,可以改善優化功效特別是團隊合作時候可以提供合作製作效率,具體DIV CSS命名規則CSS命名大全內容篇。常用DIV+CSS命名大全集合,即CSS命名規則我們開發CSS+DIV網頁(Xhtml)時候,比較困惑和糾結的事就是CSS命名,特別是新手不知道什麼地方該如何命名,怎樣命名才是好的方法。
  • 制定「網癮」診療規範不必界限分明
    目前,我國尚沒有關於這一領域的診療規範,但正在制定之中。「網癮」影響孩子的前途與健康,引發了社會的廣泛關注,成為一個必須直面的話題。有人認為,「網癮」可以說是一個僅次於「毒癮」的社會毒瘤,尤其是對青少年來說,「網癮」的危害更大,它不僅體現在影響身體健康上,還體現在造成認知障礙、心智情商失常、逃避現實與社會適應困難、學業荒廢、人際關係惡化、嚴重的心理衝突等等方面。
  • 網頁CSS設計樣式基礎知識點 小白教程
    1.css樣式中的選擇器嚴格區分大小寫,屬性和屬性值不區分大小寫,但是按照規範一般「選擇器、屬性和屬性值」採用小寫的方式。2.多個屬性之間必須用英文狀態下的分號隔開,最後一個屬性後的分號可以省略,但是為了方便閱讀和添加新樣式,最好保留,養成良好的書寫習慣!
  • 【前端-CSS動畫】製作聖誕節彩燈
    "> <link rel="stylesheet" href="https://fonts.googleapis.com/css?請用百分比來規定變化發生的時間,或用關鍵詞 "from" 和 "to",等同於 0% 和 100%。0% 是動畫的開始,100% 是動畫的完成。為了得到最佳的瀏覽器支持,您應該始終定義 0% 和 100% 選擇器。例子:
  • HTML普通流以及css中position的介紹
    塊級元素和內聯元素的最大區別那就是塊級元素會以新行來結束和開始,而內聯元素不會。在沒有特別制定的情況下,一個頁面都是按照普通流的形式加載出來,每個塊級元素佔據一行,按照先後順序從上到下依次加載,包含在塊級元素中的內聯元素則是依次橫向排列,如果空間不夠則換行。具體如下圖:
  • 中共中央:制定完善對網絡直播、自媒體等的規範管理辦法
    來源:一財網完善網絡信息服務方面的法律法規,修訂網際網路信息服務管理辦法,研究制定網際網路信息服務嚴重失信主體信用信息管理辦法,制定完善對網絡直播、自媒體、知識社區問答等新媒體業態和算法推薦、深度偽造等新技術應用的規範管理辦法。
  • CSS現狀和如何學習
    而是將每個CSS功能特性拆分成獨立的功能模塊,並且以Level 1, Level2,Level 3等方式來管理CSS規範中的特性:層疊上下文中具有相同堆棧級別的框根據文檔樹出現的順序層疊在一起。這些模型一般用來描述布局,它們可能會定義一些額外的盒子類型:就這些概念也足讓我們感到煩人了吧。我想你看到這些概念,應該不會再說CSS容易了。有了這些概念,我們再來說CSS中的格式化上下文。我想你或多或少聽過這個詞吧。
  • 這樣做中考數學複習事半功倍:制定目標、分清主次、規範書寫
    結合幾年的教學經驗給你提幾點建議:首先,認清自己、制定目標第一輪的複習,是相對來說比較細的,每個中考的知識點都會提到,也是比較基礎的。所以,適用於百分之九十以上的學生。而第二輪的複習是知識點、線結合及專題的訓練。並不是適合每個學生都用相同的時間去學習。所以,一定要對自己有一個清醒的認識和準確的定位。
  • vue+swiper+animate.css製作全屏滾動H5
    blog.csdn.net/qq_41725450    年底了,接到需求要製作年度帳單,形式就是全屏滾動H5頁面,翻頁時給頁面元素添加動畫,大概效果如下:H5長翻頁動畫效果接下來就來介紹一下我的製作步驟
  • 青島市人大代表王軍:殘疾人車輛數量增多 制定規範保障交通安全
    青島市人大代表、山東海康律師事務所黨支部書記、主任王軍王軍大眾網·海報新聞青島5月16日訊(記者 郭欣 見習記者 侯祥家) 在今年的青島市兩會上,青島市人大代表、山東海康律師事務所黨支部書記、主任王軍建議,隨著殘疾人車輛數量的增多,有關部門應制定規範保障交通安全。
  • 巧用CSS cross-fade(.)實現背景圖像半透明效果
    前段時間有挺火的一個小遊戲,拿兩張圖片疊加在一起,看看複合人物的效果,用css怎麼實現呢?可能大部分人想到的是將兩個img用定位的方式疊加在一起,分別設置透明度,當然這個辦法是可行的,其實css還提供了一個cross-fade()方法,講兩張圖片作為背景圖引入,可以實現相同的效果。
  • 使用CSS技術實現Netflix Logo動畫效果
    我嘗試使用 Netflix(譯者註:一家在線影片租賃提供商)時,立即就把我吸引住了。我觀看了一些不得不在它處才能觀看的節目。每一集電視劇或者電影都以 Netflix 動畫作為開始。在觀看了幾集電視劇之後,我想到可以用 CSS 來實現 Netflix 的 logo 動畫,於是我看了幾部作品之後,就用 CodePen 來重現這個 logo。
  • 前端進階:css必知的幾個底層知識和技巧
    在介紹完問題學習法之後,進入我們今天的主題,接下來我會介紹css的一些底層的知識的現象,藉此來讓大家對css有更深入的理解。一.css尺寸1.首選最小寬度–實現複雜圖形效果在css中,圖片和文字的權重遠大於布局,因此當width:0時表現出來的寬度就是「首選最小寬度」。中文的最小寬度為每個漢字的寬度,西方文字取決於連續的英文字符單元。
  • 【權威發布】成都中院制定規則規範人身安全保護令適用
    【權威發布】成都中院制定規則規範人身安全保護令適用 2020-04-27 18:07 來源:澎湃新聞·澎湃號·政務
  • css動畫創建及使用
    keyframes name {}@-webkit-keyframes name {}@-moz-keyframes name {}@-o-keyframes name {}實例:下面創建一個圍繞固定軌跡進行移動的動畫:<style type="text/css
  • 49期:利用clip-path製作css動畫
    引最近工作項目中有製作動畫效果的需求,查閱了一些網站之後,在一個名叫species-in-pieces的網站(species-in-pieces.com)看到了以下神奇的動畫效果:用Chrome的開發者工具窺探一番之後,發現這個酷炫的動畫效果基本是純css實現的!其實現核心就是css3中加入的 clip-path 屬性。
  • CSS的clip-path
    這也就造成了很多設計師的創意發揮,就算是有創意,前端實現也將付出巨大的開發成本。雖然CSS Shapes Module Level 1(CSS形狀模塊標準1)的規範出現,可以打破矩形設計的限制。但仍需要一些不規則的圖形。而早前實現一些不規則的圖形,都需藉助其它的元素功能,比如CSS繪製圖形,很多時候就依賴於偽元素,或多個元素。
  • 強大的CSS原生樣式支持,不費吹灰之力就搞定註冊頁面
    讓我們接著看看老張的詳解步驟吧。實施步驟詳解首先,打開報表設計器,先拖動輸入框組件和按鈕組件,把需要製作的樣式排版好。其次,既然要高大上,那深沉高級的背景肯定不能少。我們選中編輯界面的表單組件,然後打開自定義樣式設置對話框:在這裡寫的css樣式就會自動適用於組件上啦!這裡我們選擇的是表單組件,所以css樣式就會被加入到表單中渲染。
  • 用CSS畫一個三角形
    除了畫一個三角形之外,還可以畫其它很多形狀,像五角形、愛心等等,詳見css-tricks(地址:https://css-tricks.com/examples/ShapesOfCSS/),但是這種由於藉助了transform等屬性,所以兼容性沒有畫一個三角形的好,並且大小不好擴展,你要改它的大小,要麼你知道它畫的原理,然後一個個去改各個構成的屬性位置和大小,要麼用scale,用scale
  • 純CSS實現常見的UI效果
    舉個例子,倘若你想創建多個半徑不同的同心圓,這個Mixin將會很有幫助aqua.cssaqua.css是筆者開源的一個優雅的、輕量級的CSS框架。裡面有很多常用的組件以及常用的樣式類,用它來寫CSS體驗將會非常爽在codepen上,筆者準備了一個aqua.css模版,大家可以用它來進行CSS的創作常見UI效果條紋效果