底部带有全宽响应式箭头的div

4

嘿!

目前我正在尝试制作以下导航栏:

nav

但最终得到了以下结果:

enter image description here

我该如何降低我在底部添加的箭头的高度,同时保持其完整宽度?

nav {
  position: relative;
  display: inline-block;
  height: 50px;
  width: 100%;
  text-align: center;
  color: white;
  background: gray;
  line-height: 50px;
  text-decoration: none;
  padding-bottom: 15%;
  background-clip: content-box;
  overflow: hidden;
}
nav:after {
  content: "";
  position: absolute;
  top: 50px;
  left: 0;
  background-color: inherit;
  padding-bottom: 50%;
  width: 57.7%;
  z-index: -1;
  -webkit-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
  -webkit-transform: rotate(-30deg) skewX(30deg);
  -ms-transform: rotate(-30deg) skewX(30deg);
  transform: rotate(-30deg) skewX(30deg);
}
<nav>nav</nav>

http://jsfiddle.net/v50wwuw6/


1
不要再使用那些扭曲的逻辑了,你可以使用http://apps.eky.hk/css-triangle-generator/并将其附加到导航栏上。这更简单。 - João Vilaça
1个回答

13

使用带有 vw 单位的边框三角形技术: http://jsfiddle.net/hamop5ca/

30px 是箭头高度。

nav {
    position: relative;
    height: 50px;
    width:100%;
    background: gray;
}
nav:before {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  border-top: 30px solid red;
  border-left: 50vw solid transparent;
  border-right: 50vw solid transparent;
}
<nav>nav</nav>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接