国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

最被低估的 CSS 特性,這些東西居然已經存在十幾年

開發 前端
我對著 MDN 的列表愣住, 那一刻的感覺就像: 我以為自己住在 CSS 的單間里, 結果旁邊居然有一棟帶花園的 CSS 大別墅, 而且已經蓋好好多年了。

在改一個小組件的 bug 時,我意外挖出一串 CSS 隱藏技能,直接把 UI 質感拉高了一個檔次——更離譜的是,這些東西居然已經存在了十幾年,而我剛知道。

最魔幻的部分是:

它們一直安靜躺在文檔里,裝死。

你有沒有過這種時刻: 半夜兩點刷 CSS 文檔,困得頭昏腦漲,結果刷著刷著突然看到一行代碼,讓你整個人清醒過來——

“等等,CSS 還能這樣???”

上周我就是這個人。 而且不是一次,是好幾次。

我寫 CSS 好多年了。 做過一堆網站,扛過無數布局屠殺現場,自以為對這門語言已經非常熟。

結果事實證明: CSS 一直在對我隱瞞實力。

也大概率在對你隱瞞。

清算,一句看似無聊的問題開始的

同事隨口問我一句: “你知道 CSS 里有多少個函數嗎?”

我愣了幾秒。 腦子里飛快閃過:flexbox 相關的、transform 的、color 的…… 我心里估了個數:40 來個?最多 50?

正確答案:108 個。

一百零八。

我對著 MDN 的列表愣住, 那一刻的感覺就像: 我以為自己住在 CSS 的單間里, 結果旁邊居然有一棟帶花園的 CSS 大別墅, 而且已經蓋好好多年了。

于是我當場決定: 不裝了,攤開看。 我要跳進那個“沒人去翻”的角落, 去看那些“這玩意兒為什么存在”的奇葩特性。

然后,我就挖到了這些東西。

super-ellipse():一行代碼,做出蘋果級的“圓角方形”

還記得蘋果當年把“不是圓不是方”的那個小圖標形狀搞火嗎? 介于圓形和圓角矩形之間,又莫名順眼—— 那種形狀有個名字:squircle(超橢圓)。

結果 CSS 現在居然有現成函數做這個:

border-radius: super-ellipse(2);

在我知道這個函數之前: 我一直在用各種詭異的 border-radius 組合, 像調香水一樣調數值, 想靠“邊試邊蒙”凹出一個接近蘋果圖標的形狀—— 接近是接近,就是總有點不對勁。

知道之后: 一句話。 一個函數。 直接給你數學意義上的“完美 squircle”。 那種蘋果圖標打磨多年的形狀,現在可以寫在 CSS 里。

super-ellipse() 目前還是實驗性函數, 大多數瀏覽器要開特性開關才能玩, 它屬于正在長大的 CSS Shapes Level 2 規范的一部分。 你可以把它用在 clip-pathoffset-path, 還有新的 corner-shape 上。

簡單說: 就像在你的樣式表里, 塞進了一個會寫高等數學的“形狀雕刻師”。

提前打個預防針: 這玩意兒屬于刀太鋒利的一檔。 生產環境用之前要做好回退方案。 但看著 CSS Working Group 用數學精準度去塑造視覺這件事—— 你真能感覺到: 一些“未來的設計語言”正在被寫進規范。

那個我從來沒當回事的命名空間選擇器

接下來這個,是真的把我三觀擰了一下:

CSS 竟然有“命名空間”(namespace), 還有一個帶豎線的選擇器。

@namespace wes url(westboss.com);
wes|p { color: red; }

這個語法已經活了 11 年。 十一年啊。

故事還可以更怪一點—— 你甚至可以在 JavaScript 里,用自定義命名空間來創建元素:

document.createElementNS('westboss.com', 'p');

然后你的 CSS 里,就可以只針對這些“在特定命名空間下”的元素,用豎線選擇器去精準上樣式。

現實問題來了:“我真會在日常 HTML 里用它嗎?”

刀架在脖子上講真話: 大概率不會。

