2012-12-08 56 views
16

Tôi có một hình dạng với một cạnh như thế này trong Photoshop:Làm biên giới tam giác lởm chởm trong CSS

image

Có thể làm cho tam giác lặp đi lặp lại như một biên giới với CSS?

+1

Đối với một hiệu ứng tương tự với cạnh đáy cong (như giọt) thay vì những hình tam giác , tham khảo [câu trả lời này] (http: // stackoverflow. com/questions/25895895/tạo-một-giọt-như-đường viền-hiệu ứng-in-css/25903879 # 25903879). – Harry

+0

Không đáp ứng nhưng giải pháp cho việc này có thể được tìm thấy trên http://css-shapes.xyz/saw-tooth-border-effect – Akshay

Trả lời

34

Bạn có thể sử dụng độ dốc css3 để tạo nền có hoa văn zig-zag, sử dụng pseudo after css để áp dụng nó như một đường viền.

HTML:

<div class="header"><h1>This is a header</h1></div> 

CSS:

.header{ 
color:white; 
background-color:#2B3A48; 
text-align:center; 
} 
.header:after { 
content: " "; 
    display:block; 
    position: relative; 
top:0px;left:0px; 
    width:100%; 
    height:36px; 
    background: linear-gradient(#2B3A48 0%, transparent 0%), linear-gradient(135deg, #272220 33.33%, transparent 33.33%) 0 0%, #272220 linear-gradient(45deg, #272220 33.33%, #2B3A48 33.33%) 0 0%; 
    background: -webkit-linear-gradient(#2B3A48 0%, transparent 0%), -webkit-linear-gradient(135deg, #272220 33.33%, transparent 33.33%) 0 0%, #272220 -webkit-linear-gradient(45deg, #272220 33.33%, #2B3A48 33.33%) 0 0%; 
    background: -o-linear-gradient(#2B3A48 0%, transparent 0%), -o-linear-gradient(135deg, #272220 33.33%, transparent 33.33%) 0 0%, #272220 -o-linear-gradient(45deg, #272220 33.33%, #2B3A48 33.33%) 0 0%; 
    background: -moz-linear-gradient(#2B3A48 0%, transparent 0%), -moz-linear-gradient(135deg, #272220 33.33%, transparent 33.33%) 0 0%, #272220 -moz-linear-gradient(45deg, #272220 33.33%, #2B3A48 33.33%) 0 0%; 
    background-repeat: repeat-x; 
    background-size: 0px 100%, 9px 27px, 9px 27px; 
    } 

Nguồn: CSS Zigzag Border with a Textured Background

JSFiddle: http://jsfiddle.net/kA4zK/

+0

Mặc dù nó có thể không tương thích với nhiều trình duyệt, nhưng nó sẽ thực hiện. Cảm ơn! – svbnet

+1

Dường như trong IE10: http://i.imgur.com/TubTh4s.png – Sk8erPeter

+1

không hoạt động trong IE10 –

1

Bạn có thể tạo individual triangle sử dụng CSS khá dễ dàng (chỉ cần chỉnh sửa thuộc tính đường viền). Để làm việc này, bạn sẽ cần phải tự tạo ra khá nhiều đánh dấu. Tôi sẽ khuyên bạn nên chống lại cách tiếp cận này. Thay vào đó, bạn có thể sử dụng hình ảnh riêng lẻ có chứa một hình tam giác đơn lẻ (tốt nhất là trong suốt .png) và sau đó sử dụng các thuộc tính background-imagebackground-repeat (repeat-x) để liên kết với div ("biên giới") của bạn.

Thật không may là chưa có cách nào thuận lợi để đạt được điều này bằng CSS thuần túy.

11

Đối với khán giả trong tương lai, tôi thấy sự thích nghi này @extramaster's answer để được một chút đơn giản hơn.

Về cơ bản nó giống nhau, nhưng nó sử dụng một ít độ dốc nền và cho phép đối tượng sao lưu (.navbar trong đánh dấu của tôi) hiển thị thay vì mã hóa cứng màu thứ hai vào zig-zag.

JsFiddle:http://jsfiddle.net/861gjx0b/2/

html:

<div class="header"><h1>This is a header</h1></div> 
<nav class="navbar"></nav> 

css:

.header{ 
     position:relative; 
     color:white; 
     background-color:#2B3A48; 
     text-align:center; 
} 

.navbar { 
     background: #272220; 
     height:20px; 
}  

.header:after { 
    content: ""; 
    position: absolute;  
    display: block; 

    height: 10px; 
    bottom: -10px; /* -height */ 
    left:0; 
    right:0; 

    /* TODO Add browser prefixes */ 
    background: 
    linear-gradient(
     45deg, transparent 33.333%, 
     #2B3A48 33.333%, #2B3A48 66.667%, 
     transparent 66.667% 
    ),linear-gradient(
     -45deg, transparent 33.333%, 
     #2B3A48 33.333%, #2B3A48 66.667%, 
     transparent 66.667% 
    ); 

    background-size: 8px 20px; /* toothSize doubleHeight */ 
    background-position: 0 -10px; /* horizontalOffset -height */ 
} 
+0

Dọn dẹp đẹp, nhưng không bao gồm tiền tố của nhà cung cấp, điều này có thể vẫn cần thiết (không may). – zxbEPREF

+0

Điều này có thể tốt cho những người chạy nó thông qua một cái gì đó như tự động tiền tố. –

Các vấn đề liên quan