Trình tạo CSS Clip-Path

Chọn cài đặt sẵn hình dạng, điều chỉnh thanh trượt và sao chép mã CSS clip-path.

Loại hình dạng

Xem trước trực tiếp

CSS được tạo

Cách sử dụng

  1. Chọn một loại hình dạng: đa giác, hình tròn, elip hoặc inset (hình chữ nhật với các góc bo tròn tùy chọn).
  2. Kéo các điểm điều khiển: di chuyển các tay cầm hình dạng trên bản xem trước để tùy chỉnh chính xác vùng mặt nạ.
  3. Sao chép CSS: giá trị thuộc tính clip-path được tạo sẵn sàng để dán vào stylesheet của bạn.

Tại sao sử dụng trình tạo CSS clip-path?

CSS clip-path tạo ra các hình dạng phi chữ nhật bằng cách che mọi thứ bên ngoài một vùng được xác định. Nó được sử dụng cho các phân tách phần chéo, cắt hình ảnh hình lục giác, hình dạng nút tùy chỉnh, hiệu ứng di chuột sáng tạo và lộ ảnh được che. Viết tay tọa độ đa giác clip-path liên quan đến tính phần trăm của mỗi đỉnh, tốn công và khó hình dung. Trình tạo tương tác này cho phép bạn kéo các điểm trực quan và có được giá trị CSS chính xác ngay lập tức.

Tính năng

Câu hỏi thường gặp

clip-path có ảnh hưởng đến vùng có thể nhấp không?

Có. Theo mặc định, các sự kiện con trỏ chỉ được đăng ký bên trong vùng mặt nạ, vùng được che cả vô hình và không thể nhấp. Để làm cho phần tử hoàn toàn có thể nhấp trong khi vẫn che nó về mặt thị giác, hãy sử dụng pointer-events: all trên phần tử hoặc xếp chồng một lớp trong suốt.

Tôi có thể animate clip-path không?

Có, clip-path có thể là chủ đề của các chuyển tiếp và hoạt ảnh CSS. Hoạt hình giữa hai đa giác có cùng số điểm để có hiệu ứng morph mượt mà. Các hình dạng có số điểm khác nhau sẽ animate bằng cách nhảy thay vì nội suy.

clip-path có được hỗ trợ bởi tất cả các trình duyệt không?

