Tạo các phần tử web động là một tính năng quan trọng của thiết kế web. Ví dụ:bạn có thể đang thiết kế một nút mà bạn muốn nghiêng khi người dùng di chuột qua nút.
Đó là nơi xuất hiện thuộc tính biến đổi CSS. Thuộc tính biến đổi được sử dụng để di chuyển, xoay, làm nghiêng và chia tỷ lệ các phần tử trên trang web. Điều này cho phép bạn làm cho một trang web tương tác hơn với người dùng.
Hướng dẫn này sẽ thảo luận, với các ví dụ, cách làm việc với các biến đổi 2D trong CSS bằng cách sử dụng thuộc tính biến đổi. Khi đọc xong hướng dẫn này, bạn sẽ trở thành một chuyên gia trong việc sử dụng các chuyển đổi CSS 2D.
Chuyển đổi CSS 2D
Chức năng biến đổi CSS cho phép bạn tạo các hoạt ảnh biến đổi cơ bản như xoay, chuyển động, tỷ lệ và độ nghiêng trên một trang web.
Khi một phần tử được biến đổi, nó không ảnh hưởng đến bất kỳ phần tử nào gần đó. Tuy nhiên, một phần tử được chuyển đổi có thể chồng chéo chúng lên nhau, mặc dù nó vẫn sẽ chiếm không gian ở vị trí mặc định trên trang web.
Có hai loại chuyển đổi trong CSS:2D và 3D. Thuộc tính biến đổi được sử dụng để tạo các phép biến đổi của cả hai loại, nhưng đối với bài viết này, chúng ta sẽ tập trung vào các phép biến đổi 2D.
Có một số phép biến đổi 2D có thể được áp dụng cho các phần tử web trong CSS. Đó là:
- dịch ()
- thang đo ()
- scaleX ()
- scaleY ()
- xiên ()
- xiên xẹo ()
- xiên Y ()
- ma trận ()
- xoay ()
Hãy chia nhỏ từng phép biến đổi này riêng lẻ, có tham chiếu đến một ví dụ.
81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.
Sinh viên tốt nghiệp bootcamp trung bình đã dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.
translate () Chuyển đổi
Phương thức translate () được sử dụng để di chuyển một phần tử từ vị trí hiện tại của nó sang vị trí mới trên màn hình.
Hàm translate () chấp nhận hai tham số:số pixel ở bên phải phần tử sẽ di chuyển và số pixel ở phía dưới phần tử sẽ di chuyển.
Cú pháp cho phương thức này là:
translate(xAxis, yAxis);
Giả sử chúng ta có một hộp mà chúng ta muốn di chuyển 25px sang bên phải và 50px xuống từ vị trí hiện tại của nó. Chúng tôi có thể hoàn thành nhiệm vụ này bằng cách sử dụng mã sau:
index.html <body> <p>This is a paragraph of text.</p> <div><p>This is a box that has been moved using the translate() method.</p></div> </body> styles.css div { transform: translate(25px, 50px); background-color: lightblue; border: 3px solid black; }
Mã của chúng tôi trả về:
[Result of code here]
Hãy chia nhỏ mã của chúng ta. Trong mã HTML của chúng tôi, chúng tôi đã tạo hai đoạn văn bản. Đoạn đầu tiên xuất hiện ở đầu trang. Đoạn thứ hai xuất hiện bên dưới đoạn đầu tiên và được đặt trong thẻ
Trong mã CSS của chúng tôi, chúng tôi đã xác định một kiểu áp dụng cho thẻ
Đây là mã của chúng tôi mà không có biến đổi translate () được chỉ định:
index.html <body> <p>This is a paragraph of text.</p> <div><p>This is a box that has been moved using the translate() method.</p></div> </body> styles.css div { background-color: lightblue; border: 3px solid black; }
Mã của chúng tôi trả về:
[Code result here]
Như bạn có thể thấy, mà không cần chỉ định translate()
, hộp của chúng tôi vẫn giữ vị trí bình thường của nó trên trang web.
xoay () Chuyển đổi
rotate()
phép biến đổi cho phép bạn xoay một phần tử theo chiều kim đồng hồ hoặc ngược chiều kim đồng hồ. Mức độ luân chuyển của một mục dựa trên một giá trị độ nhất định.
Cú pháp cho rotate()
chuyển đổi như sau:
transform: rotate(Xdeg);
Trong cú pháp trên, X đề cập đến số độ mà bạn muốn một phần tử được xoay. Nếu bạn muốn xoay một phần tử theo chiều kim đồng hồ, bạn nên chỉ định một giá trị dương cho X; ngược lại, nếu bạn muốn xoay một phần tử ngược chiều kim đồng hồ, bạn nên chỉ định một giá trị âm cho X.
Giả sử chúng ta có một hộp mà chúng ta muốn xoay 45 độ. Chúng tôi có thể xoay hộp của mình bằng cách sử dụng mã sau:
index.html <div><p>This is a box that has been rotated.</p></div> styles.css div { transform: rotate(45deg); background-color: lightblue; border: 3px solid black; }
Mã của chúng tôi trả về:
[Code result here]
Hãy chia nhỏ mã của chúng ta. Trong mã HTML của chúng tôi, chúng tôi đã tạo một hộp
Như bạn có thể thấy trong kết quả mã của chúng tôi, hộp chúng tôi tạo đã được xoay. Dưới đây là so sánh các hộp được xoay trước và sau khi xoay của chúng tôi:
scale () Chuyển đổi
scale()
cho phép bạn tăng hoặc giảm kích thước của một phần tử.
Cú pháp của phương thức scale () như sau:
transform: scale(x, y);
Hàm tỷ lệ sẽ chia tỷ lệ chiều rộng (x) và chiều cao (y) của hình ảnh dựa trên các giá trị bạn chỉ định. Nếu bạn không chỉ định giá trị cho tỷ lệ chiều cao, thì hàm scale () sẽ giả sử tỷ lệ chiều cao phải bằng tỷ lệ chiều rộng.
Giả sử chúng ta có một hộp mà chúng ta muốn mở rộng thành 1,5 lần kích thước ban đầu của nó. Chúng tôi có thể làm như vậy bằng cách sử dụng mã này:
index.html <div><p>This is a box that has been scaled.</p></div> styles.css div { transform: scale(1.5, 1.5); background-color: lightblue; border: 3px solid black; }
Mã của chúng tôi trả về:
[Code result here]
Trong mã HTML của chúng tôi, chúng tôi đã tạo một hộp chứa một câu văn bản. Trong mã CSS của chúng tôi, chúng tôi đã chỉ định rằng tất cả các thẻ
Đây là hình ảnh so sánh kích thước của hai hộp. Hộp nhỏ nhất không có giá trị scale () và hộp lớn nhất có scale () là 1,5:
Hộp lớn nhất, bao gồm văn bản This is a box that has been scaled.
lớn gấp 1,5 lần so với hộp ban đầu của chúng tôi.
scaleX ()
scaleX()
phép biến đổi cho phép bạn tăng hoặc giảm chiều rộng của một phần tử. Cú pháp cho phép biến đổi scaleX () là:
transform: scaleX(xValue);
Tham số xValue là số lượng mà bạn muốn chia tỷ lệ chiều rộng của một phần tử. Giả sử bạn có một hộp có chiều rộng bạn muốn tăng thêm một hệ số là 1,6. Bạn có thể tăng kích thước của hộp này bằng cách sử dụng mã sau:
index.html <div><p>This is a box that has been scaled.</p></div> styles.css div { transform: scaleX(1.5); background-color: lightblue; border: 3px solid black; }
Mã của chúng tôi trả về:
[Code result here]
Trong ví dụ này, chiều rộng của hộp của chúng tôi đã được tăng lên 1,5 lần chiều rộng ban đầu của nó.
scaleY ()
scaleY()
phép biến đổi cho phép bạn tăng hoặc giảm chiều cao của một phần tử. scaleY () hoạt động theo cách tương tự như scaleX (), nhưng thay vì ảnh hưởng đến chiều rộng của một phần tử, scaleY () thay đổi chiều cao của phần tử.
Giả sử chúng ta muốn giảm chiều cao của một chiếc hộp xuống còn một nửa chiều cao hiện tại của nó. Chúng tôi có thể làm như vậy bằng cách sử dụng mã này:
index.html <div><p>This is a box that has been scaled.</p></div> styles.css div { transform: scaleY(0.5); background-color: lightblue; border: 3px solid black; }
Mã của chúng tôi trả về:
[Code result here]
Trong mã của chúng tôi, chúng tôi đã thu nhỏ chiều cao của hộp (được biểu thị bằng trục y) theo hệ số 0,5. Nói cách khác, hộp của chúng ta bằng một nửa chiều cao ban đầu.
xiên ()
skew()
phép biến đổi xiên một phần tử dọc theo trục x và y của nó theo các góc xác định.
Cú pháp của phương thức xiên () như sau:
transform: skew(xValue, yValue);
xValue đề cập đến mức độ lệch của một phần tử trên trục x của nó và yValue đề cập đến mức độ lệch của một phần tử trên trục y của nó. Cả hai giá trị phải được biểu thị bằng độ.
Nếu một giá trị cho yValue không được chỉ định, sẽ không có xiên nào được áp dụng trên trục y.
Giả sử chúng ta muốn xiên một hộp đi 10 độ trên trục x và 15 độ trên trục y của nó. Chúng tôi có thể làm như vậy bằng cách sử dụng mã này:
index.html <div><p>This is a box that has been skewed.</p></div> styles.css div { transform: skew(10deg, 15deg); background-color: lightblue; border: 3px solid black; }
Mã của chúng tôi trả về:
Trong ví dụ này, chúng tôi đã làm lệch hộp của mình 10 độ trên trục x và 15 độ trên trục y.
Biến đổi xiên () và xiên Y ()
Giống như scale()
phương thức, skew()
đi kèm với hai phương thức con được sử dụng để xiên một phần tử qua trục x hoặc y của một phần tử.
Để chỉ xiên một phần tử qua trục X của nó, bạn có thể sử dụng phương thức xiên quay (). Cú pháp của phương thức này như sau:
transform: skewX(xValue);
xValue là số độ trên trục x mà một phần tử sẽ bị lệch.
Để xiên một phần tử qua trục Y của nó, bạn có thể sử dụng phương thức xiên Y (). Cú pháp của phương thức xiên Y () là:
transform: skewY(yValue);
Vì vậy, nếu bạn muốn xiên một phần tử đi 10 độ trên trục Y của nó, bạn có thể sử dụng mã này:
div { transform: skewY(10deg); }
matrix () Chuyển đổi
Ma trận matrix()
phép chuyển đổi thực hiện tất cả các phép biến đổi CSS 2D trên một phần tử. Vì vậy, ma trận () có thể được sử dụng để áp dụng các phép biến đổi tịnh tiến, xoay, chia tỷ lệ và xiên.
Hàm ma trận () chấp nhận sáu tham số cho phép bạn áp dụng các phép biến đổi cho một phần tử. Cú pháp của phương thức này như sau:
biến đổi:ma trận (scaleX (), xiênY (), xiên X (), scaleY (), translateX (), translateY ());
Giả sử chúng ta muốn tạo một hộp sử dụng các phép biến đổi sau:
- Thang điểm trên trục X là 1.
- Xéo trên trục Y 10 độ.
- Trục xiên 10 độ trên trục X.
- Thang điểm trên trục Y là 1,25.
- Một chuyển động (“dịch”) trên trục X x 25px.
- Chuyển động trên trục Y x 25px.
Chúng tôi có thể chỉ định từng biến đổi này riêng lẻ. Tuy nhiên, làm như vậy sẽ dẫn đến việc chúng ta phải viết nhiều phép biến đổi riêng biệt. Thay vào đó, chúng ta có thể sử dụng phương thức matrix () để viết các phép biến đổi này bằng một dòng mã.
Đây là mã chúng tôi có thể sử dụng để tạo hộp của chúng tôi với các phép biến đổi nói trên:
index.html <div><p>This is a box that has been skewed.</p></div> styles.css div { transform: matrix(1, 10, 10, 1.25, 25, 25); background-color: lightblue; border: 3px solid black; }
Mã của chúng tôi trả về:
[Code result here]
Trong mã của chúng tôi, chúng tôi đã áp dụng chuyển đổi xiên, chia tỷ lệ và dịch cho hộp của chúng tôi. Chúng tôi đã thực hiện điều này bằng cách sử dụng phương thức matrix () và bằng cách chuyển các giá trị mà chúng tôi đã chỉ định trước đó.
Kết luận
Thuộc tính biến đổi được sử dụng để áp dụng các phép biến đổi cho một phần tử trong CSS. CSS cung cấp một số biến đổi 2D, bao gồm xiên, chia tỷ lệ, xoay và dịch, được sử dụng để biến đổi các phần tử web.
Hướng dẫn này đã khám phá, với tham chiếu đến các ví dụ, kiến thức cơ bản về chuyển đổi CSS 2D. Bây giờ, bạn đã sẵn sàng để bắt đầu tạo các chuyển đổi 2D của riêng mình như một nhà phát triển web chuyên nghiệp.