css - 使top-border完全覆盖边框

标签 css

我有一个包含三个链接的导航栏。如果仔细观察,您会发现悬停和事件 anchor 上的深绿色上边框没有覆盖棕色边框。有什么办法让它做到这一点吗?

这是它的样子;

body {
  font-family: 'Roboto', sans-serif;
  font-weight: 300;
  background-color: #C8E6C9;
  margin: 0;
  padding: 0;
}

.container {
  margin: 0 10% 0 10%;
}

header, ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background-color: #4CAF50;
}

h1 {
  margin: 0;
  border-bottom: 1px solid #FFFFFF;
  font-family: 'Roboto', sans-serif;
  font-weight: 400;
}

li {
  float: left;
  margin: 0 0 0 0;
}

h1, li a {
  display: block;
  color: #FFFFFF;
  padding: 14px 16px;
  text-decoration: none;
  border: 2px solid #4CAF50;
  border-top: 6px solid #4CAF50
}


/*link actions*/

li a.active {
  background-color: #795548;
  border: 2px solid #795548;
  border-top: 6px solid #388E3C;
}

li a:hover {
  background-color: #FDD835;
  border: 2px solid #795548;
  border-top: 6px solid #388E3C;
  color: #795548;
}

li a.active:hover {
  background-color: #FDD835;
  border: 2px solid #795548;
  border-top: 6px solid #388E3C;
}

a:first-child {
  text-decoration: none;
  color: #FFFFFF;
}

a:first-child:hover {
  color: #795548;
}
<body>
  <noscript>Please Use JavaScript you loser.</noscript>
  <div class="container">
    <header>
      <nav>
        <h1><a href="index.html">My Website</a></h1>
        <ul>
          <li><a href="index.html" class="active">Home</a></li>
          <li><a href="page2.html">About</a></li>
          <li><a href="page3.html">Getting Started</a></li>
        </ul>
      </nav>
    </header>
  </div>
</body>

最佳答案

这就是边界的交汇方式。我建议使用 box-shadow 而不是顶部边框

注意:

您正在使用 ul 上的 overflow:hidden 清除 float 。这将使该技术停止工作。我建议使用替代的 clearfix 方法。

* {
  box-sizing: border-box;
}
body {
  font-family: 'Roboto', sans-serif;
  font-weight: 300;
  background-color: #C8E6C9;
  margin: 0;
  padding: 0;
}
.container {
  margin: 0 10% 0 10%;
}
header,
ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  float: left;
  width: 100%;
  background-color: #4CAF50;
}
h1 {
  margin: 0;
  border-bottom: 1px solid #FFFFFF;
  font-family: 'Roboto', sans-serif;
  font-weight: 400;
}
li {
  float: left;
  margin: 0 0 0 0;
}
h1,
li a {
  display: block;
  color: #FFFFFF;
  padding: 14px 16px;
  text-decoration: none;
  border: 2px solid #4CAF50;
  border-top: none;
  box-shadow: 0 -6px 0px 0px #4CAF50;
}
/*link actions*/

li a.active {
  background-color: #795548;
  border: 2px solid #795548;
  border-top: none;
  box-shadow: 0 -6px 0 0px #388E3C;
}
li a:hover {
  background-color: #FDD835;
  border: 2px solid #795548;
  border-top: none;
  box-shadow: 0 -6px 0 0px #388E3C;
  color: #795548;
}
li a.active:hover {
  background-color: #FDD835;
  border: 2px solid #795548;
  border-top: none;
  box-shadow: 0 -6px 0px 0px #388E3C;
}
a:first-child {
  text-decoration: none;
  color: #FFFFFF;
}
a:first-child:hover {
  color: #795548;
}
<div class="container">
  <header>
    <nav>
      <h1><a href="index.html">My Website</a></h1>
      <ul>
        <li><a href="index.html" class="active">Home</a>
        </li>
        <li><a href="page2.html">About</a>
        </li>
        <li><a href="page3.html">Getting Started</a>
        </li>
      </ul>
    </nav>
  </header>
</div>

关于css - 使top-border完全覆盖边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38356930/

相关文章:

html - 移动 View 中的文本重叠

html - Foundation 5 带垂直标签的 Accordion

php - 解析 CSS url 时出现 Webpack 错误

css - 较少循环遍历数组会不断附加先前的值

javascript - 使用 JS 获取正确的占位符颜色

javascript - 上传 div 背景 url

javascript - JavaScript 添加框阴影不会生效

jquery - 如何从砖石图片库中删除空白

javascript - 如果服务器上不存在图像 url,请将 url 替换为其他(多次)

css - 如何制作制表符效果,其中 li 底部边框为白色