Thuộc tính clip-path

Thuộc tính clip-path xác định vùng hiển thị của một phần tử bằng cách cắt xén nó theo hình dạng được chỉ định. Nó nhận một hàm cắt xén hoặc đường dẫn SVG làm tham số.

Cú pháp

cssbộ chọn {
  clip-path: hàm cắt xén;
}

Giá trị

Giá trị Mô tả
circle Cắt xén phần tử theo hình tròn. Các tham số: bán kính và vị trí tâm.
ellipse Cắt xén phần tử theo hình elip. Các tham số: bán kính theo X/Y và vị trí tâm.
polygon Cắt xén phần tử theo đa giác. Các tham số: tọa độ các điểm, phân cách bằng dấu phẩy.
url Sử dụng đường dẫn SVG để cắt xén. Tham số: ID của đường dẫn trong SVG.
path Cắt xén phần tử theo đường dẫn SVG sử dụng chuỗi dữ liệu đường dẫn. Tham số: chuỗi đường dẫn SVG.
inset Cắt xén phần tử bằng hình chữ nhật với khả năng bo góc. Các tham số: khoảng cách từ trên, phải, dưới, trái và bán kính bo góc.
margin-box Sử dụng khoảng cách ngoài (margin) của phần tử làm vùng cắt xén.
border-box Sử dụng đường viền (border) của phần tử làm vùng cắt xén.
padding-box Sử dụng khoảng cách trong (padding) của phần tử làm vùng cắt xén.
content-box Sử dụng nội dung (content) của phần tử làm vùng cắt xén.
none Tắt cắt xén (giá trị mặc định).

Ví dụ

Cắt xén phần tử theo hình lục giác:

html<div id="hexagon"></div>
css#hexagon {
  width: 200px;
  height: 200px;
  background: #3498db;
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
}

Результат:

Ví dụ

Cắt xén phần tử theo hình tròn:

html<div id="circle"></div>
css#circle {
  width: 200px;
  height: 200px;
  background: #2ecc71;
  clip-path: circle(40% at 50% 50%);
}

Результат:

Ví dụ

Cắt xén phần tử theo hình elip:

html<div id="ellipse"></div>
css#ellipse {
  width: 200px;
  height: 150px;
  background: #9b59b6;
  clip-path: ellipse(25% 40% at 50% 50%);
}

Результат:

Ví dụ

Cắt xén phần tử với góc bo tròn:

html<div id="inset"></div>
css#inset {
  width: 200px;
  height: 200px;
  background: #e67e22;
  clip-path: inset(20% 15% 10% 5% round 10px);
}

Результат:

Ví dụ

Cắt xén phần tử theo đường dẫn:

html<div id="path"></div>
css#path {
  width: 200px;
  height: 200px;
  background: #3498db;
  clip-path: path('M20,20 L180,20 L160,180 L40,180 Z');
}

Результат:

Ví dụ

Sử dụng đường dẫn SVG để cắt xén phức tạp:

html<svg width="0" height="0">
  <clipPath id="star-path">
    <path d="M50 0 L61 35 L98 35 L68 57 L79 92 L50 70 L21 92 L32 57 L2 35 L39 35 Z"/>
  </clipPath>
</svg>
<div id="star"></div>
css#star {
  width: 100px;
  height: 100px;
  background: #e74c3c;
  clip-path: url(#star-path);
}

Результат:

Ví dụ . Hình tam giác

Cắt xén theo hình tam giác:

html<div id="triangle"></div>
css#triangle {
  width: 200px;
  height: 200px;
  background: #e74c3c;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}

Результат:

Ví dụ . Hình dạng kết hợp

Tạo hình dạng phức tạp:

html<div id="combined"></div>
css#combined {
  width: 250px;
  height: 250px;
  background: #2ecc71;
  clip-path: polygon(
    0% 0%, 100% 0%, 100% 75%,
    75% 75%, 75% 100%, 50% 75%,
    0% 75%
  );
}

Результат:

Ví dụ . Văn bản được cắt xén

Cắt xén khối văn bản:

html<div id="text-clip">
  <p>CSS clip-path tạo ra hiệu ứng tuyệt vời!</p>
</div>
css#text-clip {
  width: 300px;
  padding: 20px;
  background: #3498db;
  color: white;
  font-size: 24px;
  clip-path: ellipse(120px 80px at 50% 50%);
}

Результат:

Ví dụ . Cắt xén ảnh hình tròn

Cắt xén hình ảnh theo hình tròn:

html<div class="image-clip-circle">
  <img src="img.png">
</div>
css.image-clip-circle img {
  width: 200px;
  height: 200px;
  clip-path: circle(50% at center);
  object-fit: cover;
}

Результат:

Ví dụ . Cắt xén ảnh hình ngôi sao

Cắt xén hình ảnh theo hình ngôi sao năm cánh:

html<div class="image-clip-star">
  <img src="img.png">
</div>
css.image-clip-star img {
  width: 200px;
  height: 200px;
  clip-path: polygon(
    50% 0%,
    61% 35%,
    98% 35%,
    68% 57%,
    79% 91%,
    50% 70%,
    21% 91%,
    32% 57%,
    2% 35%,
    39% 35%
  );
  object-fit: cover;
}

Результат:

Ví dụ . Cắt xén ảnh hình lục giác

Cắt xén hình ảnh theo hình lục giác:

html<div class="image-clip-hexagon">
  <img src="img.png">
</div>
css.image-clip-hexagon img {
  width: 200px;
  height: 200px;
  clip-path: polygon(
    50% 0%,
    100% 25%,
    100% 75%,
    50% 100%,
    0% 75%,
    0% 25%
  );
  object-fit: cover;
}

Результат:

Ví dụ . Cắt xén hình trái tim

Cắt xén hình ảnh theo hình trái tim:

html<div class="image-clip-heart">
  <img src="img.png">
</div>
css.image-clip-heart img {
  width: 200px;
  height: 180px;
  clip-path: polygon(
    50% 15%,
    35% 5%,
    15% 15%,
    10% 35%,
    25% 60%,
    50% 80%,
    75% 60%,
    90% 35%,
    85% 15%,
    65% 5%
  );
  object-fit: cover;
}

Результат:

Ví dụ . Cắt xén ảnh khi di chuột

Thay đổi hình dạng cắt xén khi di chuột qua:

html<div class="image-clip">
  <img src="img.png">
</div>
css.image-clip {
  display: inline-block;
}
.image-clip img {
  width: 200px;
  height: 200px;
  clip-path: circle(40% at 50% 50%);
  object-fit: cover;
  transition: clip-path 0.5s ease;
}
.image-clip:hover img {
  clip-path: polygon(
    50% 0%,
    90% 20%,
    100% 60%,
    75% 100%,
    25% 100%,
    0% 60%,
    10% 20%
  );
}

Результат:

Xem thêm

  • thuộc tính clip,
    cho phép cắt xén hình chữ nhật
  • thuộc tính mask,
    cho phép tạo mặt nạ phức tạp cho phần tử
  • thuộc tính shape-outside,
    xác định hình dạng để văn bản bao quanh
  • thuộc tính filter,
    áp dụng hiệu ứng đồ họa cho phần tử