Tôi muốn cắt góc trên cùng bên trái của một hộp bằng cách sử dụng CSS như thế này.Làm thế nào để cắt góc hộp Sử dụng CSS với nền trong suốt?
hãy nhớ rằng nền trong suốt.
Tôi muốn cắt góc trên cùng bên trái của một hộp bằng cách sử dụng CSS như thế này.Làm thế nào để cắt góc hộp Sử dụng CSS với nền trong suốt?
hãy nhớ rằng nền trong suốt.
Gần giải pháp tương tự như OriDrori's answer nhưng linh hoạt hơn (nếu bạn cần góc cố định chiều rộng cutted).
Độ dốc này sẽ giống nhau bất kể .card
width
và height
.
body {
background: purple;
}
.card {
width: 200px;
height: 200px;
background: linear-gradient(135deg, transparent 20px, white 20px);
}
<div class="card"></div>
Bạn có thể sử dụng một đơn giản linear gradient cho rằng:
body {
background: purple;
}
.card {
width: 200px;
height: 200px;
background: linear-gradient(to bottom right, transparent 5%, white 5%);
}
<div class="card"></div>
Bạn có thể sử dụng kẹp-path https://developer.mozilla.org/en/docs/Web/CSS/clip-path
và sử dụng một cái gì đó như thế này:
div#test{
\t background:red;
\t width:200px;
\t height: 200px;
\t -webkit-clip-path: polygon(22% 0, 100% 0, 100% 100%, 0 100%, 0 20%);
clip-path: polygon(22% 0, 100% 0, 100% 100%, 0 100%, 0 20%);
}
<div id="test"></div>
Nhờ nó woked –
@AmirUrRehman Lưu ý tuy nhiên, giải pháp này có hỗ trợ trình duyệt xấu (mà tôi đề nghị, Nick, bạn luôn có thêm thông tin về khi đăng câu trả lời mà không ít nhất là công việc xuyên tất cả các trình duyệt mới nhất) – LGSon
Với giả và transform
bạn có thể làm điều đó, và nó có hỗ trợ trình duyệt tốt (từ IE9)
body {
background: url(https://picsum.photos/400/300) center/cover;
}
div {
position: relative;
width: 200px;
height: 200px;
overflow: hidden;
}
div::before {
content: '';
position: absolute;
left: calc(50% + 25px); /* 25px is height/width of the cut */
top: calc(50% + 25px);
width: 141.5%;
height: 141.5%;
transform: translate(-50%,-50%) rotate(45deg);
background: #eee;
opacity: 0.8;
}
<div></div>
Như đã chỉ ra, nếu bạn cần nó để mở rộng tỷ lệ khung hình khác nhau, sử dụng số này
body {
background: url(https://picsum.photos/400/300) center/cover;
}
div {
position: relative;
width: 80vw;
height: 80vh;
overflow: hidden;
}
div::before {
content: '';
position: absolute;
left: 0;
top: 0;
width: 1000%;
height: 5000%;
transform: rotate(45deg) translate(25px,-50%); /* 25px for the cut height/width */
transform-origin: left top;
background: #eee;
opacity: 0.8;
}
<div></div>
Câu trả lời này không thỏa mãn yêu cầu ban đầu về việc sử dụng nền trong suốt. Nó hoạt động tốt cho màu sắc rắn vì nó nằm trên đầu trang của các yếu tố chính. –
@NeilMonroe Câu trả lời này hoạt động ngay cả với hình ảnh phía sau và/hoặc màu nửa trong suốt trên lớp phủ. Xem cập nhật của tôi. Hay bạn có nghĩa là cái gì khác? – LGSon
@LGSon giống như một bên cooment, dưới cùng bên phải và 135deg chỉ tương đương nếu tỷ lệ khung hình của vùng chứa là 1: 1. Tuy nhiên, rất khó để nói cái nào tốt hơn nếu OP không nói rằng anh ta định cư xử trên các phần tử không vuông – vals