精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

這個 CSS 特性感覺像 JavaScript:但它是 100% 原生的

開發 前端
你是否也有同感?一遍遍寫重復的規則,為了一個小邏輯去繞 JavaScript,擔心設計系統越用越亂。今天我們來看看一個簡單卻強力的 CSS 特性:它不僅能讓樣式表更清爽,還能高度復用。

這些年我一直在和 CSS 打交道,反復打磨樣式表,只為追求“干凈又靈動”的設計平衡。

你是否也有同感?一遍遍寫重復的規則,為了一個小邏輯去繞 JavaScript,擔心設計系統越用越亂。

今天我們來看看一個簡單卻強力的 CSS 特性:它不僅能讓樣式表更清爽,還能高度復用。

一起上手。

寫出干凈、可復用的 CSS

最近留意到 Chrome 139 帶來的新能力——@function 規則。真心講,既“酷”又“好用”。

這不只是又一個 CSS 語法點,而是一種更“聰明”的寫法:讓復用與邏輯封裝成為日常,風格貼近 2025 年的現代前端。

接下來我們用它來簡化設計系統:從流式排版到主題切換,你可以把示例代碼直接落地到項目里。

@function 是什么?

@function 允許你定義自定義 CSS 函數,把可復用的樣式邏輯封裝起來。你可以把它想成 CSS 里的“迷你 JavaScript 函數”:純粹、聲明式、由瀏覽器原生支持。

為什么這對你很重要?

因為它能減少重復代碼,讓樣式在不依賴預處理器或腳本的情況下更具動態性。

先看個直觀示例:

@function --dashed-border(--color: red) {
  result: 2px dashed var(--color);
}

這段代碼創建了一個可復用的“虛線邊框”函數。更妙的是:你還能給參數設置默認值——上面默認色就是 red

用法如下:

div {
   border: --dashed-border(blue); /* 2px dashed blue */
}

簡潔、直接、可復用。干凈吧?

實用場景 1:優雅求“負”的工具

有時我們需要負值(比如外邊距或定位),但 calc() 連用起來很凌亂。

自定義 @function 就能把它封成一行、處處可用:

/* 返回某個值的相反數 */
@function --negate(--value) {
  result: calc(-1 * var(--value));
}
.navigation {
  margin: --negate(30px);
}

任何值一鍵“取負”,布局更靈活。告別滿屏 calc()。是不是順手多了?

實用場景 2:不費力的透明度處理

給顏色做透明變化(比如 hover 或 disabled 態),過去常常意味著重復規則或拉上 JS。

現在,@function 把這套邏輯集中到一個地方:

/* 返回半透明的顏色值 */
@function --opacity(--opacity, --color: #007bff) {
  result: rgb(from var(--color) r g b / var(--opacity));
}
button {
  background: --opacity(0.8);
}

button:hover {
  background: --opacity(1);
}

button:disabled {
  background: --opacity(0.3, gray);
}

再配合主題或狀態相關的自定義屬性,你就能寫出無需額外類名的動態按鈕樣式。并且這里也給顏色參數留了默認值。

實用場景 3:順滑可控的流式排版

響應式設計里,流式排版很關鍵;但反復寫 clamp(),真心費勁。

用 @function 把它變成一句話:

@function --fluid-type(--font-min, --font-max, --type: 'header') {
  --scalar: if(style(--type: 'header'): 4vw; 
               style(--type: 'copy'): 0.5vw);
  result: clamp(var(--font-min), var(--scalar) + var(--font-min), var(--font-max));
}
h1 {
  font-size: --fluid-type(24px, 36px);
}

p {
  font-size: --fluid-type(16px, 24px, 'copy');
}

字體會隨視口平滑縮放,并可根據標題/正文字體分別設置縮放強度。

沒函數之前手寫?那體驗,別提了 ??。

實用場景 4:自適應邊界的條件圓角

當元素貼近視口邊緣時,讓圓角“收起來”,能避免難看的貼邊效果;但為此寫媒體查詢就有點小題大做。

@function 的寫法更干凈:

/* 當元素距離屏幕邊緣在一定閾值內(默認 4px,可傳第二參)時,按條件收縮圓角 */
@function --conditional-radius(--radius, --edge-dist: 4px) {
  result: clamp(0px, ((100vw - var(--edge-dist)) - 100%) * 1e5, var(--radius));
}
/* 用法 */
.box {
  /* 1rem 圓角,默認 4px 邊緣距離 */
  border-radius: --conditional-radius(1rem);
}

