我正在尝试使用渐变背景在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);
}
我正在使用此tutorial on CSS tricks.
答案 0 :(得分:17)
使用渐变创建三角形(或其他形状 - pentagons, hexagons,八边形,decagons,dodecagons,tetradecagons,octadecagons等等)使用CSS转换,任何其他类型的图像背景都非常简单。
但在这种情况下,你甚至不需要三角形。你只需要将一个方形伪元素旋转45度并在角落之间应用渐变。
<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: '';
}
答案 1 :(得分:0)
您可以创建一个CSS三角形,但不能创建一个本身就是渐变的CSS三角形。我建议的唯一技巧是选择最接近渐变背景中颜色的颜色。它只取决于你的渐变实际有多大,以及三角形融合的程度。
对于红色div,您可以尝试使用颜色#d94040,但它将缺少边框和阴影。但是,可以添加这些。要为CSS三角形添加边框,您可以在其中放置一个同样大小的CSS三角形。这需要使用绝对定位和z-index来重叠它们。
或者您可以使用:: after或:: before来创建CSS三角形而不添加HTML代码,但那只能在现代浏览器中使用。
答案 2 :(得分:0)
在CSS3中,您可以使用'border trick'创建一个三角形。此边框可以是彩色的,可以有背景。
WebKit现在(至少Chrome 12)支持渐变作为边框图像。
对于更受支持的解决方案,我建议你“渐变”a的背景:在使用伪元素之前,你会应用'背景渐变'+(带边框的css三角形)技巧。