html - 忽略 CSS 填充
问题描述
我有一个导航栏,并希望将每个选项卡上的默认填充设置为 14 像素宽,但是对于我将用作徽标的第一个选项卡,我希望有一个 18 像素宽的填充。但是,当我尝试实现这一点时,它不起作用,并继续使用 14px 默认值。
#nav {
text-decoration: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: black;
}
#nav>li {
float: left;
list-style-type: none;
}
#nav>li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
#logo {
background-color: green;
padding: 18px 16px;
}
<ul id="nav">
<li><a href="/home" id="logo">Logo</a></li>
<li><a href="/opt1">Opt1</a></li>
<li><a href="/opt2">Opt2</a></li>
<li><a href="/opt3">Opt3</a></li>
</ul>
解决方案
这是因为 CSS 的特殊性:#nav > li a
比#logo
. 这就是@Bouh 的回答有效的原因。我会阅读它。
这是一个特异性计算器:https ://specificity.keegan.st/
或者,您可以通过避免过度使用 id 和子选择器来避免特异性问题,例如:
.navlist {
text-decoration: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: black;
}
.navlist-item {
float: left;
list-style-type: none;
}
.navlink {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
.logo {
background-color: green;
padding: 18px 16px;
}
<ul class="navlist" id="nav">
<li class="navlist-item"><a class="navlink logo" href="/home" id="logo">Logo</a></li>
<li class="navlist-item"><a class="navlink" href="/opt1">Opt1</a></li>
<li class="navlist-item"><a class="navlink" href="/opt2">Opt2</a></li>
<li class="navlist-item"><a class="navlink" href="/opt3">Opt3</a></li>
</ul>
推荐阅读
- php - 使用 Laravel 5.1 跨多个 Eloquent 模型进行事务处理
- swift - VStack中大文本和TextField之间的SwiftUI神秘间距
- javascript - AWS Amplify with Vue 和 GraphQL:身份验证后的陈旧数据
- django - 是否可以检索在 Django .delete() 中删除的对象的“id”字段?
- python - 是否有任何 API 用于使用 python 发送 JIRA 电子邮件通知
- python - 如何删除列中所有值的方括号?
- php - PHP如何执行一次操作然后自动重新加载页面
- asp.net - 浏览 Calandar WebForm ASPX 控件时获取月份和年份
- c# - 如何将字符串形式的 UTF-8 转换为字符串
- spring - 为什么spring集成中默认的“errorChannel”是“PublishSubscribeChannel”?