如何在css中创建一个顶部和底部颜色不同,底部有阴影的边框?

时间:2017-05-30 04:10:39

标签: css border

如何在附加的图像中围绕此导航菜单(黄色渐变div)实现边框效果?

Navigation bar with border

#cssmenu,
#cssmenu ul,
#cssmenu li,
#cssmenu a {
  border: none;
  line-height: 1;
  margin: 0;
  padding: 0;
  box-sizing: content-box;
}

#cssmenu {
  height: 61px;
  display: block;
  border: 1px solid;
  border-radius: 5px;
  width: auto;
  border-color: #c09a5d;
  margin: 0;
  padding: 0;
}

#cssmenu>ul {
  list-style: inside none;
  margin: 0;
  padding: 0;
}

#cssmenu>ul>li {
  list-style: inside none;
  float: left;
  display: block;
  position: relative;
  margin: 0;
  padding: 0;
}

#cssmenu.align-center>ul {
  text-align: center;
  font-size: 0;
}

#cssmenu.align-center>ul>li {
  float: none;
  display: inline-block;
}

#cssmenu.align-center ul ul {
  text-align: left;
}

#cssmenu.align-center>ul>li:first-child>a {
  border-radius: 0;
}

#cssmenu>ul>li>a {
  outline: none;
  display: block;
  text-align: center;
  text-decoration: none;
  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.4);
  font-size: 20px;
  font-family: Arial, Helvetica, sans-serif;
  color: #ffffff;
  padding: 20px 26px;
}

#cssmenu>ul>li:first-child>a {
  /* border-radius: 5px 0 0 5px; */
}

#cssmenu>ul>li>a:after {
  content: "";
  position: absolute;
  top: -1px;
  bottom: -1px;
  right: -2px;
  z-index: 99;
  border-color: #dcc8a7;
}

#cssmenu ul li.has-sub:hover>a:after {
  top: 0;
  bottom: 0;
}

#cssmenu>ul>li.has-sub>a:before {
  content: "";
  position: absolute;
  top: 28px;
  right: 6px;
  border: 5px solid transparent;
  border-top: 5px solid #ffffff;
}

#cssmenu>ul>li.has-sub:hover>a:before {
  top: 19px;
}

#cssmenu>ul>li.has-sub:hover>a {
  padding-bottom: 14px;
  z-index: 999;
  border-color: #3f3f3f;
}

#cssmenu ul li.has-sub:hover>ul,
#cssmenu ul li.has-sub:hover>div {
  display: block;
}

#cssmenu>ul>li.has-sub>a:hover,
#cssmenu>ul>li.has-sub:hover>a {
  background: #3f3f3f;
  border-color: #3f3f3f;
}

#cssmenu ul li>ul,
#cssmenu ul li>div {
  display: none;
  width: auto;
  position: absolute;
  top: 38px;
  background: #3f3f3f;
  border-radius: 0 0 5px 5px;
  z-index: 999;
  padding: 10px 0;
}

#cssmenu ul li>ul {
  width: 200px;
}

#cssmenu ul ul ul {
  position: absolute;
}

#cssmenu ul ul li:hover>ul {
  left: 100%;
  top: -10px;
  border-radius: 5px;
}

#cssmenu ul li>ul li {
  display: block;
  list-style: inside none;
  position: relative;
  margin: 0;
  padding: 0;
}

#cssmenu ul li>ul li a {
  outline: none;
  display: block;
  position: relative;
  font: 10pt Arial, Helvetica, sans-serif;
  color: #ffffff;
  text-decoration: none;
  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5);
  margin: 0;
  padding: 8px 20px;
}

#cssmenu,
#cssmenu ul ul>li:hover>a,
#cssmenu ul ul li a:hover {
  background: #e6cfa4;
  background: -moz-linear-gradient(top, #e6cfa4 0%, #b4915d 100%);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #e6cfa4), color-stop(100%, #b4915d));
  background: -webkit-linear-gradient(top, #e6cfa4 0%, #b4915d 100%);
  background: -o-linear-gradient(top, #e6cfa4 0%, #b4915d 100%);
  background: -ms-linear-gradient(top, #e6cfa4 0%, #b4915d 100%);
  background: linear-gradient(top, #e6cfa4 0%, #b4915d 100%);
}

#cssmenu>ul>li>a:hover {
  background: #c09a5d;
  color: #ffffff;
}

#cssmenu ul ul a:hover {
  color: #ffffff;
}

#cssmenu>ul>li.has-sub>a:hover:before {
  border-top: 5px solid #ffffff;
}

.menu-container {
  background: transparent;
  z-index: 1;
  overflow: hidden;
  border-radius: 5px;
  border: 1px solid #424137;
}
<div class="row menu-container">
  <div id="cssmenu">
    <ul>
      <li><a href="#" target="_blank"><i class="fa fa-fw fa-home"></i> HOME</a></li>
    </ul>
  </div>
</div>

[以下是我刚刚编写的一些令人惊叹的细节,因为如果没有这些奢侈的话,我不会发帖。哇,这里有这些话很有用。]

到目前为止我所拥有的: https://jsfiddle.net/pyn4u6nz/

3 个答案:

答案 0 :(得分:1)

更新css下面的部分

#cssmenu {
  height: 61px;
  display: block;
  border-radius: 5px;
  width: auto;
  border-top:1px solid #c09a5d; /* Add this property border color as you want */
  border-bottom:1px solid tomato; /* Add this property color as you want */
  box-shadow:0px 10px 20px rgba(0,0,0,0.5); /* Add this property for shadow */
  margin: 0;
  padding: 0;
}

<强> Update fiddle code

