顶部导航栏中的项目高度随徽标高度增加

时间:2019-08-26 20:03:14

标签: html css

我不知道如何为a-link提供div.topbar的完整高度,以使它们在悬停时看起来不错。

我已经提取了此唯一功能并粘贴到了[此处] [1]。不知道是否有更好的方法可以与您分享。

div.topbar {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-box-align: baseline;
  -ms-flex-align: baseline;
  align-items: baseline;
  background-color: white;
  border-bottom: 1px solid black;
}

div.topbar #logo {
  background: repeating-linear-gradient(45deg, yellow, black 10px);
  color: white;
  padding: 15px;
  font-size: 2em;
  text-shadow: 3px 3px 3px purple;
}

div.topbar a {
  color: black;
  text-decoration: none;
  font-weight: bold;
  display: inline-block;
  padding: 15px;
}

div.topbar a:hover {
  background-color: #ccc;
  color: green;
}

div.topbar a a:nth-child(3) {
  border-right: none;
}
<header>
  <div class="topbar">

    <a href="#a" id='logo'>jS.tut</a><a href="#b">More Tuts</a><a href="#c">Home</a>
  </div>
</header>

1 个答案:

答案 0 :(得分:0)

我相信您的问题是无法使文本居中并且项目高度为100%

您需要使flex项目在其上还显示flex和align-items: center。无需在容器上设置对齐项目,因为您希望它可以拉伸。无需设置锚以显示行内块,因为1)它们是flex项目,因为它们是flex容器的子代,2)我们将显示设置为flex。 flex方向默认为行,无需定义

为了便于阅读,我删除了浏览器前缀

div.topbar {
  display: flex;
  background-color: white;
  border-bottom: 1px solid black;
}

div.topbar #logo {
  background: repeating-linear-gradient(45deg, yellow, black 10px);
  color: white;
  padding: 15px;
  font-size: 2em;
  text-shadow: 3px 3px 3px purple;
}

div.topbar a {
  color: black;
  text-decoration: none;
  font-weight: bold;
  padding: 28px 15px 15px 15px;
  display: flex;
  align-items: center;
}

div.topbar a:hover {
  background-color: #ccc;
  color: green;
}

div.topbar a a:nth-child(3) {
  border-right: none;
}
<header>
  <div class="topbar">

    <a href="#a" id='logo'>jS.tut</a><a href="#b">More Tuts</a><a href="#c">Home</a>
  </div>
</header>