【问题标题】:Can I achieve this border arrow style with just one pseudo-element instead of two? [duplicate]我可以只用一个伪元素而不是两个伪元素来实现这种边框箭头样式吗? [复制]
【发布时间】:2017-09-25 03:58:10
【问题描述】:

GitHub 使用两个伪元素来显示三角形周围的绿色边框。

像这样:

仅使用一个::after 选择器可以得到相同的结果吗?

【问题讨论】:

  • @dippas 还有比这更好的副本吗?这个问题措辞不好,答案都是指外部网站(jsfiddle等),并不是专门关于带边框的三角形。我认为这是为了提高质量。

标签: css pseudo-element


【解决方案1】:

您可以为此使用 :after:before 选择器

div {
  width: 300px;
  height: 200px;
  background: #fff;
  border: 1px solid #1db73f;
  position: relative;
  padding: 20px;
  border-radius:5px;
}
div:before {
  content: "";
  position: absolute;
  right: -20px;
  top: 30px;
  width: 0; 
  height: 0; 
  border-top: 20px solid transparent;
  border-bottom: 20px solid transparent;
  border-left: 20px solid #fff;
  z-index:1;
}
div:after {
  content: "";
  position: absolute;
  right: -21px;
  top: 30px;
  width: 0; 
  height: 0; 
  border-top: 20px solid transparent;
  border-bottom: 20px solid transparent;      
  border-left: 20px solid #1db73f;
}
<div>
  Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
  tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
  quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
  consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
  cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
  proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>

【讨论】:

    【解决方案2】:

    你可以试试这个

    div {
      width:300px;
      height:100px;
      background:#fff;
      border:1px solid green;
      position:relative;
      padding:20px;
     }
     
     div:after {
      content:"";
      position:absolute;
      right:-11px;
      top:30px;
      width:20px;
      height:20px;
      background:#fff;
      border:1px solid green;
      border-left:none;
      border-bottom:none;
      transform:rotate(45deg);
      -webkit-transform:rotate(45deg);
      user-select:none;
      -webkit-user-select: none;
    }
    <div>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
      tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim 
      veniam,quis nostrud exercitation 
    </div>

    【讨论】:

    • 我检查了一下,它在 IE11 中的左侧有点 1px。 Github 的版本是否更一致,这就是他们这样做的原因?
    猜你喜欢
    • 2019-07-14
    • 1970-01-01
    • 2012-08-13
    • 2019-05-05
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    相关资源
    最近更新 更多