<hue-interpolation-method>
Baseline
2024
Newly available
Since June 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Kiểu dữ liệu <hue-interpolation-method> của CSS đại diện cho thuật toán được sử dụng để nội suy giữa các giá trị <hue>.
Phương pháp nội suy chỉ định cách tìm điểm giữa giữa hai giá trị sắc độ dựa trên bánh xe màu.
Nó được sử dụng như một thành phần của kiểu dữ liệu <color-interpolation-method>.
Khi nội suy các giá trị <hue>, thuật toán nội suy sắc độ mặc định là shorter.
Cú pháp
Giá trị <hue-interpolation-method> bao gồm tên của thuật toán nội suy sắc độ theo sau là token hue:
shorter hue longer hue increasing hue decreasing hue
Giá trị
Bất kỳ cặp góc sắc độ nào cũng tương ứng với hai bán kính trên color wheel, chia chu vi thành hai cung có thể để nội suy. Cả hai cung đều bắt đầu từ bán kính đầu tiên và kết thúc ở bán kính thứ hai, nhưng một cung đi theo chiều kim đồng hồ và cung kia đi ngược chiều kim đồng hồ.
Note: Các mô tả và hình minh họa sau đây dựa trên các bánh xe màu trong đó góc sắc độ tăng theo chiều kim đồng hồ. Lưu ý rằng có những bánh xe màu mà việc tăng góc sẽ là thao tác ngược chiều kim đồng hồ.
Với một cặp góc sắc độ θ1 và θ2 được chuẩn hóa về khoảng [0deg, 360deg), có bốn thuật toán để xác định cung nào được sử dụng khi nội suy từ θ1 đến θ2:
shorter-
Sử dụng cung ngắn hơn. Khi hai bán kính trùng nhau, cung suy biến thành một điểm. Khi cả hai cung có cùng độ dài:
- Nếu
θ1 < θ2, sử dụng cung theo chiều kim đồng hồ; - Nếu
θ1 > θ2, sử dụng cung ngược chiều kim đồng hồ.
θ1 = 45deg,θ2 = 135degθ1 = 135deg,θ2 = 45deg

- Nếu
longer-
Sử dụng cung dài hơn. Khi hai bán kính trùng nhau:
- Nếu
θ1 ≤ θ2, cung trở thành chu vi đầy đủ theo chiều kim đồng hồ. - Nếu
θ1 > θ2, cung trở thành chu vi đầy đủ ngược chiều kim đồng hồ.
Khi cả hai cung có cùng độ dài:
- Nếu
θ1 < θ2, sử dụng cung theo chiều kim đồng hồ; - Nếu
θ1 > θ2, sử dụng cung ngược chiều kim đồng hồ.
θ1 = 45deg,θ2 = 135degθ1 = 135deg,θ2 = 45deg

- Nếu
increasing-
Sử dụng cung theo chiều kim đồng hồ. Khi hai bán kính trùng nhau, cung suy biến thành một điểm.
θ1 = 45deg,θ2 = 135degθ1 = 135deg,θ2 = 45deg

decreasing-
Sử dụng cung ngược chiều kim đồng hồ. Khi hai bán kính trùng nhau, cung suy biến thành một điểm.
θ1 = 45deg,θ2 = 135degθ1 = 135deg,θ2 = 45deg

Vì chỉ có hai cung để lựa chọn, các thuật toán này tương đương theo từng cặp trong một số trường hợp nhất định. Cụ thể:
- Nếu
0deg < θ2 - θ1 < 180deghoặcθ2 - θ1 < -180deg,shortervàincreasingtương đương, trong khilongervàdecreasingtương đương. - Nếu
-180deg < θ2 - θ1 < 0deghoặcθ2 - θ1 > 180deg,shortervàdecreasingtương đương, trong khilongervàincreasingtương đương.
Một đặc điểm đáng chú ý của increasing và decreasing là khi sự chênh lệch góc sắc độ vượt qua 180deg trong quá trình chuyển đổi hoặc hoạt ảnh, cung sẽ không lật sang phía bên kia như shorter và longer làm.
Cú pháp chính thức
<hue-interpolation-method> =
[ shorter | longer | increasing | decreasing ] hue
Ví dụ
>So sánh các thuật toán nội suy sắc độ
Ví dụ sau đây cho thấy hiệu ứng của việc sử dụng các thuật toán nội suy sắc độ khác nhau trong linear-gradient().
HTML
<div class="hsl">
<p>HSL</p>
</div>
<div class="hsl-increasing">
<p>HSL increasing</p>
</div>
<div class="hsl-decreasing">
<p>HSL decreasing</p>
</div>
<div class="hsl-shorter">
<p>HSL shorter</p>
</div>
<div class="hsl-longer">
<p>HSL longer</p>
</div>
<div class="hsl-named">
<p>HSL named</p>
</div>
<div class="hsl-named-longer">
<p>HSL named (longer)</p>
</div>
CSS
.hsl {
background: linear-gradient(
to right in hsl,
hsl(39deg 100% 50%),
hsl(60deg 100% 50%)
);
}
.hsl-increasing {
background: linear-gradient(
to right in hsl increasing hue,
hsl(190deg 100% 50%),
hsl(180deg 100% 50%)
);
}
.hsl-decreasing {
background: linear-gradient(
to right in hsl decreasing hue,
hsl(39deg 100% 50%),
hsl(60deg 100% 50%)
);
}
.hsl-shorter {
background: linear-gradient(
to right in hsl shorter hue,
hsl(39deg 100% 50%),
hsl(60deg 100% 50%)
);
}
.hsl-longer {
background: linear-gradient(
to right in hsl longer hue,
hsl(39deg 100% 50%),
hsl(60deg 100% 50%)
);
}
.hsl-named {
background: linear-gradient(to right in hsl, orange, yellow);
}
.hsl-named-longer {
background: linear-gradient(to right in hsl longer hue, orange, yellow);
}
Kết quả
Thông số kỹ thuật
| Specification |
|---|
| CSS Color Module Level 4> # hue-interpolation> |
Khả năng tương thích trình duyệt
Xem thêm
<color-interpolation-method>- Kiểu dữ liệu
<hue>