成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

?妙用 CSS 變量,讓你的代碼更優雅

開發
css 變量可以讓你的代碼更靈活,更優雅,可以看到各大開源庫全部都擁抱 css 變量了,是時候可以拋棄 scss 了。

CSS 變量基礎知識

這是介紹 css 的基礎語法,了解地可以直接跳過到實際 demo . 既然是變量,他跟 JS 的變量很像,分為 聲明、使用、作用域 三塊。

  • 聲明變量 【通過 --連接變量名 】:
:root {
--test: red;
}
  • 使用變量 【var(變量名)讀取變量】:

.test {
color: var(--foo);
}
  • 作用域 優先級最高的選擇器聲明生效。

適配 iphone x 劉海屏

Apple 在發布 iPhone X 后引入了一個新概念:安全區域(Safe Area),安全區域指屏幕內不受圓角、劉海、底部小黑條等元素影響的可視窗口。如下圖:

如何適配這種屏幕,有2個步驟:

  • HTML 中指定 viewport-fit 為 cover,讓頁面充滿全屏;
  • CSS 中可用 env() 獲取對應安全區域。

<meta name="viewport" content="viewport-fit=cover">
.safe-area {
padding-top: env(safe-area-inset-top);
padding-left: env(safe-area-inset-left);
padding-right: env(safe-area-inset-right);
padding-bottom: env(safe-area-inset-bottom);
}

由于兼容性,iOS 11 用的是 constant(),但從 iOS 11.2 開始改用 env()。如果用 CSS 變量來實現(ChatUI 源碼實現),感覺挺好的,如下:

:root {
--safe-top: 0px;
--safe-bottom: 0px;
}

@supports (top: constant(safe-area-inset-top)) {
:root {
--safe-top: constant(safe-area-inset-top);
--safe-bottom: constant(safe-area-inset-bottom);
}
}

@supports (top: env(safe-area-inset-top)) {
:root {
--safe-top: env(safe-area-inset-top);
--safe-bottom: env(safe-area-inset-bottom);
}
}

代碼邏輯如下:

  • 先定義 --safe-top、--safe-bottom 2個 CSS 自定義變量;
  • 通過 @supports 來判斷當前瀏覽器是否支持 constant() / env() ;
  • 在支持的情況下,把取到的值賦給 CSS 自定義變量。然后在需要使用的地方就可以這樣用了:
.navbar {
padding-top: var(--safe-top);
}

body {
height: calc(100vh - var(--safe-bottom));
}

實現 1px 邊框

同樣的,以往的代碼我們可能是使用 scss 語法來實現, 會實現一段比較復雜的傳參等:

@mixin retina-border($top: 0, $right: 0, $bottom: 0, $left: 0, $cor: #000000) {

}
// 調用
@include retina-border();

如果使用了 css 變量,代碼變得很簡單,也更靈活:

.hairline {
position: relative;
}

.hairline::after {
content: ' ';
position: absolute;
width: 200%;
height: 200%;
border: 0 solid var(--hairline-color, #f2f4f5);
border-width: var(--hairline-width, 1px);
border-radius: calc(var(--hairline-radius) * 2);
pointer-events: none;
transform: scale(0.5);
transform-origin: 0 0;

使用如下:

<div class="beidan hairline">...</div>

/* 修改顏色 */
.beidan {
--hairline-color: #e9e9e9;
}

最后

css 變量可以讓你的代碼更靈活,更優雅,可以看到各大開源庫全部都擁抱 css 變量了,是時候可以拋棄 scss 了。

責任編輯:趙寧寧 來源: 廣州peen
相關推薦

2020-04-03 14:55:39

Python 代碼編程

2020-07-24 15:40:51

CSS前端代碼

2022-04-10 10:41:17

ESLint異步代碼

2022-03-11 12:14:43

CSS代碼前端

2024-05-24 10:51:51

框架Java

2019-09-29 16:17:25

Java代碼性能編程語言

2023-11-23 13:50:00

Python代碼

2017-09-27 16:09:29

代碼

2023-07-10 09:39:02

lambdaPython語言

2022-12-26 07:47:37

JDK8函數式接口

2025-05-29 08:35:39

Python代碼開發

2025-04-21 17:55:25

2022-11-18 08:32:23

spring參數解析器

2025-02-10 00:25:00

命令模式擴展機制系統

2018-07-12 14:20:33

SQLSQL查詢編寫

2025-02-17 08:50:00

CSS代碼JavaScript

2024-07-03 08:13:56

規則執行器代碼

2024-07-30 14:09:19

裝飾器Python代碼

2024-02-23 08:57:42

Python設計模式編程語言

2024-08-20 14:25:20

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美极品一区二区 | 精品国产91亚洲一区二区三区www | 欧美日韩综合一区 | 成人欧美一区二区三区在线播放 | 黄a免费看 | 亚洲国产精品99久久久久久久久 | 国产成人精品免费视频大全最热 | 日韩欧美一区二区三区四区 | 美女在线一区二区 | 自拍亚洲| 另类 综合 日韩 欧美 亚洲 | 99在线免费视频 | 51ⅴ精品国产91久久久久久 | 国产免费看 | 亚洲综合色视频在线观看 | 先锋资源吧 | 国产网站在线免费观看 | 精品久久久av| 亚洲精品一区二区三区四区高清 | 国产精品久久午夜夜伦鲁鲁 | 夜夜操天天艹 | 国产福利在线视频 | 成人av高清 | 日韩中文字幕在线观看 | 久色视频在线 | 国产一区二区三区在线 | 亚洲视频自拍 | 久久成人精品一区二区三区 | 亚洲日日夜夜 | 精品一区二区三区视频在线观看 | 2020天天操 | 中文字幕加勒比 | 天堂一区二区三区 | 日韩一区二区三区视频在线观看 | 亚洲免费大片 | 毛片免费在线观看 | 在线一区观看 | 91在线一区二区三区 | 国产一伦一伦一伦 | 久久久这里都是精品 | 亚洲欧美在线一区 |