【问题标题】:Responsive slanted border响应式倾斜边框
【发布时间】:2016-05-10 17:10:20
【问题描述】:

我创建了一个使用边框的倾斜样式三角形,用于导航项,但是用于定义倾斜长度的边框是固定的,它需要根据列表项内的内容进行调整。我还想为每个列表项使用相同的 css 类。

这是我想要达到的最佳解决方案,还是有另一种具有相同结果的方法?

我也对 JS 解决方案持开放态度。

到目前为止,我使用了以下 CSS:

li {
    float: left;
    position: relative;
    height: 20px;
    background: #a1a8ad;
    padding: 5px 12px;
    margin-right: 10px;
    list-style: none;
}

li:before {
    content: "";
    position: absolute;
    top: -3px;
    width: 0;
    height: 1px;
    left: 0px;
    border-right: 63px solid #a1a8ad; /* razorblade color */
    border-top: 2px solid rgba(0, 0, 0, 0); /* transparent */
}

JSFiddle here

【问题讨论】:

  • 你想要你的输出你可以发布一些你想要的设计图片
  • 没有响应式边框之类的东西,除非你使用 JS。
  • @sanojlawrence 我想要实现的输出在这个JSFiddle,对不起,我应该让它更清楚一点

标签: css responsive-design css-shapes shapes


【解决方案1】:

您不能使用百分比作为边框宽度,但您可以使用旋转的伪元素来制作倾斜的上边框:

li {
  float: left;
  position: relative;
  margin-right: 10px;
  list-style: none;
  overflow: hidden;
  padding-top: 8px;
}
li a {
  display: block;
  background: #a1a8ad;
  padding: 5px 12px;
  color: #000;
  height: 20px;
  text-decoration: none;
}
li:before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 150%;
  height: 30px;
  background: #a1a8ad; /* razorblade color */
  -webkit-transform-origin: 100% 0;
  -ms-transform-origin: 100% 0;
  transform-origin: 100% 0;
  -webkit-transform: rotate(-2deg);
  -ms-transform: rotate(-2deg);
  transform: rotate(-2deg);
  z-index: -1;
}
<nav>
  <ul>
    <li><a href="#">Home</a>
    </li>
    <li><a href="#">About Us</a>
    </li>
  </ul>
</nav>

【讨论】:

  • 伪效果是必经之路。
  • 这是完美的,谢谢!一旦我再获得 7 个代表,我就会投票 :)
猜你喜欢
  • 2022-01-19
  • 1970-01-01
  • 1970-01-01
  • 2020-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多