Чтобы создать треугольники только с CSS, мы используем элемент нулевой ширины / высоты с границами:
.arrow-up {
width : 0;
height : 0;
border-left : 50px solid transparent;
border-right : 50px solid transparent;
border-bottom : 50px solid black;
}
Поскольку мы используем границы для создания стрелки, мы не можем просто дать ей границу, номы можем наложить одну стрелку поверх немного большей стрелки, чтобы создать вид границы:
HTML -
<div class="top"></div>
<div class="bottom"></div>
CSS -
.top {
position : absolute;
top : 6px;
left : 10px;
width : 0;
height : 0;
z-index : 100;
border-left : 50px solid transparent;
border-right : 50px solid transparent;
border-bottom : 50px solid black;
}
.bottom {
position : absolute;
width : 0;
height : 0;
z-index : 99;
border-left : 60px solid transparent;
border-right : 60px solid transparent;
border-bottom : 60px solid red;
}
Вот демонстрация: http://jsfiddle.net/jasper/qnmpb/1/
Обновление
Затем вы можете поместить оба треугольных элемента DIV в контейнер и переместить этот контейнер так, как вам нужно:
HTML --
<div id="container">
<div class="top"></div>
<div class="bottom"></div>
</div>
CSS -
#container {
position : relative;
top : 25px;
left : 25px;
}
Вот демонстрационная версия: http://jsfiddle.net/jasper/qnmpb/3/
РЕДАКТИРОВАТЬ (2014):
Я простовернулся к этому ответу и заметил, что отдельные элементы HTML не нужны для создания вашего двойного треугольника.Вы можете использовать псевдоэлементы, :before
и :after
.Т.е. замените селектор .top
на что-то вроде .my-element-that-needs-a-triangle:before
, а селектор .bottom
на что-то вроде .my-element-that-needs-a-triangle:after
.