Creating a triangle div with CSS
Asked Answered
P

2

6

I have recently learned how to create the appearance of a triangle div with CSS and HTML. Now, I would like to know if it is at all possible to add a border around any of the sides of the triangle div, so that if I gave the div a white background and a black border you could still see it? Is there a way I can do this?

JSFIDDLE: http://jsfiddle.net/c75KM/1/

HTML:

<div class="arrow-up"></div>

CSS:

.arrow-up {
width: 0; 
height: 0; 
border-left: 10px solid transparent;
border-right: 10px solid transparent;
border-bottom: 10px solid black;
}
Postorbital answered 26/2, 2013 at 6:46 Comment(1)
B
6

This is the typical way to do it:

JSFiddle

.arrow-up:after {
    position:absolute;
    content:"";
    width: 0;
    height: 0;
    margin-top:1px;
    margin-left:2px;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-bottom: 10px solid white;
}

.arrow-up:before {
    position:absolute;
    content:"";
    width: 0;
    height: 0;
    border-left: 12px solid transparent;
    border-right: 12px solid transparent;
    border-bottom: 12px solid black;
}
Branchiopod answered 26/2, 2013 at 6:51 Comment(1)
content is to make the pseudo-elements :before and :after visible. In the above I'm sort of using two 'fake' elements which are related to .arrow-up, we could do it with two separate elements but it wouldn't be as nice. Read up further here css-tricks.com/pseudo-element-roundupBranchiopod
S
0

You can do it using the CSS clip-path property:

div { 
   -webkit-clip-path: polygon(50% 0%, 0% 100%, 100% 100%); 
   clip-path: polygon(50% 0%, 0% 100%, 100% 100%);   
   background: blue;   
   width: 100px;   
   height:100px;                                                      
}
<div></div>
Sale answered 11/7, 2022 at 11:49 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.