ben*_*-we 0 html css css3 flexbox
如果我在导航栏中对齐我的图标display: flex
,则会在我的图标下方显示下划线.如果我禁用它,它们会消失,但我的图标没有正确对齐.见下图.
我怎么能摆脱他们?
这是代码:
.nav {
width: 60px;
height: 100vh;
top: 100px;
min-height: 100vh;
background-color: #cccccc;
position: fixed;
z-index: 999;
opacity: .4;
border-right: 1px solid black;
display: flex;
flex-direction: column;
}
.nav a {
width: 100%;
height: 60px;
display: flex;
justify-content: center;
align-items: center;
border: none;
}
Run Code Online (Sandbox Code Playgroud)
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<div class="nav">
<a href=""><i class="material-icons">home</i></a>
<a href=""><i class="material-icons">shopping_basket</i></a>
<a href=""><i class="material-icons">business</i></a>
<a href=""><i class="material-icons">mail</i></a>
<a href=""><i class="material-icons">card_giftcard</i></a>
</div>
Run Code Online (Sandbox Code Playgroud)
<a>
标签text-decoration:underline
默认有,这就是为什么这条线将在下面.
应用于text-decoration: none
您的锚标签.nav a
堆栈代码段
.nav {
width: 60px;
height: 100vh;
top: 100px;
min-height: 100vh;
background-color: #cccccc;
position: fixed;
z-index: 999;
opacity: .4;
border-right: 1px solid black;
display: flex;
flex-direction: column;
}
.nav a {
width: 100%;
height: 60px;
display: flex;
justify-content: center;
align-items: center;
border: none;
text-decoration: none;
}
Run Code Online (Sandbox Code Playgroud)
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<div class="nav">
<a href=""><i class="material-icons">home</i></a>
<a href=""><i class="material-icons">shopping_basket</i></a>
<a href=""><i class="material-icons">business</i></a>
<a href=""><i class="material-icons">mail</i></a>
<a href=""><i class="material-icons">card_giftcard</i></a>
</div>
Run Code Online (Sandbox Code Playgroud)
添加之前没有下划线的原因display: flex
是因为<i>
设置为display: inline-block
,因此下划线不会呈现。
display: flex
添加后,display: inline-block
将<i>
不再应用,因为 Flex 项目是块状的元素。
添加text-decoration: none
到a
将解决此问题
由于a
具有固定的高度,另一种方法是放下display: flex
并使用text-align
/line-height
使图标居中。
.nav {\r\n width: 60px;\r\n height: 100vh;\r\n top: 100px;\r\n min-height: 100vh;\r\n background-color: #cccccc;\r\n position: fixed;\r\n z-index: 999;\r\n opacity: .4;\r\n border-right: 1px solid black;\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n.nav a {\r\n width: 100%;\r\n height: 60px;\r\n border: none;\r\n text-align: center;\r\n \r\n}\r\n\r\n.nav a i {\r\n line-height: 60px;\r\n}
Run Code Online (Sandbox Code Playgroud)\r\n<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">\r\n<div class="nav">\r\n <a href=""><i class="material-icons">home</i></a>\r\n <a href=""><i class="material-icons">shopping_basket</i></a>\r\n <a href=""><i class="material-icons">business</i></a>\r\n <a href=""><i class="material-icons">mail</i></a>\r\n <a href=""><i class="material-icons">card_giftcard</i></a>\r\n</div>
Run Code Online (Sandbox Code Playgroud)\r\n