clip-path được hỗ trợ bởi tất cả các trình duyệt hiện đại. Đối với các hình dạng SVG thông qua cú pháp url(#id), hỗ trợ thậm chí còn rộng hơn. Các giá trị cơ bản polygon, circle, ellipse và inset hoạt động phổ quát trên Chrome, Firefox, Safari và Edge.

CSS clip-path thực sự làm gì

Thuộc tính CSS clip-path che một phần tử thành một hình dạng đã chọn: bất cứ thứ gì bên trong hình dạng đều hiển thị, mọi thứ bên ngoài trở nên trong suốt. Hộp bố cục của phần tử không thay đổi (nó vẫn chiếm cùng một hình chữ nhật cho các mục đích sụp đổ lề, dòng chảy và định vị anh chị em), nhưng chỉ các pixel bên trong vùng clip được vẽ. Điều này làm cho clip-path khác với việc cắt (vĩnh viễn thay đổi hình ảnh) và khác với định vị (di chuyển mọi thứ): clip-path là một mặt nạ thời gian hiển thị được áp dụng ngay trước khi các pixel đến màn hình.

Có bốn hàm hình dạng cơ bản: polygon() (danh sách các đỉnh dưới dạng tọa độ phần trăm hoặc pixel), circle() (bán kính cộng với một tâm), ellipse() (hai bán kính cộng với một tâm) và inset() (một hình chữ nhật được đo từ mỗi cạnh, tùy chọn với các góc tròn). Đối với các hình dạng quá phức tạp cho bốn cái này (các đường cong không đều, các ngôi sao có các đường lõm, các đường viền thư pháp), clip-path cũng chấp nhận một đường dẫn SVG thông qua path() hoặc một tham chiếu đến một phần tử SVG thông qua url(#id). Trình duyệt vẽ phần tử, sau đó tổng hợp nó thông qua mặt nạ alpha được xác định bởi hình dạng của bạn.

clip-path quan trọng đối với thiết kế web hiện đại vì nó cho phép các hình dạng mà cách đây một thập kỷ sẽ yêu cầu trình chỉnh sửa hình ảnh. Một dải phân chia phần chéo, một lưới avatar lục giác, một biểu ngữ chevron, một bức ảnh hình ngôi sao: tất cả bây giờ có thể trong CSS thuần túy, có thể mở rộng đến bất kỳ kích thước nào, có thể hoạt hình khi di chuột và có thể truy cập được vì phần tử cơ bản vẫn là HTML, không phải hình ảnh rasterized. Đánh đổi là sự dài dòng: viết polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%) bằng tay cho một viên kim cương đơn giản là khả thi, nhưng một ngôi sao 12 đỉnh hoặc một logo cutout tùy chỉnh là không thực tế nếu không có một trình chỉnh sửa trực quan. Đó là nơi trình tạo này phù hợp.

Cách công cụ này hoạt động bên trong

Bản xem trước là một div với clip-path đã chọn của bạn được áp dụng dưới dạng CSS nội tuyến, được cập nhật trên mỗi lần kéo của một tay cầm điều khiển. Tay cầm là các hình tròn được định vị tuyệt đối được phủ lên trên bản xem trước tại tọa độ phần trăm của mỗi đỉnh. Khi bạn kéo một tay cầm, JavaScript bắt sự kiện mousemove (hoặc touchmove), chuyển đổi vị trí pixel thành phần trăm khu vực xem trước, cập nhật đỉnh đó trong đa giác trong bộ nhớ và áp dụng lại chuỗi clip-path. Kết xuất thời gian thực có nghĩa là bạn thấy hình dạng thay đổi khi bạn kéo, không phải sau đó.

CSS được tạo được xây dựng bằng cách nối các đỉnh thành một chuỗi đa giác: polygon(x1% y1%, x2% y2%, ...) cho chế độ đa giác, hoặc circle(r% at cx% cy%), ellipse(rx% ry% at cx% cy%), inset(top right bottom left round radius) cho các loại hình dạng đơn giản hơn. Giá trị phần trăm thay vì giá trị pixel được sử dụng vì phần trăm tự động co giãn với phần tử: một đa giác trông đúng ở 300x200 cũng trông đúng ở 600x400 mà không cần thay đổi CSS. Hộp mã cập nhật trên mọi tương tác và nút Copy CSS ghi giá trị hiện tại vào clipboard của bạn.

Không có gì rời khỏi trình duyệt của bạn. Bản xem trước, tính toán hình dạng, tạo CSS và sao chép clipboard đều là JavaScript phía máy khách. Không có yêu cầu mạng nào được thực hiện; không có hình ảnh nào được tải lên; không có phân tích nào về các lựa chọn hình dạng của bạn. Công cụ không có bất kỳ phần phụ trợ nào ngoài HTML tĩnh và JavaScript được phục vụ một lần khi tải đầu tiên. Mở tab mạng của trình duyệt trong quá trình sử dụng và bạn sẽ thấy không yêu cầu nào sau khi tải trang ban đầu. CSS mà bạn tạo là của bạn để dán vào bất kỳ stylesheet nào.

Lịch sử ngắn gọn về kẹp CSS

Quy trình trong thế giới thực

Các cạm bẫy phổ biến và ý nghĩa của chúng

Quyền riêng tư: mọi thứ chạy trong trình duyệt của bạn

Các công cụ trình tạo CSS truyền thống chia thành hai phe: các trang HTML đơn giản với JavaScript phía máy khách (riêng tư, nhanh, không cần tài khoản) và các trình chỉnh sửa đầy đủ tính năng với các dự án được lưu trên đám mây (cộng tác, nhưng mỗi chỉnh sửa hình dạng được ghi lại trên máy chủ của người khác). Công cụ này thuộc về phe đầu tiên một cách kiên định. Tọa độ đa giác bạn kéo, màu sắc bạn chọn, CSS bạn sao chép: tất cả ở lại trong phiên trình duyệt của bạn, không bao giờ được gửi đi đâu. Làm mới trang và trạng thái biến mất trừ khi bạn đã sao chép CSS trước.

Hàm ý quyền riêng tư quan trọng nhất đối với công việc độc quyền. Một cơ quan thiết kế tạo nguyên mẫu một hình dạng nút tùy chỉnh cho một thiết kế lại thương hiệu bí mật, một nhà phát triển độc lập làm việc trên một giao diện trò chơi chưa công bố, một nhóm doanh nghiệp thiết kế bố cục cho một sản phẩm vẫn đang trong NDA: bất kỳ ngữ cảnh nào mà chính hình dạng hoặc lịch sử lặp lại của nó có thể tiết lộ thông tin về công việc đang diễn ra. Với công cụ này, không có rủi ro đó tồn tại vì không có gì bị bắt. Mở tab Mạng của trình duyệt trong khi kéo tay cầm và bạn sẽ thấy không có yêu cầu đi ra.

Khi một công cụ khác là lựa chọn đúng

Các câu hỏi thường gặp khác

Tôi có thể sử dụng phần trăm hoặc pixel cho tọa độ đỉnh không?

Cả hai đều hoạt động. Phần trăm co giãn với hộp của phần tử, vì vậy một đa giác được xác định bằng phần trăm giữ hình dạng tỷ lệ khi phần tử thay đổi kích thước. Pixel là tuyệt đối, vì vậy một đa giác với tọa độ pixel giữ cùng kích thước bất kể phần tử. Sử dụng phần trăm cho các hình dạng nên thay đổi kích thước với bố cục (hầu hết các trường hợp) và pixel cho các hình dạng cần vị trí pixel chính xác (ví dụ, căn chỉnh với một phần tử thiết kế cụ thể). Bạn cũng có thể trộn: polygon(50% 10px, 100% 50%, ...) hợp lệ.

clip-path có ảnh hưởng đến SEO hoặc trình đọc màn hình không?

Không. clip-path là một thuộc tính chỉ trực quan. HTML bên dưới hoàn toàn có thể truy cập: văn bản bên trong một phần tử được cắt vẫn được lập chỉ mục bởi các công cụ tìm kiếm, vẫn được thông báo bởi các trình đọc màn hình, vẫn có thể chọn bằng điều hướng bàn phím. Sử dụng clip-path để tạo kiểu trực quan; không sử dụng nó như một cách để ẩn nội dung theo ngữ nghĩa (điều đó yêu cầu các thuộc tính display: none hoặc aria-hidden). Nội dung được cắt trực quan vẫn hiện diện trong cây khả năng truy cập.

Làm thế nào để tôi làm cho clip-path đáp ứng?

Sử dụng phần trăm thay vì pixel và kiểm tra kết quả ở các điểm dừng khác nhau. Đối với các hình dạng cần tỷ lệ khác nhau trên di động so với máy tính để bàn, hãy sử dụng truy vấn phương tiện CSS để hoán đổi giá trị clip-path: khai báo một clip-path khác bên trong @media (max-width: 768px) cho hình dạng di động. Đối với các nhu cầu đáp ứng phức tạp (ví dụ, một đa giác trở thành hình tròn trên di động), hãy xem xét sử dụng JavaScript để tính toán lại clip-path dựa trên kích thước cửa sổ, mặc dù các cách tiếp cận CSS thuần túy xử lý hầu hết các trường hợp.

clip-path có thể được áp dụng cho video và iframe không?

Có. clip-path hoạt động trên bất kỳ phần tử HTML nào, bao gồm