但有幾個場景,它是真的有用——

  • SVG 定向美化SVG 元素生活在 http://www.w3.org/2000/svg 這個命名空間里。 你可以單獨針對它們寫樣式,不會誤傷同名的 HTML 標簽。
  • 寫 XML 的人還沒死光如果你還在服務一些 XML 文檔(是的,世界上仍然有這種崗位), 命名空間能讓你對不同 XML 詞匯表里的元素進行“無沖突”定向裝扮。
  • 第三方小掛件的隔離區你要寫一個可以插到別人站點里的小部件? 那就自己造一個命名空間,在里面建元素、在 CSS 里用 namespace 選擇器,只給它們上樣式, 外站再亂,你也有自己的一小塊絕對領地。
  • Web Components 出現之前的“早期封裝嘗試”現在有 Shadow DOM 之后,大家都靠它解決“樣式隔離”, 但命名空間當年其實是“先發明,再被冷落”的那一批。

你明天就會用上它嗎? 多半不會。

但它在那兒提醒你一件事: CSS 一開始就不只打算服務 HTML, 它的設計目標是:“可以為任何結構化文檔上妝”。 而這種靈活度,現在還被壓在規范角落吃灰。

@property:那個把我從樣式地獄里拽出來的救命繩

還記得 CSS 自定義屬性嗎? 那些我們天天寫的:

:root {
  --color: blue;
}

大部分人就用到這里: 當變量用,很好用,也就停了。

但其實它們還有一個很少被用到的“覺醒形態”: 你可以“注冊”它們。

@property --angle {
  syntax: '<angle>';
  inherits: false;
  initial-value: 0deg;
}

為什么這行代碼這么有存在感?

1. 動畫終于——真的——開始正常工作了

沒注冊之前, 你如果想讓漸變角度在 hover 時平滑過渡, 大多情況下只會看到: 咔,直接跳過去。

因為在 CSS 看來: 未注冊的變量 = 一坨字符串, 沒辦法按“角度”去插值。

注冊之后就不一樣了: 你告訴 CSS: “喂,這玩意兒是 <angle> 類型, 你按角度給我算。” 于是漸變開始順滑旋轉, 而不是一言不合瞬移。

2. 你終于能說一句:別給我往下亂傳!

inherits: false 這行, 簡直是我那一周的精神支柱。

我當時在寫一個卡片組件, 這個組件可以嵌套卡片里再套卡片。 問題來了: 我只想在最外層改顏色, 不想所有內層卡片都跟著一起變臉。

改之前: 寫一堆 class,調 specificity,搞得跟寫 CSS 對抗賽一樣。

改之后: 一句話——inherits: false;變量不再自動往子元素身上亂跑, 世界終于安靜下來。

3. default 值變成“理所當然”,而不是“到處兜底”

以前我們防御性寫法是這樣的:

var(--angle, 0deg)

到處寫,到處兜底。

注冊以后: 你只要在 @property 里給一個 initial-value, 所有元素默認就是這個值, 除非你親自去改。

我看到 inherits 的那一刻,真的小聲罵了一句: “這玩意兒早幾年出現,我就不用繞那么多奇怪寫法了。”

我們繞過太多問題繞到都忘了: 原來這些問題是可以被“正面解決”的。

xywh():矩形也可以有點“高級臉”

需要畫一個矩形 clip-path? 傳統思路: 用 polygon(),自己算四個角坐標。

現在可以這么寫:

clip-path: xywh(20px 20px 100% 100% round 10px);

