【CSS in Depth 2 精譯_081】 13.1:CSS 漸變效果(下)——CSS 徑向漸變(13.1.3)+ CSS 錐形漸變(13.1.4)

當前內容所在位置(可進入專欄查看其他譯好的章節內容)

  • 第四部分 視覺增強技術 ??
  • 【第 13 章 漸變、陰影與混合模式】 ??
    • 13.1 漸變 ??
      • 13.1.1 使用多個顏色節點(上)
      • 13.1.2 顏色插值方法(中)
      • 13.1.3 徑向漸變(下) ??
      • 13.1.4 錐形漸變(下) ??

文章目錄

      • 13.1.3 徑向漸變 Radial gradients
      • 13.1.4 錐形漸變 Conic gradients

《CSS in Depth》新版封面

《CSS in Depth》新版封面

譯者按
趁著上篇色彩空間插值算法的余興,把第一小節 CSS 漸變部分全部學完。都是些很好理解的知識點,沒什么難度。一起學起來!

13.1.3 徑向漸變 Radial gradients

線性漸變應該是您今后會用到的最常見的漸變類型了。此外,CSS 還提供了其他漸變類型,其中一個便是本節要介紹的 徑向漸變(radial gradient。徑向漸變不是從元素的一端開始并沿著單一方向過渡到另一端,而是從一個點開始,全方位像外擴展。其基本示例如圖 13.8 所示。

圖 13.8 由某個點向外擴展的徑向漸變示意圖

【圖 13.8 由某個點向外擴展的徑向漸變示意圖】

徑向漸變可通過函數 radial-gradient() 來定義。具體示例如代碼清單 13.9 所示。試根據下列代碼同步更新本地樣式表。

代碼清單 13.9 徑向漸變基礎示例代碼

.fade {height: 200px;width: 400px;background-image: radial-gradient(white, blue); /* 從中心處的白色漸變到邊緣處的藍色 */
}

默認情況下,漸變在元素中是從中心開始,并平滑過渡到元素邊緣。漸變整體呈橢圓形,它會隨元素尺寸大小進行變化(也就是說,對于較寬的元素,其徑向漸變也較寬,反之亦然)。

與線性漸變一樣,徑向漸變同樣支持顏色節點(color stops)。您既可以設置多個節點,并利用百分比或長度單位準確定義節點在漸變中的位置;同時也可以像線性漸變一樣指定某個色彩空間。

徑向漸變函數的第一個參數還可以實現如下高級配置:

  • 可以使用關鍵字 circle 將徑向漸變改為圓形漸變而非橢圓。若同時限定了水平與垂直尺寸,則該設置無效。
  • 通過設置一個或兩個長度值來限定漸變的大小尺寸。 若只設置一個值,則漸變會變為給定大小的圓;若設置兩個值,則分別表示水平和垂直方向上的尺寸大小。例如 radial-gradient(50px 25px, white, blue) 設置了一個寬 50px、高 25px 的頁面漸變效果。
  • 通過指定相對于元素左上角的 xy 坐標來變更徑向漸變的中心位置。該坐標需要寫到關鍵字 at 的后面。例如:radial-gradient(at 25px 25px, white, blue)

利用 repeating-radial-gradient() 函數可以重復生成圖樣,形成同心圓環。其參數與 radial-gradient() 函數中的參數相同。

這些特性大部分可以通過典型示例解釋清楚,圖 13.9 列舉了幾個例子以及相應的樣式代碼。建議您在頁面中嘗試一下,或者修改為自己的代碼。

圖 13.9 徑向漸變典型示例

【圖 13.9 徑向漸變典型示例】

在實際開發中,我發覺很少遇到要對徑向漸變作任何復雜操作的情況,因為基本的應用形式已經能夠滿足絕大部分需求。如果想更深入地了解徑向漸變的工作原理,可以參考 MDN 相關文檔:https://mng.bz/1Gmj。

13.1.4 錐形漸變 Conic gradients

CSS 漸變的最后一個類型為 錐形漸變。相比徑向漸變從橢圓的中心向外逐漸改變顏色,錐形漸變則是沿圓形方向圍繞橢圓逐漸改變顏色。錐形漸變的一個典型示例如圖 13.10 所示。

圖 13.10 錐形漸變沿圓形方向改變顏色示意圖

【圖 13.10 錐形漸變沿圓形方向改變顏色示意圖】

錐形漸變可通過 conic-gradient() 函數、或者其重復漸變版本 repeating-conic-gradient() 來定義。該漸變的具體寫法如代碼清單 13.10 所示。

代碼清單 13.10 錐形漸變的基礎示例

.fade {height: 200px;width: 400px;background-image: conic-gradient(white, blue);
}

如本例所示,錐形漸變在漸變結束時(即最后一個顏色節點和第一個節點之間)會出現一個突然的過渡效果。這會在兩個顏色間產生硬邊緣(hard edge)。為此,可以讓首尾兩個顏色節點均為相同的顏色來解決該問題,例如寫作:conic-gradient(white, blue, white)

與線性漸變、徑向漸變一樣,錐形漸變函數的第一個參數也可以進一步實現如下高級設置:

  • 指定漸變的起始角度,需用 from <angle> 語法。若省略該項,則起始角默認為 0deg,即豎直朝上。例如,conic-gradient(from 90deg, white, blue, white) 將從右側 90 度位置開始漸變。
  • 指定漸變的中心點坐標,需用 at <x-position> <y-position> 語法。xy 的坐標值是相對于元素左上角測得的偏移量。例如:conic-gradient(at 30px 45px, white, blue, white)。位置參數也可以用長度值或百分比來定義。
  • 指定顏色插值算法,需用 in <color-space> 語法,具體用法與線性漸變、徑向漸變相同。例如:conic-gradient(from 90deg in oklch, yellow, blue, yellow)

與其他漸變函數一樣,您還可以指定顏色節點的具體位置。位置參數既可以用百分比表示,又可以寫為某角度值。建議您在測試頁面嘗試這些配置項。有關錐形漸變的更多示例,可參考 MDN 的在線文檔:https://mng.bz/PZGn。

利用圖形界面來配置漸變應該會很有幫助。推薦一個我愛用的網站資源 https://gradient.style/。它支持 OKLCH 顏色語法及 CSS 的這三種漸變類型。

前面演示的大部分示例都用到了色彩對比極為鮮明的顏色組合,這么做旨在凸顯漸變的視覺效果,讓漸變的行為特征清晰可辨;不過在實際的項目開發中,使用對比度較低的顏色組合效果往往會更好。

比如,不要從白色直接過渡到黑色,可以從白色漸變到淺灰色;或者在兩種相仿的藍色之間設置漸變。這樣不會讓用戶產生不適感。在某些特定場合下,用戶甚至都察覺不到漸變的存在,但依然可以給頁面帶來些許立體感。后面我會展示一些關于漸變的實際應用案例。不過在那之前,我們先來看看陰影。



關于《CSS in Depth》(中譯本書名《深入解析 CSS》)

第 1 版第 2 版
讀者評分原版:4.7(亞馬遜);中文版:9.3(豆瓣)原版:5.0(亞馬遜);中文版:暫無,待出版
出版時間原版:2018 年 3 月;中文版:2020 年 4 月原版:2024 年 7 月;中文版:暫無,待出版
原價原版:$44.99;中文版:¥139.00原版:$59.99;中文版:暫無,待出版
現價原版:$36.49;中文版:¥52.54 起步原版:$52.09;中文版:暫無,待出版
原版國內預訂起步價 ¥461.00起步價 ¥750.00

本專欄為該書第 2 版高分譯文專欄,全網首發,精譯精校,持續更新,計劃今年內完成全書翻譯,敬請期待!!!

目前已完結的章節(可進入本專欄查看詳情,連載期間完全免費):

  • 第一章 層疊、優先級與繼承(已完結)
    • 1.1 層疊
    • 1.2 繼承
    • 1.3 特殊值
    • 1.4 簡寫屬性
    • 1.5 CSS 漸進式增強技術
    • 1.6 本章小結
  • 第二章 相對單位(已完結)
    • 2.1 相對單位的威力
    • 2.2 em 與 rem
    • 2.3 告別像素思維
    • 2.4 視口的相對單位
    • 2.5 無單位的數值與行高
    • 2.6 自定義屬性
    • 2.7 本章小結
  • 第三章 文檔流與盒模型(已完結)
    • 3.1 常規文檔流
    • 3.2 盒模型
    • 3.3 元素的高度
    • 3.4 負的外邊距
    • 3.5 外邊距折疊
    • 3.6 容器內的元素間距問題
    • 3.7 本章小結
  • 第四章 Flexbox 布局(已完結)
    • 4.1 Flexbox 布局原理
    • 4.2 彈性子元素的大小
    • 4.3 彈性布局的方向
    • 4.4 對齊、間距等細節處
    • 4.5 本章小結
  • 第五章 網格布局(已完結)
    • 5.1 構建基礎網格
    • 5.2 網格結構剖析 (上)
      • 5.2.1 網格線的編號(下)
      • 5.2.2 網格與 Flexbox 配合(下)
    • 5.3 兩種替代語法
      • 5.3.1 命名網格線
      • 5.3.2 命名網格區域
    • 5.4 顯式網格與隱式網格(上)
      • 5.4.1 添加變化 (中)
      • 5.4.2 讓網格元素填滿網格軌道(下)
    • 5.5 子網格(全新增補內容)
    • 5.6 對齊相關的屬性
    • 5.7 本章小結
  • 第六章 定位與堆疊上下文(已完結)
    • 6.1 固定定位
      • 6.1.1 創建一個固定定位的模態對話框
      • 6.1.2 在模態對話框打開時防止屏幕滾動
      • 6.1.3 控制定位元素的大小
    • 6.2 絕對定位
      • 6.2.1 關閉按鈕的絕對定位
      • 6.2.2 偽元素的定位問題
    • 6.3 相對定位
      • 6.3.1 創建下拉菜單(上)
      • 6.3.2 創建 CSS 三角形(下)
    • 6.4 堆疊上下文與 z-index
      • 6.4.1 理解渲染過程與堆疊順序(上)
      • 6.4.2 用 z-index 控制堆疊順序(上)
      • 6.4.3 深入理解堆疊上下文(下)
    • 6.5 粘性定位
    • 6.6 本章小結
  • 第七章 響應式設計(已完結)
    • 7.1 移動端優先設計原則(上篇)
      • 7.1.1 創建移動端菜單(下篇)
      • 7.1.2 給視口添加 meta 標簽(下篇)
    • 7.2 媒體查詢(上篇)
      • 7.2.1 深入理解媒體查詢的類型(上篇)
      • 7.2.2 頁面斷點的添加(中篇)
      • 7.2.3 響應式列的添加(下篇)
    • 7.3 流式布局
    • 7.4 響應式圖片
    • 7.5 本章小結
  • 第八章 層疊圖層及其嵌套
    • 8.1 用 layer 圖層來操控層疊規則(上篇)
      • 8.1.1 圖層的定義(上篇)
      • 8.1.2 圖層的順序與優先級(下篇)
      • 8.1.3 revert-layer 關鍵字(下篇)
    • 8.2 層疊圖層的推薦組織方案
    • 8.3 偽類 :is() 和 :where() 的用法
    • 8.4 CSS 嵌套的使用
      • 8.4.1 嵌套選擇器的使用
      • 8.4.2 深入理解嵌套選擇器
      • 8.4.3 媒體查詢及其他 @規則 的嵌套
    • 8.5 本章小結
  • 第九章 CSS 的模塊化與作用域
    • 9.1 模塊的定義
      • 9.1.1 模塊和全局樣式
      • 9.1.2 一個簡單的 CSS 模塊
      • 9.1.3 模塊的變體
      • 9.1.4 多元素模塊
    • 9.2 將模塊組合為更大的結構
      • 9.2.1 模塊中多個職責的拆分
      • 9.2.2 模塊的命名
    • 9.3 CSS 的作用域
      • 9.3.1 CSS 作用域的就近原則
      • 9.3.2 劃定作用域的邊界
      • 9.3.3 CSS 中的隱式作用域
      • 9.3.4 關于 CSS 作用域與層疊圖層
    • 9.4 CSS 模式庫
    • 9.5 本章小結
  • 第十章 CSS 容器查詢
    • 10.1 容器查詢的一個簡單示例
      • 10.1.1 容器尺寸查詢的用法
    • 10.2 深入理解容器
      • 10.2.1 容器的類型
      • 10.2.2 容器的名稱
      • 10.2.3 容器與模塊化 CSS
    • 10.3 與容器相關的單位
    • 10.4 容器樣式查詢的用法
      • 10.4.1 將模塊與所在容器解耦
      • 10.4.2 減少重復代碼
    • 10.5 本章小結
  • 第 11 章 顏色與對比
    • 11.1 通過對比進行交流
      • 11.1.1 模式的建立
      • 11.1.2 還原設計稿
    • 11.2 顏色的定義
      • 11.2.1 色域與色彩空間
      • 11.2.2 CSS 顏色表示法(RGB、Hex、HSL、HWB、LAB/OKLAB、LCH/OKLCH)
    • 11.3 利用 OKLCH 處理顏色(上篇)
      • 11.3.4 從頁面其他顏色衍生出新顏色(下篇)
    • 11.4 思考字體顏色的對比效果
    • 11.5 本章小結
  • 第 12 章 CSS 排版與間距
    • 12.1 間距設置
      • 12.1.1 使用 em 還是 px
      • 12.1.2 對行高的深入思考
      • 12.1.3 行內元素的間距設置
    • 12.2 Web 字體
    • 12.3 谷歌字體
    • 12.4 @font-face 的工作原理
      • 12.4.1 字體格式與回退處理
      • 12.4.2 同一字型的多種變體形式
    • 12.5 性能因素考量
      • 12.5.1 font-display 屬性解析
      • 12.5.2 可變字體的用法
    • 12.6 調整字間距,提升可讀性
      • 12.6.1 正文的字間距
      • 12.6.2 標題、小元素和間距
    • 12.7 本章小結
  • 附錄
    • 附錄A:CSS 選擇器參考
    • 附錄B:CSS 預處理器簡介

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/63123.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/63123.shtml
英文地址,請注明出處:http://en.pswp.cn/web/63123.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

商務禮儀學習筆記

時間,場合,地點 女士: 1. 著裝(裙裝套裝,最短不能超過膝蓋一拳,裙子形狀直通,顏色簡單不能花里胡哨,上下顏色不能超過三種,深灰深藍;上下顏色,裝飾,面料統一;絲襪不要過于花,肉色透明比較推薦) 2. 妝容和發型(經過搭理,不要毛躁; 膚色保持一致,均衡;腮紅…

ubuntu 用 ss-tproxy的最終網絡結構

1、包含了AD廣告域名篩選 2、Ss-tproxy 國內國外地址分類 3、chinadns-ng解析 4、透明網關 更多細節看之前博客 ubuntu 用ss-TPROXY實現透明代理&#xff0c;基于TPROXY的透明TCP/UDP代理,在 Linux 2.6.28 后進入官方內核。ubuntu 用 ss-tproxy的內置 DNS 前掛上 AdGuardHome…

iOS swift開發系列--如何給swiftui內容視圖添加背景圖片顯示

我需要在swiftui項目中顯示背景圖&#xff0c;有兩種方式&#xff0c;一種是把圖片拖入asset資源中&#xff0c;另外一種是直接把圖片放在源碼目錄下。采用第一種方式&#xff0c;直接把圖片拖到資源目錄&#xff0c;但是swiftui項目沒有彈出&#xff0c; “Copy items if need…

BUUCTF Pwn [HarekazeCTF2019]baby_rop2 題解

下載 得到兩個文件 checksec 64位 拖入IDA64 查看main函數 看到給了個libc說明這題是ret2libc題 這里的打印函數是printf 所以利用printf函數的plt輸出真實地址got 但printf的got好像不行 所以換成了read的got 因為這是64位程序 所以用寄存器傳參&#xff1b;又因為printf得…

語音識別失敗 chrome下獲取瀏覽器錄音功能,因為安全性問題,需要在localhost或127.0.0.1或https下才能獲取權限

環境&#xff1a; Win10專業版 谷歌瀏覽器 版本 131.0.6778.140&#xff08;正式版本&#xff09; &#xff08;64 位&#xff09; 問題描述&#xff1a; 局域網web語音識別出現識別失敗 chrome控制臺出現下獲取瀏覽器錄音功能&#xff0c;因為安全性問題&#xff0c;需要在…

【前端知識】Javascript進階-類和繼承

文章目錄 概述一、類&#xff08;Class&#xff09;二、繼承&#xff08;Inheritance&#xff09; 三、繼承的實現方式作用一、類和作用二、繼承和作用 概述 當然可以&#xff0c;以下是對JavaScript中類和繼承的詳細介紹&#xff1a; 一、類&#xff08;Class&#xff09; 定…

前端搭建企業級項目的具體步驟?

?前端搭建企業級項目的具體步驟如下?&#xff1a; ?確定項目技術棧和規劃項目結構?&#xff1a;首先&#xff0c;確定使用的前端框架&#xff0c;如Vue.js&#xff0c;并規劃項目的目錄結構&#xff0c;包括src、components、routes、store等?。 ?準備開發環境?&#x…

Less和SCSS,哪個更好用?

前言 Less 和 SCSS 都是流行的 CSS 預處理器&#xff0c;它們的目的都是擴展 CSS 的功能&#xff0c;使樣式表更具組織性、可維護性和可重用性。雖然它們有許多相似之處&#xff0c;但在語法、特性和工作方式上也存在一些差異。 Less Less 是一種動態樣式表語言&#xff0c;…

【第三節】Git 基本操作指南

目錄 前言 一、獲取與創建項目 1.1 git init 1.2 git clone 二、基本快照操作 2.1 git add 2.2 git status 2.3 git diff 2.4 git commit 2.5 git reset HEAD 三、 文件管理 3.1 git rm 3.2 git mv 四、 總結 前言 本文將詳細介紹 Git 的基本操作&#xff0c;包括…

【Graylog】索引別名deflector的異常處理和索引分片數限制解除

索引別名deflector的異常處理 官方推薦處理步驟 Stop all Graylog nodes (OPTIONAL) If you want to keep the already ingested messages, reindex them into the Elasticsearch index with the greatest number, e. g. graylog_23 if you want to fix the deflector graylo…

PyTorch 2.0 以下版本中設置默認使用 GPU 的方法

PyTorch 2.0 以下版本中設置默認使用 GPU 的方法 在 PyTorch 2.0以下版本中&#xff0c;默認情況下仍然是使用 CPU 進行計算&#xff0c;除非明確指定使用 GPU。在 PyTorch 2.0 以下版本中&#xff0c;雖然沒有 torch.set_default_device 的便捷方法&#xff0c;但可以通過顯式…

【一本通】輸入兩個不同的數,通過指針對兩個數進行相加和相乘

【一本通】輸入兩個不同的數&#xff0c;通過指針對兩個數進行相加和相乘 C語言代碼C代碼Java代碼 &#x1f490;The Begin&#x1f490;點點關注&#xff0c;收藏不迷路&#x1f490; 輸入兩個不同的數&#xff0c;通過指針對兩個數進行相加和相乘&#xff0c;并輸出。 輸入 …

X.game解析柚子幣提升速效雙向利好和年中歷史新低原因

柚子幣最新消息&#xff0c;幣安宣布將于2024年9月25日21:00左右暫停柚子幣網絡上的代幣存取業務&#xff0c;以全力支持即將到來的柚子幣網絡升級和硬分叉&#xff0c;這一消息為柚子幣的未來發展增添了新的期待和變數。 除了速度的提升&#xff0c;Spring1.0還帶來了諸多技術…

redis集群安裝部署 redis三主三從集群

redis集群安裝部署 redis三主三從集群 1、下載redis2、安裝redis集群 三主三從3、配置redis開機自啟動3.1、建立啟動腳本3.2、復制多份redis啟動腳本給集群使用3.3、添加可執行權限3.4、配置開機自啟動 1、下載redis 本次redis安裝部署選擇當前最新的穩定版本7.4.1 下載鏈接: …

數據結構,鏈表的簡單使用

任意位置刪除&#xff1a; void Any_Del(LinkListPtr h,int a)//任意刪 {if(NULLh||a>h->len){printf("刪除失敗");}LinkListPtr ph;for(int i0;i<a-1;i){pp->next;}LinkListPtr p2p;p2p2->next;p->nextp->next->next;free(p2);p2NULL;h-&g…

Servlet容器來掃描指定包中的類 找到帶有WebServlet注解的類

項目框架如上圖 myweb下邊三個類 package com.qcby.tomcat.myweb;import com.qcby.tomcat.webServlet.WebServlet;WebServlet(urlPatterns {"MyFirstServlet"}) public class MyFirstServlet {}package com.qcby.tomcat.myweb;import com.qcby.tomcat.webServlet.W…

clickhouse 查詢優化思路

最重要的是要學會看懂explain &#xff0c;尤其是下推創建表時&#xff0c;可以選擇表為分布式表。多個表join &#xff0c;創建表時根據join 字段,進行分片&#xff0c;讓數據在同一個節點進行join &#xff0c;提高join 效率。多個表join , 通過創建物化視圖的方式&#xff0…

兩數之和(Hash表)

優質博文&#xff1a;IT-BLOG-CN 一、題目 給定一個整數數組nums和一個整數目標值target&#xff0c;請你在該數組中找出"和"為目標值target的那兩個整數&#xff0c;并返回它們的數組下標。 你可以假設每種輸入只會對應一個答案。但是&#xff0c;數組中同一個元…

C++8--賦值運算符重載

1.運算符重載 C引入運算符的目的是為了增強代碼的可讀性。運算符重載是具有特殊函數名的函數&#xff0c;也具有其返回值類型&#xff0c;函數名字以及參數列表&#xff0c;其返回值類型與參數列表與普通的函數相似。 函數名字為&#xff1a;關鍵字operator后面接需要重載的運算…

P1255 數樓梯

剛開始使用暴力進行求解&#xff0c;結果發現這是一道考驗高精度的題目&#xff0c;后來用高精度的方法&#xff0c;甚至使用到了容器&#xff0c;結果還不如暴力求解的60分&#xff0c;后來看了題解&#xff0c;有一個非常好的思路&#xff0c;即體現了高精度求和&#xff0c;…