dynamic-range-limit-mix()
dynamic-range-limit-mix() CSS 函式透過將不同的 dynamic-range-limit 關鍵字按指定量混合,建立自定義的最大亮度限制。
語法
dynamic-range-limit-mix(standard 70%, no-limit 30%);
dynamic-range-limit-mix(no-limit 10%, constrained 20%);
dynamic-range-limit-mix(no-limit 30%, constrained 30%, standard 30%);
dynamic-range-limit-mix(
no-limit 20%,
dynamic-range-limit-mix(standard 25%, constrained 75%) 20%
)
引數
dynamic-range-limit<percentage>-
由
dynamic-range-limit值(可以是另一個dynamic-range-limit-mix()函式)和介於0%到100%(含)之間的<percentage>組成的一對。<percentage>指定了自定義限制中dynamic-range-limit關鍵字值的比例。dynamic-range-limit-mix()函式可以接受兩個或更多這樣的對作為引數。
返回值
一個自定義的最大亮度限制,表示為比 HDR 參考白色高出多少個攝影光圈值。出於隱私原因,實際計算結果不會公開。
描述
dynamic-range-limit 屬性允許你控制高動態範圍(HDR)內容的亮度。dynamic-range-limit-mix() 函式可以作為 dynamic-range-limit 的值提供,它允許你透過混合 dynamic-range-limit 關鍵字值的百分比來建立自定義亮度限制。
計算百分比
當給定的百分比加起來等於 100% 時,結果是顯而易見的。
/* standard 70%, no-limit 30% */
dynamic-range-limit-mix(standard 70%, no-limit 30%);
當給定的百分比不等於 100% 時,結果百分比等於給定百分比彼此成比例地表示,以便總和等於 100%。
/* no-limit 40%, constrained 60% */
dynamic-range-limit-mix(no-limit 20%, constrained 30%);
/* no-limit 20%, constrained 40%, standard 40% */
dynamic-range-limit-mix(no-limit 40%, constrained 80%, standard 80%);
如果 dynamic-range-limit 關鍵字值使用多次,則該關鍵字值的百分比將相加得到總百分比。
/* constrained 70%, standard 30% */
dynamic-range-limit-mix(constrained 40%, standard 30%, constrained 30%);
/* no-limit 40%, constrained 60% */
dynamic-range-limit-mix(no-limit 10%, constrained 30%, no-limit 10%);
如果指定的百分比小於 0% 或大於 100%,則 dynamic-range-limit-mix() 函式(以及因此關聯的 dynamic-range-limit 屬性值)無效。如果一個關鍵字使用多次且累積百分比超過 100%,則該值有效,並且上面描述的比例規則將發揮作用。
巢狀 dynamic-range-limit-mix() 函式
你可以將 dynamic-range-limit-mix() 函式相互巢狀。這樣做時,前面解釋的相同規則適用,並且每組百分比都是單獨計算然後相加。在下面的示例中
dynamic-range-limit-mix(
no-limit 10%,
dynamic-range-limit-mix(standard 25%, constrained 75%) 20%,
dynamic-range-limit-mix(constrained 10%, no-limit 30%) 20%
)
- 第一行給出
no-limit 10%。 - 由於
25%和75%加起來等於100%,因此第二行給出standard 5%(20%的25%)和constrained 15%(20%的75%)。 - 在第三行中,由於
10%和30%加起來僅為40%,而不是100%,我們將兩者歸一化為40%的比例:10/40 =25%和 30/40 =75%。這給我們constrained 5%(20%的25%)和no-limit 15%(20%的75%)。
將這些相加得到原始百分比
dynamic-range-limit-mix(standard 5%, constrained 20%, no-limit 25%)
上面的百分比加起來等於 50%,因此需要將它們翻倍才能得到最終百分比。因此,計算值是
dynamic-range-limit-mix(standard 10%, constrained 40%, no-limit 50%)
正式語法
<dynamic-range-limit-mix()> =
dynamic-range-limit-mix( [ <'dynamic-range-limit'> && <percentage [0,100]> ]#{2,} )
<dynamic-range-limit> =
standard |
no-limit |
constrained |
<dynamic-range-limit-mix()>
示例
基本用法
考慮一個用於在網頁上嵌入 HDR 影像的 <img> 元素。
<img src="my-hdr-image.jpg" alt="my image" />
在 HDR 顯示器上,影像中最亮的區域可能會顯得刺眼和不舒服。為了解決這個問題,我們可以將影像的 dynamic-range-limit 屬性設定為 dynamic-range-limit-mix(standard 70%, no-limit 30%),這使其最大亮度限制僅比 HDR 參考白色稍亮。
img {
dynamic-range-limit: dynamic-range-limit-mix(standard 70%, no-limit 30%);
}
你可以在我們的 dynamic-range-limit 屬性演示中看到 dynamic-range-limit 屬性的實際應用,其中包括一個 HDR 影像,可以透過懸停和聚焦來轉換 dynamic-range-limit 值。在能夠顯示 HDR 顏色的顯示器上線上檢視示例並試用它。
規範
| 規範 |
|---|
| CSS 顏色 HDR 模組級別 1 # funcdef-dynamic-range-limit-mix |
瀏覽器相容性
載入中…