AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

讓CSS官方后悔的一些決定

來源: 責編: 時間:2023-10-13 14:38:03 269觀看
導讀CSS工作組在其官方WIKI[1]總結了這些年CSS在設計上犯的46條失誤。這些錯誤大體可以概括為5類:屬性key、value設計失誤布局、對齊上的設計失誤顏色相關的失誤選擇器設計失誤本文會選一些「我覺得有意思」的失誤來講講。

VbR28資訊網——每日最新資訊28at.com

CSS工作組在其官方WIKI[1]總結了這些年CSS在設計上犯的46條失誤。這些錯誤大體可以概括為5類:VbR28資訊網——每日最新資訊28at.com

  • 屬性key、value設計失誤
  • 布局、對齊上的設計失誤
  • 顏色相關的失誤
  • 選擇器設計失誤

本文會選一些「我覺得有意思」的失誤來講講。完整的失誤列表見上述官方WIKI。VbR28資訊網——每日最新資訊28at.com

!important語法

!important語法用來增加樣式的權重,畢竟,感嘆號通常表達「強調」的意思。但在編程語言中,!通常是「取反」的意思,比如:VbR28資訊網——每日最新資訊28at.com

const isValid = true;!isValid // false

初次接觸CSS的工程師很可能會覺得!important是「不important」的意思,這與該語法實際想表達的意思完全相反。VbR28資訊網——每日最新資訊28at.com

所以,工作組認為!important是個糟糕的語法。VbR28資訊網——每日最新資訊28at.com

z-index語法

z-index屬性用于設置定位元素及其后代元素或flex元素的Z軸層疊順序,z-index較大的元素會疊在較小元素的上面。VbR28資訊網——每日最新資訊28at.com

在編程語言中,index是「索引」的意思,并沒有表達出「層疊」的意思。所以,工作組認為叫z-order或干脆叫depth(深度)會更好。VbR28資訊網——每日最新資訊28at.com

同時,他們也認為,這個屬性應該對所有元素有效(而不是只對定位元素及其后代,以及flex元素有效)。VbR28資訊網——每日最新資訊28at.com

單個元素margin的塌陷

「margin坍塌」是CSS中的基礎特性,假設有2個上下重疊的塊級元素:VbR28資訊網——每日最新資訊28at.com

  • 上面的元素margin-bottom為20px
  • 下面元素margin-top為30px

按照直覺來看,他們之間的margin應該是50px(20px + 30px),但是由于「margin坍塌」,他們之間的margin為其中較大的值(30px)。VbR28資訊網——每日最新資訊28at.com

VbR28資訊網——每日最新資訊28at.com

上面是2個塊級元素之間的「margin坍塌」。VbR28資訊網——每日最新資訊28at.com

對于單個塊級元素,也存在「margin坍塌」 —— 如果一個元素內部沒有內容,或者它的內容被清除(clear)了,那么這個元素的上下margin會發生塌陷。VbR28資訊網——每日最新資訊28at.com

這意味著,即使你為元素的頂部和底部都設置了margin,但實際上他們會合并成一個(值等于兩者中的最大者,而不是它們的總和)。VbR28資訊網——每日最新資訊28at.com

這種塌陷行為可能會導致一些讓人懵逼的布局問題。比如,你試圖通過增加一個元素的margin-bottom來增加它下面的空間,但不起作用,可能就是因為增加的 margin塌陷掉了。VbR28資訊網——每日最新資訊28at.com

所以,CSS工作組認為這不是個好設計。VbR28資訊網——每日最新資訊28at.com

rgb與rgba

rgba與hsla都是設置顏色的屬性,相比于rgb與hsl,他們還可以設置alpha值(透明度)。VbR28資訊網——每日最新資訊28at.com

所以,為啥不直接讓rgb與hsl能夠接收第四個參數(alpha值)呢?工作組很費解 自己當初咋想的。VbR28資訊網——每日最新資訊28at.com

border-radius

border-radius直譯為「邊界半徑」,當初應該取名叫corner-radius(拐角半徑)。VbR28資訊網——每日最新資訊28at.com

畢竟,這就是設置元素拐角處圓角的半徑的啊~~VbR28資訊網——每日最新資訊28at.com

絕對定位的替換元素

所謂「替換元素」,是指「外觀和尺寸由外部資源決定」的元素,比如:VbR28資訊網——每日最新資訊28at.com

  • img
  • object(嵌入的對象,如Flash動畫)
  • video
  • iframe

