我不知道如何为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>
答案 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>