#cssmenu,
#cssmenu ul,
#cssmenu li,
#cssmenu a {
  border: none;
  line-height: 1;
  margin: 0;
  padding: 0;
  box-sizing: content-box;
}

#cssmenu {
  height: 61px;
  display: block;
  border-radius: 5px;
  width: auto;
  border-top:1px solid #c09a5d;
  border-bottom:1px solid tomato;
  box-shadow:0px 10px 20px rgba(0,0,0,0.5);
  margin: 0;
  padding: 0;
}
#cssmenu > ul {
  list-style: inside none;
  margin: 0;
  padding: 0;
}
#cssmenu > ul > li {
  list-style: inside none;
  float: left;
  display: block;
  position: relative;
  margin: 0;
  padding: 0;
}
#cssmenu.align-center > ul {
  text-align: center;
  font-size: 0;
}
#cssmenu.align-center > ul > li {
  float: none;
  display: inline-block;
}
#cssmenu.align-center ul ul {
  text-align: left;
}
#cssmenu.align-center > ul > li:first-child > a {
  border-radius: 0;
}
#cssmenu > ul > li > a {
  outline: none;
  display: block;
  text-align: center;
  text-decoration: none;
  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.4);
  font-size: 20px;
  font-family: Arial, Helvetica, sans-serif;
  color: #ffffff;
  padding: 20px 26px;
}
#cssmenu > ul > li:first-child > a {
  /* border-radius: 5px 0 0 5px; */
}
#cssmenu > ul > li > a:after {
  content: "";
  position: absolute;
  top: -1px;
  bottom: -1px;
  right: -2px;
  z-index: 99;
  border-color: #dcc8a7;
}
#cssmenu ul li.has-sub:hover > a:after {
  top: 0;
  bottom: 0;
}
#cssmenu > ul > li.has-sub > a:before {
  content: "";
  position: absolute;
  top: 28px;
  right: 6px;
  border: 5px solid transparent;
  border-top: 5px solid #ffffff;
}
#cssmenu > ul > li.has-sub:hover > a:before {
  top: 19px;
}
#cssmenu > ul > li.has-sub:hover > a {
  padding-bottom: 14px;
  z-index: 999;
  border-color: #3f3f3f;
}
#cssmenu ul li.has-sub:hover > ul,
#cssmenu ul li.has-sub:hover > div {
  display: block;
}
#cssmenu > ul > li.has-sub > a:hover,
#cssmenu > ul > li.has-sub:hover > a {
  background: #3f3f3f;
  border-color: #3f3f3f;
}
#cssmenu ul li > ul,
#cssmenu ul li > div {
  display: none;
  width: auto;
  position: absolute;
  top: 38px;
  background: #3f3f3f;
  border-radius: 0 0 5px 5px;
  z-index: 999;
  padding: 10px 0;
}
#cssmenu ul li > ul {
  width: 200px;
}
#cssmenu ul ul ul {
  position: absolute;
}
#cssmenu ul ul li:hover > ul {
  left: 100%;
  top: -10px;
  border-radius: 5px;
}
#cssmenu ul li > ul li {
  display: block;
  list-style: inside none;
  position: relative;
  margin: 0;
  padding: 0;
}
#cssmenu ul li > ul li a {
  outline: none;
  display: block;
  position: relative;
  font: 10pt Arial, Helvetica, sans-serif;
  color: #ffffff;
  text-decoration: none;
  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5);
  margin: 0;
  padding: 8px 20px;
}
#cssmenu,
#cssmenu ul ul > li:hover > a,
#cssmenu ul ul li a:hover {
  background: #e6cfa4;
  background: -moz-linear-gradient(top,  #e6cfa4 0%, #b4915d 100%);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #e6cfa4), color-stop(100%, #b4915d));
  background: -webkit-linear-gradient(top, #e6cfa4 0%, #b4915d 100%);
  background: -o-linear-gradient(top,  #e6cfa4 0%, #b4915d 100%);
  background: -ms-linear-gradient(top,  #e6cfa4 0%, #b4915d 100%);
  background: linear-gradient(top,  #e6cfa4 0%, #b4915d 100%);
}
#cssmenu > ul > li > a:hover {
  background: #c09a5d;
  color: #ffffff;
}
#cssmenu ul ul a:hover {
  color: #ffffff;
}
#cssmenu > ul > li.has-sub > a:hover:before {
  border-top: 5px solid #ffffff;
}
.menu-container {
    background: transparent;
    z-index: 1;
    border-radius: 5px;
    border: 1px solid #424137;
}
<div class="row menu-container">
  <div id="cssmenu">
  <ul>
     <li><a href="#" target="_blank"><i class="fa fa-fw fa-home"></i> HOME</a></li>
  </ul>
</div>
</div>

答案 1 :(得分:0)

首先,那里有太多重叠的额外CSS。但似乎你已经设置了所有东西,你需要做的就是删除#cssmenu上的“border”和“border-color”,这是添加第二个边框(菜单容器已经有)并且只用顶部和底部:

border-top: 1px solid #fff;
border-bottom: 1px solid yellow;

答案 2 :(得分:0)

您可以将此CSS渐变添加到.cssmenu。你应该稍微清理你的CSS代码。有很多代码不应该存在,或者不同。稍后您可能会面临一些维护问题。

  background: #f9f5eb; /* Old browsers */
  background: -moz-linear-gradient(top, #f9f5eb 0%, #efd9b0 4%, #b88f59 98%, #e8da83 100%); /* FF3.6-15 */
  background: -webkit-linear-gradient(top, #f9f5eb 0%,#efd9b0 4%,#b88f59 98%,#e8da83 100%); /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to bottom, #f9f5eb 0%,#efd9b0 4%,#b88f59 98%,#e8da83 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */