CSS技巧-CSS的形状有很多不同的CSS形状,我特别困惑于三角形:

#三角形向上{宽度:0;高度:0;左边框:50px实心透明;右边框:50px实心透明;边框底部:100px纯红色;}<div id=“triangle up”></div>

它是如何以及为什么工作的?


当前回答

好的,这个三角形将被创建,因为元素的边框在HTML和CSS中一起工作的方式。。。

由于我们通常使用1或2px边框,我们从未注意到边框以相同的宽度彼此成45°角,如果宽度发生变化,角度也会发生变化,请运行我在下面创建的CSS代码:

.三角形{宽度:100px;高度:100px;左边框:50px实心黑色;右边框:50px实心黑色;边框底部:100px纯红色;}<div class=“triangle”></div>

然后在下一步中,我们没有任何宽度或高度,如下所示:

.三角形{宽度:0;高度:0;左边框:50px实心黑色;右边框:50px实心黑色;边框底部:100px纯红色;}<div class=“triangle”></div>

现在,我们使左边界和右边界不可见,以使理想的三角形如下所示:

.三角形{宽度:0;高度:0;左边框:50px实心透明;右边框:50px实心透明;边框底部:100px纯红色;}<div class=“triangle”></div>

如果您不愿意运行代码片段来查看步骤,我创建了一个图像序列,以查看一个图像中的所有步骤:

其他回答

好的,这个三角形将被创建,因为元素的边框在HTML和CSS中一起工作的方式。。。

由于我们通常使用1或2px边框,我们从未注意到边框以相同的宽度彼此成45°角,如果宽度发生变化,角度也会发生变化,请运行我在下面创建的CSS代码:

.三角形{宽度:100px;高度:100px;左边框:50px实心黑色;右边框:50px实心黑色;边框底部:100px纯红色;}<div class=“triangle”></div>

然后在下一步中,我们没有任何宽度或高度,如下所示:

.三角形{宽度:0;高度:0;左边框:50px实心黑色;右边框:50px实心黑色;边框底部:100px纯红色;}<div class=“triangle”></div>

现在,我们使左边界和右边界不可见,以使理想的三角形如下所示:

.三角形{宽度:0;高度:0;左边框:50px实心透明;右边框:50px实心透明;边框底部:100px纯红色;}<div class=“triangle”></div>

如果您不愿意运行代码片段来查看步骤,我创建了一个图像序列,以查看一个图像中的所有步骤:

CSS三角:五幕悲剧

正如亚历克斯所说,等宽的边界以45度角相互对接:

如果没有上边框,则如下所示:

然后你给它0的宽度。。。

…高度为0。。。

…最后,使两个侧边透明:

这就形成了一个三角形。

剪辑路径对我来说效果最好-适用于具有和不具有固定尺寸的div/容器:

.triangleContainer{
    position: relative;
    width: 500px;
    height: 500px;
}

.triangleContainer::before{
    content: "";        
    position: absolute;
    background:blue;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    clip-path: polygon(50% 0, 0 100%, 100% 100%);
}

使用剪辑路径:多边形(50%0%,100%100%,0%100%);用于创建简单的三角形

<div class="triangle"></div>

.triangle{width:200px; height:200px;background:#000;clip-path: polygon(50% 0%, 100% 100%, 0% 100%);}

边框在相交处使用有角度的边(与等宽边框成45°角,但更改边框宽度可能会扭曲角度)。

第二部分{宽度:60px;边框宽度:30px;边框颜色:红蓝绿黄;边框样式:实心;}<div></div>

看看jsFiddle。

通过隐藏某些边界,您可以获得三角形效果(正如您在上面看到的,通过使不同部分的颜色不同)。透明经常被用作边缘颜色以获得三角形形状。