Tỷ lệ 3D trong CSS là gì?

Thuộc tính scale trong CSS thay đổi kích thước chiều rộng và chiều cao của phần tử theo tỷ lệ. Vì vậy, nếu chúng ta có một phần tử có kích thước 100 pixel vuông, thì việc nhân rộng nó lên với giá trị 2 sẽ nhân đôi kích thước thành 200 pixel vuông. Tương tự, giá trị tỷ lệ của .5 giảm kích thước xuống một nửa, dẫn đến hình vuông 50 pixel

.element {
  width: 20px;
  height: 20px;
  scale: 2; /* Results in 40 pixels square */
}

Tình cờ có một cách khác để chia tỷ lệ các phần tử, sử dụng hàm scale() trên thuộc tính transform, á la

.element {
  width: 20px;
  height: 20px;
  transform: scale(2); /* Results in 40 pixels square */
}

…thuộc tính CSS scale thực hiện điều đó một cách độc lập với thuộc tính transform, giúp chúng tôi linh hoạt hơn một chút để mở rộng quy mô mọi thứ mà không cần phải xâu chuỗi hiệu ứng với các biến đổi khác

cú pháp

scale: none | <number>{1,3};

Thuộc tính scale chấp nhận từ khóa

.element {
  width: 20px;
  height: 20px;
  transform: scale(2); /* Results in 40 pixels square */
}
3 hoặc tối đa ba giá trị số. Một giá trị số duy nhất chia tỷ lệ phần tử dọc theo trục X (ngang) và Y (dọc) theo cùng một giá trị. Nếu hai giá trị được cung cấp, thì giá trị đầu tiên chia tỷ lệ trục X và giá trị thứ hai chia tỷ lệ trục Y. Nếu ba giá trị được cung cấp, thì giá trị thứ ba tương ứng với trục Z, trục này chia tỷ lệ độ sâu của phần tử trong bối cảnh 3D (điều này xảy ra tương đương với việc sử dụng
.element {
  width: 20px;
  height: 20px;
  transform: scale(2); /* Results in 40 pixels square */
}
4

  • Ban đầu.
    .element {
      width: 20px;
      height: 20px;
      transform: scale(2); /* Results in 40 pixels square */
    }
    3
  • Áp dụng đối với. yếu tố có thể biến đổi
  • Thừa hưởng. không
  • Giá trị tính toán. theo quy định
  • loại hoạt hình. một biến đổi
  • Tạo bối cảnh xếp chồng. Vâng

giá trị

/* Keyword values */
scale: none;

/* Single values */
scale: 2;
scale: 0.25;

/* Two values */
scale: 2 1;

/* Three values */
scale: 1 1.5 2;

/* Global values */
scale: inherit;
scale: initial;
scale: revert;
scale: unset;
  • .element {
      width: 20px;
      height: 20px;
      transform: scale(2); /* Results in 40 pixels square */
    }
    3. Điều này có nghĩa là không áp dụng tỷ lệ cho phần tử;
  • .element {
      width: 20px;
      height: 20px;
      transform: scale(2); /* Results in 40 pixels square */
    }
    8. Điều này nói rằng thuộc tính chấp nhận tối đa ba giá trị được sử dụng để nhân các kích thước của phần tử

Chia tỷ lệ không làm biến dạng luồng bố cục tự nhiên

Điều quan trọng cần biết là thuộc tính scale không khiến các phần tử khác chạy xung quanh nó giống như hàm biến đổi scale(). Điều đó có nghĩa là tỷ lệ của một phần tử không dẫn đến việc các phần tử xung quanh nó được chỉnh lại dòng để tạo thêm (hoặc ít hơn) không gian có sẵn dựa trên tỷ lệ của phần tử đó

Dự phòng nhúng CodePen

Chia tỷ lệ ảnh hưởng đến các phần tử con và con cháu

Một điều khác cần lưu ý là thuộc tính scale chia tỷ lệ cho tất cả các phần tử con của phần tử. Ví dụ: giả sử chúng ta có văn bản bên trong phần tử. Thay đổi tỷ lệ phần tử chia tỷ lệ cả phần tử và văn bản

Dự phòng nhúng CodePen

Chuyển tiếp và hình ảnh động

Và, vâng, chúng ta có thể sử dụng scale trong các hiệu ứng chuyển tiếp và hoạt ảnh CSS. Ví dụ: chúng ta có thể làm cho bất kỳ phần tử nào chuyển đổi suôn sẻ giữa các tỷ lệ trên, chẳng hạn như di chuột

Dự phòng nhúng CodePen

Thậm chí, chúng ta có thể sáng tạo hơn một chút khi kết hợp scale với các thuộc tính biến đổi độc lập khác, chẳng hạn như

scale: none | <number>{1,3};
4

Dự phòng nhúng CodePen

dự phòng

Mặc dù hỗ trợ trình duyệt đang được xây dựng cho thuộc tính CSS scale và các thuộc tính biến đổi độc lập khác, nhưng có lẽ bạn nên kiểm tra hỗ trợ khi sử dụng scale

Hàm CSS scale3d() sửa đổi kích thước của một phần tử. Vì lượng tỷ lệ được xác định bởi một vectơ, nó có thể thay đổi kích thước các kích thước khác nhau ở các tỷ lệ khác nhau

ví dụ

Không thay đổi nguồn gốc

HTML

HTML

sao chép mã

<p>foo</p>
<p class="transformed">bar</p>

CSS

CSS

sao chép mã

p { 
  width: 50px;
  height: 50px;
  background-color: teal;
}

.transformed {
  transform: perspective(500px) scale3d(0.8, 2, 0.2) translateZ(100px);
  background-color: blue;
}

Kết quả

Dịch nguồn gốc của sự biến đổi

HTML

HTML

sao chép mã

<p>foo</p>
<p class="transformed">bar</p>

CSS

CSS

sao chép mã

p { 
  width: 50px;
  height: 50px;
  background-color: teal;
}

.transformed {
  transform: scale3d(2, 3, 0);
  transform-origin: center;
  background-color: blue;
}

Kết quả

cú pháp

CSS

sao chép mã

scale3d(sx, sy, sz)

Sự miêu tả

Hàm CSS scale3d() sửa đổi kích thước của một phần tử. Vì lượng tỷ lệ được xác định bởi một vectơ, nó có thể thay đổi kích thước các kích thước khác nhau ở các tỷ lệ khác nhau

Phép biến đổi này được đặc trưng bởi một vectơ có tọa độ xác định mức độ chia tỷ lệ được thực hiện theo mỗi hướng. Nếu cả ba tọa độ của vectơ bằng nhau thì tỷ lệ đồng đều hoặc đẳng hướng và hình dạng của phần tử được bảo toàn. Trong trường hợp đó, hàm chia tỷ lệ xác định một phép biến đổi đồng nhất

Khi nằm ngoài phạm vi [-1, 1], tỷ lệ sẽ phóng to phần tử theo hướng của tọa độ; . Khi bằng 1 nó không làm gì cả và khi âm nó thực hiện phản xạ điểm và thay đổi kích thước

Việc sử dụng tỷ lệ trong CSS là gì?

Hàm CSS scale() xác định phép biến đổi giúp thay đổi kích thước một phần tử trên mặt phẳng 2D . Do lượng tỷ lệ được xác định bởi một vectơ, nó có thể thay đổi kích thước chiều ngang và chiều dọc ở các tỷ lệ khác nhau. Kết quả của nó là kiểu dữ liệu

Dịch3d CSS là gì?

Hàm translate3d() CSS định vị lại một phần tử trong không gian 3D . Kết quả của nó là kiểu dữ liệu

Làm cách nào để tạo khối 3D trong CSS?

Có thể dễ dàng đạt được hiệu ứng hình khối 3D với CSS 3D Transform bằng cách tạo div cho mỗi mặt của hình khối. Sau đó, sử dụng rotateX, rotateY và rotateZ để đặt chúng vào vị trí của chúng . Gốc biến đổi cũng cần thiết để di chuyển điểm tựa xoay.

Làm cách nào để xoay 3D trong CSS?

Hàm rotate3d() của CSS dùng để xoay các phần tử trong không gian ba chiều. Hàm rotate3d() xoay phần tử dọc theo các trục x , y và z bằng cách sử dụng góc được cung cấp làm đối số. Bạn có thể chỉ định trục/trục quay bằng cách sử dụng một số cho ba đối số đầu tiên.