工作組認為,當「替換元素」被絕對定位時,偏移屬性不應該改變元素的位置,而應該改變尺寸。VbR28資訊網——每日最新資訊28at.com

比如,當對絕對定位的img設置left: 20px; right: 20px;,那么他應該被拉伸到「從左側20px到右側20px」的長度,而不是移動到距離左側20px的位置。VbR28資訊網——每日最新資訊28at.com

這個規則對于響應式布局是非常有用的,因為它允許元素自動調整其大小以適應不同的視口寬度。VbR28資訊網——每日最新資訊28at.com

總結

上面只是挑了幾個我覺得有意思的失誤來聊。除此之外,還有很多是使用習慣上的設計失誤,個人認為比較主觀。比如:VbR28資訊網——每日最新資訊28at.com

  • 子孫選擇器應該使用?符號,即:
// 當前的子孫選擇器div p {  color: green;}// 期望的子孫選擇器div ? p {  color: green;}
  • 兄弟選擇器應該用++符號,即:
// 當前的兄弟選擇器div ~ p {  color: green;}// 期望的兄弟選擇器div ++ p {  color: green;}

不知道上述改動,你能接受么?VbR28資訊網——每日最新資訊28at.com

參考資料

[1]官方WIKI:https://wiki.csswg.org/ideas/mistakes。VbR28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-13360-0.html讓CSS官方后悔的一些決定

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 超越傳統線程:探索Java Loom協程(纖程/虛擬線程)的無限潛力

下一篇: 去哪兒網架構演進之路:微服務的盡頭原來是DDD……

標簽:
  • 熱門焦點
  • 小米降噪藍牙耳機Necklace分享:聽一首歌 讀懂一個故事

    在今天下午的小米Civi 2新品發布會上,小米還帶來了一款新的降噪藍牙耳機Necklace,我們也在發布結束的第一時間給大家帶來這款耳機的簡單分享。現在大家能見到最多的藍牙耳機
  • Redmi Buds 4開箱簡評:才199還有降噪 可以無腦入

    在上個月舉辦的Redmi Note11T Pro系列新機發布會上,除了兩款手機新品之外,Redmi還帶來了兩款TWS真無線藍牙耳機產品,Redmi Buds 4和Redmi Buds 4 Pro,此前我們在Redmi Note11T
  • 消息稱迪士尼要拍真人版《魔發奇緣》:女主可能也找黑人演員

    8月5日消息,迪士尼確實有點忙,忙著將不少動畫改成真人版,繼《美人魚》后,真人版《白雪公主》、《魔發奇緣》也在路上了。據外媒消息稱,迪士尼將打造真人版
  • 三言兩語說透設計模式的藝術-簡單工廠模式

    一、寫在前面工廠模式是最常見的一種創建型設計模式,通常說的工廠模式指的是工廠方法模式,是使用頻率最高的工廠模式。簡單工廠模式又稱為靜態工廠方法模式,不屬于GoF 23種設計
  • 如何正確使用:Has和:Nth-Last-Child

    我們可以用CSS檢查,以了解一組元素的數量是否小于或等于一個數字。例如,一個擁有三個或更多子項的grid。你可能會想,為什么需要這樣做呢?在某些情況下,一個組件或一個布局可能會
  • 多線程開發帶來的問題與解決方法

    使用多線程主要會帶來以下幾個問題:(一)線程安全問題  線程安全問題指的是在某一線程從開始訪問到結束訪問某一數據期間,該數據被其他的線程所修改,那么對于當前線程而言,該線程
  • 從零到英雄:高并發與性能優化的神奇之旅

    作者 | 波哥審校 | 重樓作為公司的架構師或者程序員,你是否曾經為公司的系統在面對高并發和性能瓶頸時感到手足無措或者焦頭爛額呢?筆者在出道那會為此是吃盡了苦頭的,不過也得
  • ESG的面子與里子

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之三伏大幕拉起,各地高溫預警不絕,但處于厄爾尼諾大“烤”之下的除了眾生,還有各大企業發布的ESG報告。ESG是“環境保
  • 華為Mate60標準版細節曝光:經典星環相機模組回歸

    這段時間以來,關于華為新旗艦的爆料日漸密集。據此前多方爆料,今年華為將開始恢復一年雙旗艦戰略,除上半年推出的P60系列外,往年下半年的Mate系列也將
Top