精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

羞羞网站在线看| 激情网站在线观看| 99久久香蕉| 午夜欧美在线一二页| 久久精品国产美女| 一级特黄免费视频| 91精品99| 亚洲欧美成人一区二区在线电影| 九热视频在线观看| 91精品久久久| 久久久久一区二区三区四区| 国产精品欧美激情| 国产一级二级三级| japanese国产精品| 精品国产一区二区三区忘忧草| 国产1区2区在线| 黄色动漫在线观看| 26uuu成人网一区二区三区| 国产在线拍偷自揄拍精品| 国产亚洲精品久久久久久无几年桃 | 激情五月婷婷六月| 国产在线黄色| av亚洲精华国产精华精| 国产欧美一区二区白浆黑人| 日本高清www免费视频| 999久久久精品国产| 日韩高清a**址| 91大神免费观看| 电影久久久久久| 亚洲国产精品精华液网站| 亚洲二区三区四区| 欧美69xxxxx| 成人免费视频播放| 成人性生交大片免费看小说 | 国产欧美精品| 精品中文字幕视频| 蜜桃av.com| 久久超碰99| 亚洲缚视频在线观看| 久久久九九九热| 国产精品伦一区二区| 欧美日韩在线影院| 久草免费福利在线| 国产网友自拍视频导航网站在线观看| 久久蜜桃av一区精品变态类天堂| 粉嫩av一区二区三区免费观看| 一区二区日韩在线观看| 久久激情网站| 欧美与欧洲交xxxx免费观看| 国产网址在线观看| 亚洲国产高清一区二区三区| 欧美精品在线视频观看| 999精品视频在线观看播放| 日韩三级在线| 中文字幕在线成人| 成人免费无遮挡无码黄漫视频| 精品国产一区二区三区不卡蜜臂 | 欧美日一区二区| 亚洲女人天堂色在线7777| 免费a级黄色片| 亚洲裸色大胆大尺寸艺术写真| 日韩黄在线观看| 国产精品久久久免费观看| 国产成人高清精品免费5388| 欧美videos大乳护士334| 中文字幕无人区二| 国产乱论精品| 亚洲国产精品va| 中文字幕人妻一区二区三区| 日韩高清三区| 国产一区二区动漫| 日本女人性生活视频| 羞羞色午夜精品一区二区三区| 久久久成人av| 久久中文字幕无码| 亚洲自拍另类| 国产精品高清网站| 国产精品久久久久久在线| 国产另类ts人妖一区二区| 成人免费在线看片| 日韩av视屏| 欧美高清在线精品一区| 最新国产精品久久| 免费看电影在线| 福利微拍一区二区| 香蕉视频禁止18| 日韩视频在线直播| 日韩精品免费在线视频观看| 国产av自拍一区| 国产大片一区| 久久免费国产视频| 中文字幕免费高清网站| 韩国一区二区视频| 精品在线视频一区二区| 77777影视视频在线观看| 亚洲精品欧美在线| 亚欧无线一线二线三线区别| 精品国产美女a久久9999| 欧美一区二区黄| 免费a级黄色片| 婷婷亚洲图片| 青青草一区二区| 国产三区在线播放| 2022国产精品视频| 懂色av一区二区三区四区五区| 国产黄色大片在线观看| 欧美性感一区二区三区| 97中文字幕在线观看| 欧美伦理影院| 97久久超碰福利国产精品…| 亚洲一区二区影视| 99精品国产一区二区三区不卡| 亚洲电影一二三区| 日本在线高清| 日韩精品资源二区在线| 日本高清黄色片| 99国产精品| 亚洲精品欧美日韩| 丁香在线视频| 欧美午夜精品久久久久久人妖| 日本精品一区在线| 国产91精品对白在线播放| 久操成人在线视频| 91亚洲国产成人久久精品麻豆| 99国产精品久久久| 成人av在线不卡| 在线免费成人| 色偷偷亚洲男人天堂| yjizz国产| www.一区二区| 91.com在线| 日本高清精品| 日韩视频免费看| 日本成人一级片| 久久一夜天堂av一区二区三区| 国产黄色激情视频| 国产精品va视频| 色吧影院999| 国产精品无码粉嫩小泬| 久久蜜桃一区二区| 人妻精品无码一区二区三区 | 日韩电影天堂视频一区二区| 91破解版在线观看| 欧美刺激午夜性久久久久久久| 操她视频在线观看| 麻豆精品视频在线观看视频| 日本成人三级| 久久爱91午夜羞羞| 国产婷婷成人久久av免费高清| 国产无码精品在线播放| 成a人片亚洲日本久久| 日本人妻伦在线中文字幕| 国色天香久久精品国产一区| xxav国产精品美女主播| 91麻豆成人精品国产| 亚洲欧美在线观看| 五月天婷婷亚洲| 中文字幕一区二区三区欧美日韩| 成人深夜直播免费观看| 在线观看电影av| 日韩欧美视频一区| 久久久久久久久久久久久久久久久| 国产精品一区二区在线看| 日韩不卡视频一区二区| 最新精品在线| 国产+人+亚洲| 无码h黄肉3d动漫在线观看| 黑人巨大精品欧美一区二区免费| 99久久人妻精品免费二区| 亚洲永久字幕| 亚洲欧洲精品在线| 欧美黄色一级| 韩国福利视频一区| 青青操视频在线| 欧美午夜电影在线播放| 亚洲天堂网av在线| 成人福利视频网站| 99精品视频在线看| 欧美电影《轻佻寡妇》| 亚洲自拍偷拍色图| 无遮挡爽大片在线观看视频| 亚洲性日韩精品一区二区| 91久久久久久久久久久久| 亚洲国产综合91精品麻豆 | 国产欧美精品国产国产专区 | 在线免费观看羞羞视频一区二区| 中文字幕人妻互换av久久| 亚洲婷婷综合色高清在线| 亚洲美女精品视频| 日韩黄色小视频| 成人在线免费观看视频网站| 日韩系列在线| 成人福利在线视频| 国产理论在线| 精品国产视频在线| 视频一区二区免费| 欧美日韩小视频| 日韩激情在线播放| 国产精品国产自产拍在线| 日本精品一二三| 人人精品人人爱| 97在线国产视频| 日本成人小视频| 国产日韩一区欧美| 欧美综合影院| 欧美在线性视频| 秋霞在线视频| 中文字幕在线国产精品| 天天操天天干天天爱| 欧美放荡的少妇| 国产91精品看黄网站在线观看| 依依成人精品视频| 美国美女黄色片| av在线不卡电影| 毛片毛片毛片毛片毛| 久久一二三四| 婷婷无套内射影院| 欧美1区视频| 一区二区免费在线视频| 神马日本精品| 国产精品免费一区二区三区四区| 欧美xxxx性| 日韩av手机在线看| 九色porny自拍视频在线播放| 久久综合色影院| 1769在线观看| 亚洲石原莉奈一区二区在线观看| 亚洲av无码乱码国产精品久久| 精品视频1区2区| 精品久久久久久久久久久国产字幕| 亚洲第一主播视频| 欧美另类视频在线观看| 中文字幕一区二区三区蜜月| 五月天精品在线| 国产亚洲制服色| 新91视频在线观看| 久久品道一品道久久精品| 亚洲一区二区在线免费| 丁香激情综合国产| 免费在线观看日韩av| 国产乱码精品1区2区3区| 日韩av片专区| 精品一区二区三区欧美| 久久久久久蜜桃一区二区| 欧美a一区二区| 黄色片在线免费| 日韩成人午夜精品| 亚洲乱码国产一区三区| 久久久久久婷| 中文字幕天天干| 老汉av免费一区二区三区| 国产wwwxx| 久久国产生活片100| 亚洲另类第一页| 国内精品写真在线观看| 91小视频在线播放| 国产一区在线观看麻豆| 五月天婷婷在线观看视频| 国内成人精品2018免费看| 深夜做爰性大片蜜桃| 国产激情一区二区三区四区 | 不卡av日日日| 性xxxfreexxxx性欧美| 欧美激情在线狂野欧美精品| 国产精品一区二区日韩| 国产999精品视频| 国产精品亲子伦av一区二区三区| 成人精品福利视频| 99国产精品免费网站| 久久九九视频| 日韩欧美三级| 国产一二三区在线播放| 中国女人久久久| av在线无限看| 国产最新精品免费| 中文字幕第3页| 国产午夜精品久久久久久免费视| 三级黄色片在线观看| 一区二区三区精品久久久| 日韩特级黄色片| 欧美色倩网站大全免费| av免费观看网址| 亚洲国产精品久久久久秋霞不卡| 久久精品国产亚洲a∨麻豆| 最新91在线视频| 2019中文字幕在线电影免费 | av日韩在线网站| 黄色片在线观看免费| 亚洲影视在线播放| 日本熟女毛茸茸| 欧美一区二区私人影院日本| 亚洲av成人精品一区二区三区在线播放 | 三级小视频在线观看| 国产一区二区三区在线免费观看 | 午夜美女久久久久爽久久| 先锋欧美三级| 99久久国产免费免费| 久久不见久久见免费视频7| 色哺乳xxxxhd奶水米仓惠香| 巨乳诱惑日韩免费av| 丰满少妇中文字幕| 久久精品一区二区三区不卡 | 亚洲小说区图片区| 爱情岛论坛成人| 成人在线视频一区| 久久视频一区二区三区| 天天爽夜夜爽夜夜爽精品视频| 一区二区的视频| 亚洲欧洲一区二区三区在线观看| а√中文在线8| 国产97免费视| 久久aimee| 亚洲小说欧美另类激情| 视频一区免费在线观看| 一级黄色片毛片| 亚洲免费色视频| 亚洲午夜在线播放| 日韩精品视频免费专区在线播放| 中文字幕有码在线视频| 国产精品直播网红| 欧美激情在线精品一区二区三区| 青青青在线观看视频| 国内精品伊人久久久久av影院| 丁香激情五月少妇| 色呦呦日韩精品| 韩国av在线免费观看| 久久夜色精品国产亚洲aⅴ| 2019年精品视频自拍| 欧美日韩喷水| 国产精品久久久久毛片大屁完整版| 中文字幕乱码在线人视频| 国产精品国产三级国产普通话三级| www欧美在线| 亚洲国产一区二区三区在线观看 | 成人情趣视频| 日韩无套无码精品| 久久久久久夜精品精品免费| 国产超碰人人爽人人做人人爱| 亚洲大胆美女视频| 欧美四级在线| 国产伦理一区二区三区| 欧美激情综合色综合啪啪| 成人免费黄色av| 亚洲美女区一区| 国产手机av在线| 美女精品视频一区| 国产精品一区二区三区av | 在线精品一区二区| 丰满少妇xbxb毛片日本| 亚洲综合免费观看高清在线观看| 国产成人精品无码高潮| 久久久av网站| 免费欧美网站| 亚洲国产精品无码av| 99免费精品视频| 国产美女激情视频| 亚洲精品自拍偷拍| 日韩网站中文字幕| 四虎永久国产精品| 国产最新精品免费| 精品少妇爆乳无码av无码专区| 欧美xingq一区二区| 丝袜老师在线| 色姑娘综合网| 国产美女精品在线| 国产精品99无码一区二区| 国产视频精品xxxx| 欧美日韩在线精品一区二区三区激情综合| 日韩久久久久久久久久久久久| 青青草成人在线观看| 天堂av免费在线| 欧美电视剧在线看免费| 涩涩视频在线播放| 婷婷四房综合激情五月| 国产乱子轮精品视频| 国产精品第一页在线观看| 亚洲人成电影网站| 国产999精品在线观看| 免费毛片网站在线观看| 国产日韩欧美不卡在线| 91福利免费视频| 国内自拍欧美激情| 欧美久久精品一级c片| 婷婷激情小说网| 婷婷综合另类小说色区| 岛国在线大片| 成人做爰66片免费看网站| 免费一区视频| 秋霞欧美一区二区三区视频免费| 精品免费99久久| 123成人网| 青青草国产精品视频| 欧美国产综合一区二区| 国产成人无码www免费视频播放| 日本精品久久中文字幕佐佐木| 亚洲精品a级片| 色婷婷在线影院| 欧美mv和日韩mv的网站| 国产在线|日韩| 国产自产在线视频|