.box-2 {
  /* 1rem 圓角,緊貼邊緣(0px 距離) */
  border-radius: --conditional-radius(1rem, 0px);
}

當元素觸到視口邊緣時,圓角自動收斂,版面更干凈。

無需媒體查詢。這就是我偏愛的 CSS 風格。

實用場景 5:把明暗主題拓展到“任何屬性”

light-dark() 對顏色很好用,但邊框、字重、尺寸這些怎么辦?

自定義 @function 可以把主題邏輯擴展到任意屬性

/* 若用戶的顏色偏好為淺色,取第一個值;若為深色,取第二個值 */
@function --light-dark(--light, --dark) {
  result: if(
    style(--scheme: dark): var(--dark);
    else: var(--light)
  );
}
:root {
  --root-scheme: light;
  --scheme: light;

  @media (prefers-color-scheme: dark) {
    --root-scheme: dark;
    --scheme: dark;
  }
} 

@scope ([data-scheme]) {
  :scope {
    --scheme-from-attr: attr(data-scheme type());
      --scheme: if(
        style(--scheme-from-attr: system): var(--root-scheme);
        else: var(--scheme-from-attr)
      );
    color-scheme: var(--scheme); /* 讓原生 light-dark() 生效 */
  }
}

用法示例:

[data-scheme] {
  color: light-dark(#333, #e4e4e4);
  background-color: light-dark(aliceblue, #333);

  border: 4px --light-dark(dashed, dotted) currentcolor;
  font-weight: --light-dark(500, 300);
  font-size: --light-dark(16px, 18px);
}
<div class="stylable-thing" data-scheme="light">
 …
</div>

實用場景 6:側欄網格的響應式函數

我們再寫一個側欄布局的小工具:

/* 小屏下側欄占 1fr;>=640px 時側欄固定寬度,其余空間給主內容 */
@function --layout-sidebar(--sidebar-width: 20ch) {
  result: 1fr;
  
  @media (width > 640px) {
    result: var(--sidebar-width) auto;
  }
}

.layout {
  display: grid;
  /* 使用默認 20ch 的側欄寬度 */
  grid-template-columns: --layout-sidebar();
}

這個函數能把側欄/主內容的響應式切換一步到位:小屏單列,大屏固定側欄 + 自適應主區域。

加餐:給函數也做“類型檢查”

就像 @property 可以為自定義屬性約束類型一樣,CSS @function 也能限制參數與返回值的類型。結合內聯條件表達式,還能做更安全的動態計算。

示例如下:

@function --custom-spacing(--a <length>) { /* ... */ } /* 例:10px */
@function --custom-background(--b <color>) { /* ... */ } /* 例:hsl(50%, 30% 50%) */
@function --custom-margin(--c <length>+) { /* ... */ } /* 例:10px 2rem 20px */
@function --wideness(--d type(<number> | <percentage>)) { /* ... */ }

我們甚至可以為返回值聲明類型:

@function --progression(--current, --total) returns <percentage> {
  result: calc(var(--current) / var(--total) * 100%);
}

為什么說它“像未來”?

以往這類邏輯常靠 Sass 或 JavaScript 處理;而現在,@function 把它原生落在 CSS 層。

意義不止是“寫得更少”,更是讓樣式具備智能適配能力

同時,這也順應了 React 19 對渲染優化的趨勢:樣式更精簡,應用更迅速。

但要注意什么?

Chrome 139 畢竟是前沿版本,瀏覽器支持度暫時有限。這里沒有可用的 polyfill,但你可以用特性檢測回退策略來兼容舊環境。

.browser-support {
  margin: 2rem auto;
  width: max-content;
  @supports (color: --function(value)) {
    display: none;
  }
}

這樣就能在嘗試新特性的同時,保證線上安全。


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

2022-02-25 15:59:20

人工智能

2025-10-14 08:10:54

CSSJS 庫Firefox

2020-07-06 12:09:24

DNS域名系統IP地址

2013-12-26 13:36:27

JavaScript技巧

2018-04-18 08:57:59

AndroidiOS移動系統

2025-10-13 08:11:55

JavaScripStage 4函數式編程

2025-05-19 08:15:00

ChromeCSS輪播特效

2025-02-18 08:10:00

Vue 3JavaScrip開發

2025-04-01 08:10:00

JavaScripteval()函數代碼

2025-10-11 09:21:35

2024-07-19 08:13:00

2013-01-10 09:54:35

JavaScriptJava

2015-10-28 16:46:18

2019-08-27 21:11:59

HamstersJavaScript多線程

2018-09-05 10:39:23

2025-05-19 00:05:12

2017-02-09 16:15:33

Erlang并發運算符

2021-02-05 08:18:29

JavaScript開發代碼

2013-03-26 10:27:01

JavaScriptjson

2020-07-17 09:58:31

Python開發工具
點贊
收藏

51CTO技術棧公眾號

国产男人精品视频| 日韩欧美中文字幕在线视频 | 亚洲一区电影777| 欧美专区国产专区| 国产清纯白嫩初高中在线观看性色| 国产欧美日韩另类| 国产亚洲高清在线观看| 亚洲国产高清不卡| 欧美与黑人午夜性猛交久久久| 中文字幕22页| 成人在线免费视频| 人人精品视频| 亚洲成av人片在线| 99影视tv| 久草国产在线视频| 一区二区三区四区精品视频| 亚洲欧美国产高清| 成人精品视频99在线观看免费 | 国产日韩精品一区二区浪潮av| 欧美激情18p| 欧美性受xxxx黒人xyx性爽| yiren22亚洲综合伊人22| 国产精品一区久久久久| 麻豆成人在线看| 啊啊啊国产视频| 二人午夜免费观看在线视频| 老司机午夜精品视频| 亚洲乱亚洲乱妇无码| 欧美日韩在线中文| 免费一级毛片在线观看| 日韩精品电影在线| 日韩中文字幕在线看| 欧美成人福利在线观看| 国产在线更新| 国产.欧美.日韩| 性色av一区二区三区红粉影视| 一区二区免费在线观看视频| 亚洲精品国产精品国产| 国产午夜精品在线观看| 国产精品自拍首页| 天天综合天天干| 黄色不卡一区| 制服丝袜激情欧洲亚洲| 黄色一级片国产| 天堂a中文在线| 免费在线观看成人| 欧美大胆在线视频| 91精品国产自产| 国产亚洲精品精品国产亚洲综合| 中文字幕在线不卡视频| 成人精品一二区| 精品久久免费视频| 欧洲激情综合| 欧美一区二区在线不卡| 一区二区传媒有限公司| 成年人在线视频| 国产欧美一区二区精品性色 | 2欧美一区二区三区在线观看视频| 久久久女女女女999久久| av直播在线观看| 欧美成人一区在线观看| 亚洲电影免费观看高清完整版在线观看| 国产精品50p| 亚洲少妇视频| 色婷婷综合激情| 午夜在线视频免费观看| 欧美 日韩 国产 成人 在线| 视频在线观看国产精品| 国产精品国产三级国产aⅴ浪潮| 成人在线观看小视频| 台湾佬综合网| 91麻豆精品91久久久久久清纯 | 免费看毛片网站| 亚洲成人精品| 亚洲精品日韩丝袜精品| 男女视频在线观看网站| 精品国产一级| 欧美无乱码久久久免费午夜一区| 免费在线黄网站| av网站在线免费观看| 91尤物视频在线观看| 亚洲qvod图片区电影| 男操女视频网站| 国产一区二区高清| 欧美日韩国产成人在线| 丁香六月激情综合| 国产精品亚洲二区| 久久色在线播放| 日本天堂网在线观看| 日韩精品一区第一页| 91欧美日韩一区| 91精品中文字幕| 日本中文在线一区| 青青久久av北条麻妃黑人| 久久国产香蕉视频| 免费在线欧美黄色| 5566日本婷婷色中文字幕97| 亚洲视频在线观看一区二区| 久久一区亚洲| 亚洲a∨日韩av高清在线观看| 日本精品一二区| 国产精品区一区二区三区| 奇米影视首页 狠狠色丁香婷婷久久综合 | 精品日本12videosex| www亚洲精品| 国产精品黄色大片| 激情久久久久| 欧美大片免费看| 亚洲av无码精品一区二区| 99av国产精品欲麻豆| 欧美韩国理论所午夜片917电影| 综合网在线观看| 国产激情一区二区三区桃花岛亚洲| 国产日韩换脸av一区在线观看| 国产一级片免费在线观看| 国产伦精品一区二区三区在线观看| 久久久一本精品99久久精品66| 蜜桃在线一区二区| 国产精品国产馆在线真实露脸| 免费看国产曰批40分钟| 草草在线视频| 欧美日韩亚洲国产一区 | 蜜桃久久av| 日韩av不卡电影| 国产精品欧美综合| 不卡影院免费观看| 欧美亚州在线观看| 99reav在线| 欧美三级免费观看| 黄色在线视频网| 日韩一区二区三区四区五区| 91精品国产色综合久久不卡电影| 波多野结衣 在线| 国产乱码精品一区二区三区四区| 高清欧美性猛交| 99在线精品视频免费观看软件| 福利一区在线观看| 女同性恋一区二区| 成人ssswww在线播放| 欧美一区二区三区白人| 手机在线中文字幕| 国产精品激情电影| 日本高清+成人网在线观看| 欧美一区二区在线观看视频| 一区二区三区四区在线| 亚洲中文字幕无码专区| av不卡一区二区| 亚洲日本aⅴ片在线观看香蕉| 亚洲精品国产精品国自| 综合色一区二区| 2019中文字幕在线观看| 深夜福利视频网站| |精品福利一区二区三区| 福利视频一区二区三区四区| 少妇精品视频一区二区免费看| 9191国产精品| 麻豆天美蜜桃91| 国产麻豆精品视频| 国产精品久久国产| 美女扒开腿让男人桶爽久久动漫| 伊是香蕉大人久久| 国产亚洲欧美久久久久| 日韩av中文字幕一区二区三区| 免费看成人av| 图片区小说区亚洲| 欧洲国内综合视频| 艳妇乳肉豪妇荡乳xxx| 亚洲第一精品影视| 欧美日韩一区二| 福利一区和二区| 日韩精品视频免费专区在线播放 | 中文字幕第38页| 久久久久国产| 国产二区一区| 日韩电影免费观| 日韩美女一区二区三区四区| 国产视频三区四区| 日韩午夜免费| 视频一区二区综合| 日韩激情电影| 欧美成人伊人久久综合网| 国产中文字字幕乱码无限| 久久99精品国产.久久久久久 | 国模吧精品视频| 国产一区视频在线播放| 欧美6一10sex性hd| 欧美美女一区二区在线观看| 成人精品999| 久久国产免费看| 亚洲成人网上| 性欧美freehd18| 亚洲欧美日韩精品| 97精品人妻一区二区三区| 亚洲成人你懂的| 真实乱偷全部视频| 国产精品久久占久久| 国产精品国语对白| 女同视频在线观看| 在线精品91av| 欧美一区二区三区成人片在线| 欧美三区在线视频| 第一次破处视频| 国产成人免费av在线| 日本爱爱免费视频| 亚洲国产专区校园欧美| 国产美女精品久久久| 快射av在线播放一区| 日韩精品中文字幕有码专区| 国产女主播福利| 亚洲精品网站在线观看| 亚洲第一成人网站| 丁香一区二区三区| 无码专区aaaaaa免费视频| 91麻豆精品国产91久久久平台| 国产精品久久久久久中文字| 国产私拍精品| 亚洲国产精品专区久久| 午夜影院免费在线观看| 亚洲免费在线看| 中文字幕欧美激情极品| 91免费国产视频网站| 久久久久亚洲av无码专区首jn| 欧美深夜福利| 国产综合18久久久久久| 精品午夜视频| 国产精品中文字幕在线| 中文字幕av一区二区三区佐山爱| 国内精品美女av在线播放| 伊人影院在线视频| 亚洲精品久久久久久久久久久久久| 中文字幕无码乱码人妻日韩精品| 亚洲欧洲日韩综合一区二区| 中文字幕高清视频| 蜜桃av一区二区在线观看| 日韩欧美精品在线观看视频| 色喇叭免费久久综合网| 91成人免费观看| 国产精选在线| 久久久久久999| 国产免费永久在线观看| 日韩大陆欧美高清视频区| 蜜桃久久一区二区三区| 日韩视频123| 中文在线第一页| 欧美日韩视频在线| 成人在线免费看视频| 欧美日韩一区免费| 91精品国产高清一区二区三密臀| 岛国av在线不卡| 国产伦精品一区二区三区视频网站| 精品国产精品三级精品av网址| 欧美一区二区三区粗大| 国产精品视频你懂的| 亚洲一二三四五六区| a在线欧美一区| 99国产精品久久久久久| 亚洲黄色一区| 久久黄色片视频| 国产精品久久久亚洲一区| 337p粉嫩大胆噜噜噜鲁| 久久一区二区三区四区五区| 伊人国产在线视频| 国产一区美女在线| 北条麻妃av高潮尖叫在线观看| 欧美精品啪啪| 777av视频| 久久一区亚洲| 中文字幕第22页| www.av精品| 欧美性猛交xxxx乱| 成人激情综合网站| 人妻少妇精品视频一区二区三区| 久久久久久久久久美女| 韩国三级hd中文字幕有哪些| 粉嫩av一区二区三区在线播放| 精品人妻一区二区三区日产| 99re在线视频这里只有精品| 性欧美精品男男| 亚洲激情图片一区| 国产又黄又粗又爽| 精品婷婷伊人一区三区三| 国产精品人人妻人人爽| 在线观看亚洲一区| 国产视频在线观看免费| 亚洲精品久久久久久久久久久久| av基地在线| 欧美激情精品久久久久久免费印度| 亚洲欧美小说色综合小说一区| 国产精品自拍小视频| 97超碰成人| 亚洲欧美日本国产有色| 亚洲毛片一区| 国产一区二区在线观看免费视频| caoporn国产一区二区| 男女全黄做爰文章| 婷婷开心激情综合| 国产精品国产av| 亚洲欧美日韩天堂| 日本一级理论片在线大全| 日韩美女激情视频| 欧美日韩黄网站| 午夜精品美女久久久久av福利| 黄色成人在线网址| 五月天开心婷婷| 久久精品视频在线看| 久久久精品91| 人人爽香蕉精品| 99r精品视频| 欧美成人免费视频| 二区三区四区视频| 亚洲欧美电影一区二区| 久久夜色精品国产噜噜亚洲av| 日韩欧美电影一区| 免费人成在线观看播放视频 | 乱亲女秽乱长久久久| 影视一区二区三区| 精品伦精品一区二区三区视频| 精品嫩草影院| 特级毛片在线免费观看| 老**午夜毛片一区二区三区 | 91极品视频在线| 好吊日av在线| 91av在线网站| 中文字幕久久精品一区二区| 欧美aaa在线观看| 日本不卡一区二区| 日本性高潮视频| 日韩欧美中文免费| 污视频软件在线观看| 亚洲欧洲日产国码av系列天堂| 蜜臀av在线| 91超碰rencao97精品| 91精品蜜臀一区二区三区在线| 性欧美极品xxxx欧美一区二区| www国产精品av| 日韩人妻无码一区二区三区99| 日韩精品一区二区三区在线观看| 成人video亚洲精品| 欧美精品电影在线| 亚洲天堂av资源在线观看| 乱熟女高潮一区二区在线| 国产麻豆视频精品| 极品久久久久久| 欧美日韩国产在线| 色婷婷av一区二区三区之红樱桃| 欧美激情视频一区| 9l视频自拍九色9l视频成人| 999久久欧美人妻一区二区| 国产成人免费视频精品含羞草妖精| 国产免费无码一区二区视频| 欧美性jizz18性欧美| 亚洲欧洲综合在线| 国产成人综合精品| 亚洲欧美日本国产| 久久久久久久9| aaa亚洲精品| www.色国产| 中文字幕在线亚洲| 丝袜诱惑一区二区| 日韩精品久久一区| 亚洲精品男同| 美女又爽又黄视频毛茸茸| 日本精品一区二区三区四区的功能| 国产美女明星三级做爰| 欧美成人激情视频免费观看| 一级毛片精品毛片| 18禁免费无码无遮挡不卡网站 | 麻豆明星ai换脸视频| 欧美mv日韩mv国产网站| 国产精品久久一区二区三区不卡| 国产91在线播放九色快色| 日韩欧美午夜| 欧美一级大片免费看| 欧美丝袜第一区| 欧美性天天影视| 国产精品露出视频| 日本免费新一区视频| 男人操女人的视频网站| 亚洲精品乱码久久久久久金桔影视 | 亚洲一二三四在线观看| 天堂av在线播放| 成人黄色片在线| 亚洲综合丁香| 日本青青草视频| 亚洲人成网站777色婷婷| 成人亚洲精品| 人妻丰满熟妇av无码区app| 亚洲女女做受ⅹxx高潮| 男人的天堂在线免费视频| 91在线中文字幕| 嫩草成人www欧美| 久久久久99精品成人片毛片| 亚洲欧洲av一区二区| 日韩欧美激情电影| 激情婷婷综合网| 国产三级欧美三级日产三级99| 国产乱码一区二区| 热久久免费视频精品| 欧美激情日韩| 亚洲AV成人精品|