round()
Baseline
2024
Newly available
Since May 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Hàm round() trong CSS là một hàm trả về một số được làm tròn dựa trên chiến lược làm tròn được chọn.
Các tác giả nên sử dụng thuộc tính CSS tùy chỉnh (ví dụ: --my-property) cho giá trị làm tròn, khoảng cách làm tròn, hoặc cả hai; sử dụng hàm round() là dư thừa nếu những giá trị này đã được biết.
Cú pháp
width: round(var(--width), 50px);
width: round(up, 101px, var(--interval));
width: round(down, var(--height), var(--interval));
margin: round(to-zero, -105px, 10px);
Tham số
Hàm round(<rounding-strategy>, valueToRound, roundingInterval) chỉ định một chiến lược làm tròn tùy chọn, một giá trị (hoặc biểu thức toán học) cần làm tròn và một khoảng cách làm tròn (hoặc biểu thức toán học).
valueToRound được làm tròn theo chiến lược làm tròn, đến bội số nguyên gần nhất của roundingInterval.
<rounding-strategy>-
Chiến lược làm tròn. Đây có thể là một trong các giá trị sau:
up-
Làm tròn
valueToRoundlên bội số nguyên gần nhất củaroundingInterval(nếu giá trị là âm, nó sẽ trở nên "dương hơn"). Tương đương với phương thứcMath.ceil()trong JavaScript. down-
Làm tròn
valueToRoundxuống bội số nguyên gần nhất củaroundingInterval(nếu giá trị là âm, nó sẽ trở nên "âm hơn"). Tương đương với phương thứcMath.floor()trong JavaScript. nearest(mặc định)-
Làm tròn
valueToRoundđến bội số nguyên gần nhất củaroundingInterval, có thể lớn hơn hoặc nhỏ hơn giá trị. NếuvalueToRoundnằm chính giữa hai mục tiêu làm tròn ở trên và dưới (không có cái nào là "gần nhất"), nó sẽ được làm tròn lên. Tương đương vớiMath.round()trong JavaScript. to-zero-
Làm tròn
valueToRoundđến bội số nguyên gần nhất củaroundingIntervalgần hơn về phía/hướng về không (số dương sẽ giảm, trong khi giá trị âm sẽ trở nên "ít âm hơn"). Tương đương với phương thứcMath.trunc()trong JavaScript.
valueToRound-
Giá trị cần làm tròn. Đây phải là
<number>,<dimension>, hoặc<percentage>, hoặc một biểu thức toán học trả về một trong những giá trị đó. roundingInterval-
Khoảng cách làm tròn. Đây là
<number>,<dimension>, hoặc<percentage>, hoặc một biểu thức toán học trả về một trong những giá trị đó. NếuvalueToRoundlà<number>,roundingIntervalcó thể bị bỏ qua và mặc định là1. Nếu không, bỏ qua nó sẽ dẫn đến biểu thức không hợp lệ.
Giá trị trả về
Giá trị của valueToRound, được làm tròn đến bội số nguyên thấp hơn hoặc cao hơn gần nhất của roundingInterval, tùy thuộc vào chiến lược làm tròn.
-
Nếu
roundingIntervallà 0, kết quả làNaN. -
Nếu cả
valueToRoundvàroundingIntervalđều làvô cùng, kết quả làNaN. -
Nếu
valueToRoundlà vô cùng nhưngroundingIntervallà hữu hạn, kết quả là cùng một giá trịvô cùng. -
Nếu
valueToRoundlà hữu hạn nhưngroundingIntervallà vô cùng, kết quả phụ thuộc vào chiến lược làm tròn và dấu củaA:up- NếuvalueToRoundlà dương (không phải không), trả về+∞. NếuvalueToRoundlà0⁺, trả về0⁺. Nếu không, trả về0⁻.down- NếuvalueToRoundlà âm (không phải không), trả về−∞. NếuvalueToRoundlà0⁻, trả về0⁻. Nếu không, trả về0⁺.nearest,to-zero- NếuvalueToRoundlà dương hoặc0⁺, trả về0⁺. Nếu không, trả về0⁻.
-
Các phép tính đối số có thể trả về
<number>,<dimension>, hoặc<percentage>, nhưng phải có cùng kiểu, nếu không hàm không hợp lệ; kết quả sẽ có cùng kiểu với các đối số. -
Nếu
valueToRoundchính xác bằng một bội số nguyên củaroundingInterval,round()trả về chính xácvalueToRound(giữ nguyên liệuvalueToRoundlà0⁻hay0⁺, nếu có liên quan). Nếu không, có hai bội số nguyên củaroundingIntervalcó thể "gần nhất" vớivalueToRound,roundingIntervalthấp hơn gần−∞hơn vàroundingIntervalcao hơn gần+∞hơn.
Cú pháp chính thức
<round()> =
round( <rounding-strategy>? , <calc-sum> , <calc-sum>? )
<rounding-strategy> =
nearest |
up |
down |
to-zero |
line-width
<calc-sum> =
<calc-product> [ [ '+' | '-' ] <calc-product> ]*
<calc-product> =
<calc-value> [ [ '*' | / ] <calc-value> ]*
<calc-value> =
<number> |
<dimension> |
<percentage> |
<calc-keyword> |
( <calc-sum> )
<calc-keyword> =
e |
pi |
infinity |
-infinity |
NaN
Ví dụ
>Làm tròn các giá trị dương
Ví dụ này minh họa cách các chiến lược làm tròn của hàm round() hoạt động với các giá trị dương.
Trong số năm hộp bên dưới, hàm round() được sử dụng để đặt chiều cao của bốn hộp cuối.
Giá trị cần làm tròn nằm trong khoảng từ 100 px đến 125 px trong mỗi trường hợp, và giá trị làm tròn là 25px trong tất cả các trường hợp.
Do đó, chiều cao của các hộp được làm tròn lên đến 125 px hoặc xuống đến 100 px.
HTML
HTML xác định 5 phần tử div sẽ được hiển thị dưới dạng hộp bởi CSS.
Các phần tử chứa văn bản cho biết chiến lược làm tròn, giá trị ban đầu, và chiều cao cuối cùng dự kiến của hộp (trong ngoặc đơn).
<div class="box box-1">height: 100px</div>
<div class="box box-2">up 101px (125px)</div>
<div class="box box-3">down 122px (100px)</div>
<div class="box box-4">to-zero 120px (100px)</div>
<div class="box box-5">nearest 117px (125px)</div>
CSS
CSS được áp dụng cho tất cả các hộp được hiển thị bên dưới.
Lưu ý rằng chúng ta áp dụng thuộc tính CSS tùy chỉnh có tên --rounding-interval, mà chúng ta sẽ sử dụng cho khoảng cách làm tròn.
div.box {
width: 100px;
height: 100px;
background: lightblue;
--rounding-interval: 25px;
}
div đầu tiên từ bên trái không được nhắm mục tiêu với các quy tắc CSS cụ thể, vì vậy nó sẽ có chiều cao mặc định là 100px.
CSS cho div hai, ba và bốn được hiển thị bên dưới, làm tròn lên, xuống và về không tương ứng.
div.box-2 {
height: round(up, 101px, var(--rounding-interval));
}
div.box-3 {
height: round(down, 122px, var(--rounding-interval));
}
div.box-4 {
height: round(to-zero, 120px, var(--rounding-interval));
}
Lưu ý cách ở trên chúng ta chỉ định khoảng cách làm tròn bằng var() và thuộc tính CSS tùy chỉnh --rounding-interval.
Hộp cuối cùng được đặt mà không chỉ định chiến lược làm tròn, do đó mặc định là nearest.
Trong trường hợp này, khoảng cách gần nhất với 117 px là 125px, vì vậy nó sẽ làm tròn lên.
Để so sánh, ở đây chúng ta chỉ định các giá trị được mã hóa cứng cho cả giá trị làm tròn và khoảng cách.
Mặc dù điều này được phép, bạn thường không làm vậy vì không có ý nghĩa gì khi làm tròn một số khi bạn đã biết kết quả phải là gì.
div.box-5 {
height: round(117px, 25px);
}
Kết quả
Nếu trình duyệt hỗ trợ hàm CSS round(), bạn sẽ thấy năm cột với chiều cao được làm tròn như được chỉ định trong văn bản chứa.
Thông số kỹ thuật
| Specification |
|---|
| CSS Values and Units Module Level 4> # funcdef-round> |