13

中空の三角形を作成したいのですCSSが、それを中空にする方法がわかりません。で三角形を作成できますCSSが、問題が 1 つあります。これは、この三角形をくり抜くことができないことです。

これは私のコードです:

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;
}
4

3 に答える 3

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;
 }
于 2013-09-04T06:51:33.907 に答える
2

解決策はありませんが、2 つの三角形、FIDDLEで回避策があります

HTML コード

<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;

    }
于 2013-09-04T06:34:24.233 に答える