【问题标题】:Creating a strange shape in CSS在 CSS 中创建一个奇怪的形状
【发布时间】:2015-05-01 22:41:32
【问题描述】:

我正在尝试在 css 中创建这个形状。

我已尽我所能,但无法在右侧创建尖峰

这是我的 CSS

nav li a {
    float: left;
    height: 23px;
    line-height: 24px;
    position: relative;
    padding: 1px 10px 0 24px;
    color: #fff;
    background-color: #393233;
    text-align: center;
    width:75%;
}
nav li a:before {
    content: "";
    float: left;
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 0;
    border-color: white #393233 white white;
    border-style: solid;
    border-width: 12px 12px 12px 12px;
  }
nav li a:after {
    content: "";
    float: left;
    position: absolute;
    top: 0;
    right: -12px;
    width: 0;
    height: 0;
    border-color: #393233 transparent #393233 #393233;
    border-style: solid;
    border-width: 12px 12px 12px 12px;
}

我创建了一个 jsfiddle 来表达我的代码。

http://jsfiddle.net/2Cn3a/

非常感谢任何帮助

【问题讨论】:

  • 你需要添加另一个 DOM 元素来制作我所看到的最终三角形。

标签: html css css-shapes


【解决方案1】:

一种解决方案是使用li 而不是li a 作为相对元素,因此您也可以再添加一个:after。实际操作:http://jsfiddle.net/z47fN/

【讨论】:

  • 这太棒了。谢谢
【解决方案2】:

如果你在 a 标签之后添加一个 span,你可以在 li 中创建另一个箭头。

http://jsfiddle.net/2Cn3a/1/

<style>
span {
  position: absolute;
  float:left;
  background-color: transparent;
  border-color: transparent transparent transparent #393233;
  border-style: solid;
  border-width: 12px 12px 12px 23px;
}
</style>


<nav>
   <li>
     <a href="#">Hello</a>
     <span></span>
   </li>
</nav>

【讨论】:

  • ::after不能达到同样的效果吗?
猜你喜欢
  • 2012-01-30
  • 2020-04-25
  • 1970-01-01
  • 2016-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-17
  • 1970-01-01
相关资源
最近更新 更多