在CSS中创建一个奇怪的形状

时间:2014-07-06 20:18:46

标签: html css css3 css-shapes

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

enter image description here

我尽可能地走了,我不能在右手边创造尖刺

这是我的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/

非常感谢任何帮助

2 个答案:

答案 0 :(得分:4)

一种解决方案是使用li代替li a作为相对元素,因此您还可以向其添加一个:after。看到它的实际应用:http://jsfiddle.net/z47fN/

答案 1 :(得分:0)

如果在标签后添加跨度,则可以在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>