div用右箭头

时间:2015-05-13 13:30:16

标签: html css css-shapes

我有这个div:

Div with arrow on the right

我需要css,这样做,div和右边的箭头就像那样。 Alos,我需要一个随机文本(长度正在改变,我们正在谈论响应),我希望文本始终处于事物的中间......最好的方法是什么?

4 个答案:

答案 0 :(得分:5)

这是一个很棒的生成器,可以帮助您入门,然后您可以更多地定制它以获得所需的结果

http://cssarrowplease.com/

要获得类似于您展示的内容,请尝试

.arrow_box {
  position: relative;
  background: #3abc3d;
  min-height: 80px;
  border-radius: 10px;
  padding: 20px;
}
.arrow_box:after {
  left: 100%;
  top: 50%;
  border: solid transparent;
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
  border-color: rgba(58, 188, 61, 0);
  border-left-color: #3abc3d;
  border-width: 20px;
  margin-top: -20px;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet" />

<div class="col-xs-5 col-sm-4 col-md-4 col-lg-2">
  <div class="arrow_box">
    Message for everything
  </div>

</div>

在您的箭头框上,使用bootstrap或您正在使用的任何网格系统,附加大小调整以获得响应。

答案 1 :(得分:2)

示例1

&#13;
&#13;
.block {
    background: green;
    border-radius: 10px;
    padding: 20px;
    position: relative;
    color: #fff;
    max-width: 200px;
    margin: 0 auto;
}
.block:after {
    content: ''; 
    position: absolute;  right: -20px; top: 50%;
    border: 10px solid transparent;	
    border-left: 10px solid green; 
    -webkit-transform: translate(0,-50%);
    -ms-transform: translate(0,-50%);
        transform: translate(0,-50%);   
  }
&#13;
<div class="block">
   Block
</div>
&#13;
&#13;
&#13;

示例2

&#13;
&#13;
.block {
    background: green;
    border-radius: 10px;
    padding: 20px;
    position: relative;
    color: #fff;
    max-width: 200px;
    margin: 0 auto;
}
.block:after{
    content: '';
    position: absolute;  right: -10px; top: 50%;
    background: green;    
    width: 20px; height: 20px;
    margin-top: -10px;    
    transform: rotate(45deg); 
    -webkit-transform: rotate(45deg);
}
&#13;
<div class="block">
   Block
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

像这样,

Reference

<style>

    .arrow-right {
    width: 0; 
    height: 0; 
    border-top: 60px solid transparent;
    border-bottom: 60px solid transparent;

    border-left: 60px solid green;
}
</style>

<div class="arrow-right"></div>

答案 3 :(得分:0)

请试试这个

&#13;
&#13;
.box {
    width: 200px; 
    padding: 10px;
    background: green;
    border-radius: 5px;
    position: relative;
}
.box p {
    margin: 0;
    color: #fff;
}
.box::after {
    position: absolute;
    content: "";
    border-style: solid;
    border-width: 20px;
    border-color: transparent transparent transparent green;
    left: 100%;
    top: 50%;
    margin-top: -20px;
}
&#13;
<div class="box">
    <p>orem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque in fermentum risus. Donec malesuada, risus id vulputate varius, diam enim elementum sem.</p>
</div>
&#13;
&#13;
&#13;