创建在CSS的三角形,用梯度背景(Creating a triangle in css with a

2019-07-21 17:03发布

我想创建CSS中的一个三角形渐变背景。 我没有任何成功至今。 有没有办法做到这一点,使断下图中看到这种效果。 (附接到错误的密码错误框中的三角形)。

在Photoshop设计

这是设计我到目前为止在HTML和CSS。

这里是CSS我对此刻的三角形。

.error-triangle {
    wwidth: 0;
    height: 0;
    border-top:    10px solid transparent;
    border-bottom: 10px solid transparent;
    border-right:  10px solid blue;
    margin-top: 64px;
    margin-left: 350px;
    position: fixed;
    -webkit-box-shadow: 0 0 3px rgba(102,65,65,.25), 2px 3px 5px rgba(70,34,34,.25), inset 1px 2px rgba(255,255,255,.25);
       -moz-box-shadow: 0 0 3px rgba(102,65,65,.25), 2px 3px 5px rgba(70,34,34,.25), inset 1px 2px rgba(255,255,255,.25);
            box-shadow: 0 0 3px rgba(102,65,65,.25), 2px 3px 5px rgba(70,34,34,.25), inset 1px 2px rgba(255,255,255,.25);
    background-image: -webkit-linear-gradient(bottom, #eb6767, #d94040 35%, #eb6767);
    background-image:    -moz-linear-gradient(bottom, #eb6767, #d94040 35%, #eb6767);
    background-image:      -o-linear-gradient(bottom, #eb6767, #d94040 35%, #eb6767);
    background-image:     -ms-linear-gradient(bottom, #eb6767, #d94040 35%, #eb6767);
    background-image:         linear-gradient(to top, #eb6767, #d94040 35%, #eb6767);
}

我用这对CSS技巧教程。

Answer 1:

创建三角形(或其他形状- 五角形,六角形 ,八角形, 十边形 , 十二边形 , tetradecagons , octadecagons等)用梯度(或任何其他类型的图像背景)是CSS转换很容易。

但在这种情况下,你甚至不需要一个三角形。 你只需要通过45deg旋转的方形伪元素,并从每个角落上适用的梯度。

演示

<div class='warn'></div>

CSS:

.warn {
  position: relative;
  margin: 0 auto;
  border: solid 1px darkred;
  width: 12em; height: 3em;
  border-radius: .2em;
  background: linear-gradient(lightcoral, firebrick);
}
.warn:before {
  position: absolute;
  top: 50%; left: 0;
  margin: -.35em -.45em;
  border-left: inherit; border-bottom: inherit;
  /* pick width & height such that 
     the diagonal of the square is 1em = 1/3 the height of the warn bubble */
  width: .7em; height: .7em;
  border-radius: 0 0 0 .2em;
  transform: rotate(45deg);
  background: linear-gradient(-45deg, firebrick -100%, lightcoral 200%);
  content: '';
}


Answer 2:

您可以创建一个CSS三角形,而不是CSS三角形本身就是一个梯度。 唯一的技巧,我建议是选取最类似于渐变背景中颜色的颜色。 这只是取决于有多大的梯度实际上是,如何很好的三角形将融为一体。

对于红格,你可以尝试使用颜色#d94040,但随后会缺乏边框和阴影。 然而,这些可以加入。 要将边框添加到CSS三角形,你可以把一个里面你这也是一个CSS三角形是一样的大小。 t这将需要使用绝对定位和z-index的重叠他们。

或者你可以使用::后或::之前创建你的CSS三角形,而不添加HTML代码,但随后将只在唯一的现代浏览器。



Answer 3:

在CSS3,你可以创建一个“边界绝招”的三角形。 此边框可以着色,可以有一个背景。

WebKit的现在(和铬12至少)支持梯度作为边界图像。

对于以“梯度”的背景更支持的解决方案,我建议你:伪元素之前,巫婆,你会应用的背景梯度'+的(有边框的CSS三角形)欺骗。

这里是一个cssTriangle发电机适合自己的方式。



文章来源: Creating a triangle in css with a gradient background