【问题标题】:Two angle line arrows CSS两个角度线箭头 CSS
【发布时间】:2014-04-30 08:26:08
【问题描述】:

是否可以使用 css 创建如下图所示的两个箭头,或者我必须使用 png 或 svg?

到目前为止

HTML

a {
  position: relative;
  display: block;
  padding-left: 30px;
  line-height: 45px;
  height: 45px;
}
a:after,
a:before {
  right: 100%;
  top: 26px;
  border-left: 1px solid black;
  content: " ";
  height: 30px;
  width: 25px;
  position: absolute;
  pointer-events: none;
  left: 7px;
}
a:after {
  -webkit-transform: rotate(135deg);
  left: -11px;
}
a:before {
  -webkit-transform: rotate(45deg);
  top: 5px;
}
<a href="#">Next</a>

jsfiddle

我不知道如何放置另一对边框。

提前致谢

【问题讨论】:

标签: css border pseudo-element css-shapes


【解决方案1】:

带渐变:

a{
  position: relative;
  padding-left: 40px;
}

a::before{
  content: '';    
  position: absolute;
  width: 40px;
  height: 40px;
  left: 0;
  top: 0;     
  background-image:
    linear-gradient(135deg, transparent 0px, transparent 19px, black 20px, transparent 21px),
    linear-gradient(45deg, transparent 0px, transparent 19px, black 20px, transparent 21px),
    linear-gradient(135deg, transparent 0px, transparent 19px, black 20px, transparent 21px),
    linear-gradient(45deg, transparent 0px, transparent 19px, black 20px, transparent 21px);          
  background-repeat: no-repeat;
  background-size: 50% 50%;
  background-position: 0% top, 0% bottom, 50% top, 50% bottom;  
                              /* distance ^        ^ */
}

http://jsfiddle.net/E8sRw/

【讨论】:

    【解决方案2】:

    稍微修改一下您的示例,这是可能的,但您最好使用另一种方法来绘制它或使用图标或图标字体。

    Here's the fiddle

    通过

    实现
    transform: skew();
    

    而不是旋转。

    【讨论】:

      【解决方案3】:

      这是可能的,但在这种情况下我只会使用 SVG:

      http://jsfiddle.net/6v7Np/

      HTML

      <div class="arrow_box"></div>
      <div class="arrow_box alt"></div>
      

      CSS

      .arrow_box {
          position: relative;
          background: #fff;
          top:50px;
          left:60px;
      }
      .arrow_box.alt {
          left:80px;
      }
      .arrow_box:after, .arrow_box:before {
          right: 100%;
          top: 50%;
          border: solid transparent;
          content:" ";
          height: 0;
          width: 0;
          position: absolute;
          pointer-events: none;
      }
      .arrow_box:after {
          border-color: rgba(255, 255, 255, 0);
          border-right-color: #fff;
          border-width: 30px;
          margin-top: -30px;
      }
      .arrow_box:before {
          border-color: rgba(0, 0, 0, 0);
          border-right-color: #000;
          border-width: 31px;
          margin-top: -31px;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-01
        • 2016-01-22
        • 1970-01-01
        • 1970-01-01
        • 2020-04-11
        • 1970-01-01
        • 2014-06-21
        • 1970-01-01
        相关资源
        最近更新 更多