如何在CSS中创建空心三角形

时间:2013-09-04 05:47:04

标签: css css-shapes

我希望用CSS创建空心三角形,但我不知道如何去掉它。我可以用CSS创建三角形,但我有一个问题,那就是:我不能将这个三角形凹陷。

这是我的代码:

HTML:

<div id="tringle"></div>

CSS:

#tringle {
  position: absolute;
  height: 0;
  width: 0;
  top: 50%;
  left: 7px;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-top: 7px solid white;
}

3 个答案:

答案 0 :(得分:8)

不完全是跨浏览器但有效。希望我理解你的要求。

http://jsfiddle.net/wmDNr/3/

 .triangle { 
     position: relative;
     width: 20px;
     margin-top: 100px;
 }
 .triangle>div { 
     width: 20px;
     height: 2px;
     background: red;
     margin-top: 100px;
 }

 .triangle>div:before {
     content: " ";
     display: block;
     width: 20px;
     height: 2px;
     background: red;
     -webkit-transform: rotate(56deg);
     -moz-transform: rotate(56deg);
     -ms-transform: rotate(56deg);
     transform: rotate(56deg);
     position: absolute;
     top: -8px;
     right: -5px;
 }
 .triangle>div:after {
     content: " ";
     display: block;
     width: 20px;
     height: 2px;
     background: red;
     -webkit-transform: rotate(-56deg);
     -moz-transform: rotate(-56deg);
     -ms-transform: rotate(-56deg);
     transform: rotate(-56deg);
     position: absolute;
     top: -8px;
     left: -5px;
 }

答案 1 :(得分:2)

我没有解决方案,但我有两个三角形的解决方法,FIDDLE

HTML CODE

<div id="tringle"></div>
<div id="tringle2"></div>

CSS代码

    #tringle {
        left:10px;
        width: 0; 
        height: 0; 
        border-left: 100px solid transparent;
        border-right: 100px solid transparent;
        border-bottom: 100px solid black;
    }
    #tringle2 {

        left:10px;
        width: 0; 
        height: 0; 
        border-left: 50px solid transparent;
        border-right: 50px solid transparent;
        border-bottom: 50px solid #FFF;
        left: 57px;
        position: absolute;
        top: 38px;

    }

答案 2 :(得分:2)

分开rajesh kakawat - 你可以用一个div获得相同的效果:http://jsfiddle.net/aDcTb/

<div id="triangle"></div>

#triangle {
        left:10px;
        width: 0; 
        height: 0; 
        border-left: 100px solid transparent;
        border-right: 100px solid transparent;
        border-bottom: 100px solid black;
    }
    #triangle:after {
        left:10px;
        width: 0; 
        height: 0; 
        border-left: 50px solid transparent;
        border-right: 50px solid transparent;
        border-bottom: 50px solid #FFF;
        left: 57px;
        position: absolute;
        top: 38px;
        content: '';
    }