語法很直白:

  • x 起點
  • y 起點
  • 寬度
  • 高度
  • 可選的圓角(round 10px

更有趣的地方在這兒: 你用 xywh() 做一條路徑, 再讓一個元素沿著這條路徑運動—— 如果你寫了 round, 它轉彎的時候不是硬生生 90° 拐彎, 而是“順著圓角滑過去”。

這種小細節, 就是那種把“能用”變成“好用”、 再從“好用”變成“順眼舒服”的微交互。

crossfade():當兩張背景圖想談一場體面地分手

你可以用一行 CSS, 在兩張背景圖之間做平滑過渡:

background-image: crossfade(
  url(image1.jpg), 
  url(image2.jpg), 
  50%
);

以前的做法:

  • 兩個絕對定位的層
  • 各種 z-index
  • 再用 opacity 慢慢調

寫完代碼的你, 看著層級關系, 只想把自己 mute 掉。

現在呢:

  • 一行 background-image
  • 兩張圖
  • 一個百分比
  • 就是一段真正意義上的 crossfade: 一張淡出,另一張淡入。

那百分比就是混合比例。 你調它,界面就像 DJ 調推子一樣平滑。

小字部分也別忘:

  • Safari 從 2011 年就默默支持了
  • Firefox ……在路上
  • 至于“什么時候到”:大家心照不宣

圖片


打印樣式:你以為沒人看,其實瀏覽器替你做了決定

你可能沒認真想過—— 用戶點“打印”那一刻, 瀏覽器會主動對你的頁面“動手腳”:

  • 背景圖?去掉。
  • 某些顏色?自動調對比度。
  • 某些元素?自己決定要不要“省掉”。

這一切都在你不知道的情況下發生, 直到你看到打印預覽,開始懷疑人生。

除非你寫了這句:

print-color-adjust: exact;

默認值是 economy: 翻譯成人話就是——


“瀏覽器你看著辦,怎么省墨怎么來。”

而 exact 則是:


“別動! 按我設計的給我打出來。 背景圖保留,顏色別改。 相信設計師一次。”

我順著這個屬性一頭扎下去,發現:CSS 打印樣式整個就是另一個平行宇宙。

你可以控制:

  • 頁碼顯示
  • 自定義紙張尺寸
  • 頁面如何分頁
  • 哪塊內容必須保持在一頁內

有一次我只用 CSS,做了一套“批量打印信封地址”的排版。 調試過程真的很想把 Chrome 打印預覽扔出窗外—— 它展示的效果,不一定是打印機吐出來的那一個。

但當你終于馴服它的時候, 那種“我用前端控制了紙張”的掌控感, 還是挺爽的。

那些你沒背全的濾鏡函數

快,閉上眼睛想想: 你能說出幾個 CSS filter 函數?

大概率你能想到 blur(), 也許還有 grayscale(), 最多再加一個 contrast()

但其實,一共有 10 個

  • blur() —— 誰都知道的高斯模糊
  • brightness() —— 每次都被忘掉的亮度調節
  • contrast() —— 無障礙設計的好幫手
  • drop-shadow() —— 當 box-shadow 不夠用了就該它上場
  • grayscale() —— 一鍵黑白濾鏡
  • hue-rotate() —— 把色相輪裝進 CSS 里
  • invert() —— 早期的“偽暗色模式”經典招數
  • opacity() —— “既然都有透明度屬性了,那就濾鏡里也再給你一個”
  • saturate() —— 增加或拔掉飽和度
  • sepia() —— 一鍵老照片情緒

真正讓我眼前一亮的是 hue-rotate()

你可以把一個元素的整體色彩, 沿著色相環整個旋轉。

再搭配 mix-blend-mode 這種混合模式, 你能做出一堆“看起來像是設計師加了特效”的效果。

在知道這些之前: 我會在 PS 里改色,導出好幾版圖片, 再用 CSS 去切換不同的資源。

知道之后: 一個濾鏡函數, 無限色彩版本, 全由 CSS 變量控制, 而且還能加動畫,hover 一下就變。

圖片


CSS 真相:它既簡單到過分,又復雜到離譜

讓我最上頭的一點是—— CSS 有一種很矛盾的雙重氣質。

一方面,它簡單到讓人產生錯覺:

  • 一個 display: flex;
  • 幾個 margin / padding
  • 加兩個媒體查詢

你就能在一個周末搭出一個像模像樣的網站。

但另一方面, 等你刷到 super-ellipse()、命名空間選擇器、 再瞥一眼“彩色字體”的規范(是的,字體本身可以內置多色,這又是一個坑), 你會突然意識到:


CSS 根本不只是“寫樣式”, 它是一套被默默迭代了幾十年的規范體系

一層又一層的能力疊上去。 有的家喻戶曉,有的掉進冷宮, 還有一些像 Houdini 那樣, 從 2016 年喊到現在, 依舊處于“半實驗、半落地”的尷尬狀態。

最戳心的現實是: 我寫 CSS 靠這個吃飯好多年了, 卻剛剛才發現,有些特性 2013 年就已經存在。

那條豎線命名空間選擇器? 11 歲了。

那個幫我解決繼承問題的 @property? 我本可以提前好幾年少掉很多“黑魔法寫法”。

這會讓你忍不住想: 還有多少東西,就這樣安靜躺在規范里, 等著被你偶然翻到?

輪到你了

現在,真的可以打開 MDN,搜一下:“CSS functions”

把那 108 個函數的列表慢慢劃過去。

我敢打賭, 你一定會看到某個名字, 然后條件反射一句:


“等下,這也在 CSS 里???”

這不是你“學得不夠用功”, 而是這門語言本身就大到超出人類記憶上限。

它太大, 大到沒有人能把它完全裝進腦子里;

它太奇怪, 奇怪到總會有一些規范角落, 是“年少輕狂時拍板、十幾年后還在瀏覽器里”的存在。

你哪天要是覺得: “我已經完全掌握 CSS 了。”

那大概率是你停止學習的那一天。 而你停止學習的那一天, 就是你的代碼開始變得無聊的那一天。

所以,去翻你自己的那個“怪功能”吧。

允許自己把東西寫崩一次。 再用一個之前從沒用過的特性把它修回來。

因為在那 108 個函數里, 很可能藏著一個, 正好是你這些年一直繞著走、 卻從沒意識到可以正面解決的問題。

最近你挖到的冷門 CSS 特性是什么?

責任編輯:武曉燕 來源: 大遷世界
相關推薦

2022-08-03 08:10:43

零信任網絡安全防御體系

2022-08-18 10:56:36

零信任網絡安全

2018-11-08 12:43:21

硅谷企業Facebook

2019-04-15 14:03:50

代碼軟件編碼

2012-11-14 13:55:10

2016-08-15 15:35:35

群暉NAS群暉發布會

2020-05-26 13:49:59

云計算生物云計算資源

2023-06-16 07:14:37

英特爾酷睿產品

2009-02-10 09:54:28

企業信息化周宏仁

2019-11-15 09:43:31

人生第一份工作大學程序員

2013-09-22 09:36:11

2021-10-22 21:00:38

微軟Windows 11Windows

2024-12-03 16:39:41

2024-01-03 14:07:06

技術ChatGPTIT

2010-08-24 09:12:14

CSS

2018-08-22 10:12:07

2011-07-25 10:27:54

諾基亞第二季度財報Symbian

2023-11-09 09:02:26

TypeScriptas const

2025-05-15 00:01:00

2023-02-14 07:50:30

Python模塊
點贊
收藏

51CTO技術棧公眾號

深夜福利在线看| 久久国产福利国产秒拍| 色婷婷综合视频在线观看| 日本高清不卡三区| 亚洲成人高清| 欧美午夜一区二区三区免费大片| 日韩欧美精品一区二区三区经典| 日韩国产欧美一区二区三区| 日日碰狠狠躁久久躁婷婷| 97se亚洲国产综合自在线不卡 | 不卡av在线网站| 日韩久久99| 九色91av视频| 91综合视频| 秋霞久久久久久一区二区| 丝袜美腿亚洲一区| 超薄肉色丝袜足j调教99| 成人h版在线观看| 精品孕妇一区二区三区| 日韩禁在线播放| 欧美色图婷婷| 欧美人牲a欧美精品| 亚洲激情图片小说视频| 99爱视频在线| www.亚洲精品| 黑人巨茎大战欧美白妇| 美腿丝袜亚洲色图| 日韩欧美99| 青娱乐精品在线视频| 日本一区二区三区www| 26uuu亚洲婷婷狠狠天堂| 肉丝一区二区| 亚洲精品第一国产综合精品| av免费在线网站| 中日韩美女免费视频网址在线观看| 久久人体大尺度| 亚洲一区影音先锋| 动漫成人在线观看| 色乱码一区二区三区88| av女优在线| 日韩大陆欧美高清视频区| 亚洲国产中文在线| 成人疯狂猛交xxx| 国产一区二区在线看| 久草在在线视频| 欧美三级免费观看| 91制片在线观看| 久久久视频免费观看| 国产成人精品亚洲午夜麻豆| 日本精品免费在线观看| av资源网一区| 色噜噜狠狠一区二区| 精品动漫av| 91精品国产综合久久久久久久 | 久久久加勒比| 国产精品高清在线观看| 精品一区二区三区在线播放视频| 8888四色奇米在线观看| 日韩美女毛茸茸| 精品视频在线免费看| 蜜臀久久99精品久久久久久9| 天堂亚洲精品| 国语精品中文字幕| 自拍视频在线观看一区二区| 亚洲天堂网站| 亚洲免费伊人电影| 91碰在线视频| 欧美日韩色一区| 992tv国产精品成人影院| 日韩视频在线播放| 成人黄色免费在线观看| 少妇视频在线| 99在线高清视频在线播放| 国产欧美精品一区二区色综合 | 91精品久久久久久综合五月天 | 综合欧美亚洲| 欧美精品一区在线发布| 亚洲成人自拍偷拍| 老司机在线精品视频| 分分操这里只有精品| 欧美激情资源网| 美女网站视频在线| 欧美国产极速在线| 午夜电影网亚洲视频| 欧美日韩岛国| 成年人在线看| 成人精品一区二区三区电影黑人| 图片区小说区国产精品视频| 欧美理论电影在线精品| 369你懂的电影天堂| 国产精品亚洲美女av网站| 亚洲第一成年网| 久久99久久久欧美国产| 九九热线视频只有这里最精品| 国产欧美一区二区| 国产精品丝袜黑色高跟| 黄网页在线观看| 久久久精品久久| 久久精品一区二区国产| 最后生还者第二季在线观看| 日韩电影中文字幕| 亚洲激情中文| 色总=综合色| 日韩视频一区二区在线观看| 福利一区二区| 中文字幕日韩一区二区三区不卡| 亚洲国产成人91porn| 日韩欧美ww| 免费网站在线观看视频| 精品国产欧美一区二区三区成人| 国产日韩欧美不卡在线| 色综合久综合久久综合久鬼88| 欧美极品视频| 欧美精品福利在线| 久久精品国产999大香线蕉| 在线视频手机国产| 国产91精品青草社区| av不卡免费电影| 视频在线观看入口黄最新永久免费国产 | 欧美亚洲动漫另类| 精品在线播放| 青青在线视频观看| 国产精品igao视频| 国产偷v国产偷v亚洲高清| 久久99久久| 最近2019免费中文字幕视频三 | 8x8ⅹ拨牐拨牐拨牐在线观看| 国产精品国产三级欧美二区| 黑人巨大精品欧美一区二区一视频| 日本一区二区三区视频在线| 色狠狠久久av五月综合| 亚洲一区二区三区视频| 国产精品麻豆成人av电影艾秋| 99热一区二区| 91精品国产综合久久男男| 亚洲国产专区| 超碰资源在线| 成人免费视频网站在线看| 久久综合九色99| 欧美激情亚洲综合一区| 3atv在线一区二区三区| 中文字幕免费在线观看视频一区| 欧美成人综合| 精品精品视频| av免费在线免费| 男人天堂av网站| 国产情侣第一页| 国产女主播一区二区| 欧美激情一区二区久久久| 精品久久久久久久久久久久久久久久久 | 久久久精品国产99久久精品芒果| 亚洲精品aa| 国产综合免费视频| 国产日本欧美一区二区三区在线| 制服.丝袜.亚洲.中文.综合| 久久精品在线观看| 欧美日韩亚洲国产精品| 日韩另类视频| 最新av网站在线观看 | 在线观看成人黄色| 国产成人精品1024| 久久国产精品美女| 意大利激情丛林无删减版dvd| 99免费在线观看视频| 欧美一级黄色大片| 成人免费高清在线| 国产一级成人av| 中文在线а√在线| www亚洲国产| 7777kkkk成人观看| www日韩中文字幕在线看| 一二三四视频在线中文| 欧美视频在线第一页| 神马国产精品影院av| 国产精品无遮挡| 91精品综合久久久久久久久久久| 国产日韩专区在线| 精品av久久707| 不卡的av网站| 日韩三级视频| 嫩草嫩草嫩草嫩草| 成人激情直播| 欧美色综合影院| 国产91精品精华液一区二区三区 | 黄色成人在线看| 国产精品69av| 精品欧美乱码久久久久久1区2区| 99视频精品全部免费在线| 四虎影视精品| 日韩一区二区三区免费| 狠狠干在线视频| 日韩伦理一区二区三区av在线| 中文字幕国内精品| 亚洲高清三级视频| 国产欧美日韩另类一区| 综合久久国产九一剧情麻豆| 激情另类综合| 裤袜国产欧美精品一区| 免费福利影院| 奇米777四色影视在线看|