21

我有一个 div 标签,

 __________
|          |    
|          |    
|          |    
|__________|

我想在它上面添加一个小三角形。

 _______/\_
|          |    
|          |    
|          |    
|__________|

注意:我希望我的 div 标签具有某种颜色的边框,以及另一种颜色的 div 主体。说,我的 div 背景是白色的,边框应该是蓝色的。请看这个。 http://fiddle.jshell.net/pausP/

4

4 回答 4

36

在http://cssarrowplease.com/使用带有指针和阴影的初始框,您可以重新设置它们的样式以制作您想要的形状:

.arrow_box {
  top: 40px;
  position: relative;
  background: #ffffff;
  border: 1px solid #719ECE;  /*set border colour here*/
  width: 200px;
  height: 200px;
  border-radius: 3px;
  -webkit-filter: drop-shadow(0 1px 10px rgba(113, 158, 206, 0.8)); /*set shadow colour  and size here*/
  -moz-box-shadow: 0 1px 10px rgba(113, 158, 206, 0.8);
  filter: drop-shadow(0 1px 10px rgba(113, 158, 206, 0.8));
}

.arrow_box:after,
.arrow_box:before {
  bottom: 100%;
  border: solid transparent;
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
}

.arrow_box:after {
  border-color: rgba(255, 255, 255, 0);
  border-bottom-color: #ffffff;
  border-width: 19px;
  left: 50%;
  margin-left: -19px;
}

.arrow_box:before {
  border-color: rgba(113, 158, 206, 0);
  border-bottom-color: #719ECE;
  border-width: 20px;
  left: 50%;
  margin-left: -20px;
}
<div class="arrow_box">
</div>

如果您需要将箭头向右移动,则只需使用leftfor.arrow_box:after.arrow_box:before

于 2013-04-26T13:28:48.370 回答
-2

您可以在图形编辑器中创建三角形图像,然后将该图像放入 DIV,然后通过绝对定位 DIV 并设置 TOP 和 LEFT 坐标,将该 DIV 浮动到固定坐标。

于 2013-04-26T13:07:43.540 回答
-2

首先,你必须制作一个像 /\ 这样你想要边框颜色的图像,然后将该 .png 图像保存为首选位置,然后移动到用于定位该图像的 css 代码,因此使用以下代码:

背景图像:url(图像/triangle_img.png);背景重复:不重复;背景位置:顶部;

并使用您指定的 div 样式添加此代码。我只给出代码来放置一个带有分割边框的三角形边框

于 2013-04-26T13:29:24.843 回答
-2

上面http://fiddle.jshell.net/pausP/3/上“Pete”的答案很好地展示了如何做到这一点,也可以稍微玩一下参数,看看事情是如何工作的。对于那些不太了解它是如何工作的人,请阅读这篇文章,从边界开始展示三角形是如何制作的(我的意思是原理)。 https://css-tricks.com/snippets/css/css-triangle

然后就是使用 before 和 after,好吧,我们可以只使用一个取决于我们想要的,实际上 before 用于制作蓝色三角形,在白色三角形之后它们被叠加在另一个之上,按顺序有 1px 差异在三角形中具有该边框,但如果不需要,例如之前使用。(你可以稍微改变一下之前的边距,看看它是怎么回事)。跳那很有帮助。

于 2017-05-18T14:51:44.647 回答