【问题标题】:CSS: Placing an arrow / triangle with border on the top of my drop down menuCSS:在我的下拉菜单顶部放置一个带边框的箭头/三角形
【发布时间】:2015-04-22 16:36:35
【问题描述】:

刚刚启动了这个网站 (http://dovidoved.org/),客户想要每个下拉菜单顶部的三角形/箭头之一。问题是菜单周围有一个边框,并且箭头应该与背景和边框相结合。不知道该怎么做。有什么建议么?我必须使用图像吗?这是我的 CSS:

 /* creates triangle */
 .main-navigation ul ul:before {
     border-bottom: 10px solid #fae0bb;
     border-left: 10px solid transparent;
     border-right: 10px solid transparent;
     content: "";
     height: 0;
     position: absolute;
     right: 0;
     top: -10px;
     width: 0;
 }

 .main-navigation ul ul {
     background: #fae0bb;
     border: 8px solid #fffefe;
     box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
     float: left;
     position: absolute;
     margin: 0;
     top: 2.8em;
     left: -999em;
     width: 200px;
     z-index: 99999;
}

【问题讨论】:

  • 向 .nav-menu a:after 添加 css 三角形有什么问题?
  • 您可以使用图像作为每个链接的背景,位于右侧,也可以使用图标字体(更通用和灵活,让您可以毫无问题地更改大小和颜色。) .在第二种情况下,我建议你Icomoon
  • 可以使用:after伪元素添加边框jsfiddle.net/ond3g1jp
  • 你能解释一下你需要什么吗,我不明白“应该与背景和边框网格”。图片会很棒。
  • 你可以使用这个,fortawesome.github.io/Font-Awesome/icon/caret-down,这是图标字体,所以你可以像文本一样设置它们。

标签: css css-shapes


【解决方案1】:

您可以使用:before:afterpseudo 元素来创建两个三角形:

.main-navigation ul ul:before {
    content:"";
    position: absolute;
    right: 11px;
    top: -10px;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 10px 10px 10px;
    border-color: transparent transparent #fae0bb transparent;
    z-index:9999;
}
.main-navigation ul ul:after {
    content:"";
    position: absolute;
    right: 4px;
    top: -22px;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 17px 17px 17px;
    border-color: transparent transparent #ffffff transparent;
    z-index:9998;
}

您只需为两者设置正确的right 值,以使它们符合您的需要。

Live exemple

【讨论】:

  • 太棒了!谢谢你的例子。效果真的很好。
【解决方案2】:
.main-navigation a:after {
    content: "";
    width: 0; 
    height: 0; 
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-top: 8px solid #f00;
    position: absolute;
    top: -2px;
    right: -20px;
}

调整li 的内边距使三角形适合。

【讨论】:

    猜你喜欢
    • 2015-05-09
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-10
    • 2014-06-21
    • 1970-01-01
    相关资源
    最近更新 更多