我是CSS的新手,我知道我遇到的问题是什么,但我无法弄清楚如何阻止它。
我有一个id
footer
的元素,另一个元素在socialmedia
的类中。我正在使用精灵来处理媒体图标。我遇到的问题是#footer ul li
的填充(padding: 9px 0px 9px 13px
)由.socialmedia
继承。
我尝试添加.socialmedia ul li {margin: 0px; padding: 0px;}
来阻止它,我还添加了!Important
但是填充似乎仍然可以通过。
我想从社交媒体图标中删除13px的左侧填充,因此它们不是那么间隔。有人可以告诉我我做错了吗?
如果你想在这里看到它,我创建了一个JFiddle:http://jsfiddle.net/2Nv59/3/
HTML:
<div id="footer">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Company Overview</a></li>
<li><a href="#">Our Services</a></li>
<li><a href="#">Registration</a></li>
<li><a href="#">News & Blog</a></li>
<li><a href="#">Links</a></li>
<li><a href="#">Contact us</a></li>
</ul>
<div class="FooterAddress"><strong>ABC Comp</strong><br>555 My Street.<br>Boonton, CA 07005<br>1 (800) 555-1111<br><br>
<div class="socialmedia">
<ul>
<li><a href="http://facebook.com" title="Be our friend" target="_blank" class="facebook"></a></li>
<li><a href="http://www.linkedin.com" title="Let's connect" target="_blank" class="linked"></a></li>
<li><a href="http://www.twitter.com" title="Follow us!" target="_blank" class="twitter"></a></li>
</ul>
</div>
</div>
</div>
CSS:
/* Footer */
#footer {background-color: #3B3014; height: 150px; margin-top: 10px;}
#footer ul {padding: 0px; margin: 0px;}
#footer ul li{display: inline-block; padding: 9px 0px 9px 13px;}
#footer ul li a {text-decoration: none; color: #fff; font-weight: bold;font-size: 11px;}
#footer ul li a:hover {text-decoration: none; color: #FF6600; font-weight: bold;}
.FooterAddress {float: right; color: #FFC50B; font-size: 11px; margin-right: 13px; margin-top:-20px; text-align:right;}
.developedby {float: left; color: #fff; font-size: 11px; margin-left: 13px; margin-top: 94px;}
.developedby a {color: #FFC50B; text-decoration:none;}
.developedby a:hover {color: #CCC;cursor:hand;}
/* Soecial Media Sprites */
.nopadding {padding: 0px;float: right; color: #fff; background: #000;}
.socialmedia ul li {margin: 0px; padding: 0px;}
.socialmedia ul li a {display: block; width: 26px; height: 27px; background: url(../images/socialmedia_sprite_sm.png) no-repeat; padding: 0px;}
.socialmedia ul li:last-child {margin-right: 0;}
.socialmedia a.facebook {background-position: -27px -27px;}
.socialmedia a.facebook:hover {background-position: -27px 0;}
.socialmedia a.linked {background-position: -52px -27px;}
.socialmedia a.linked:hover {background-position: -52px 0;}
.socialmedia a.twitter {background-position: left bottom;}
.socialmedia a.twitter:hover {background-position: left top;}
答案 0 :(得分:5)
更具体。
变化:
.socialmedia ul li {margin: 0px; padding: 0px;}
到
#footer .socialmedia ul li {margin: 0px; padding: 0px;}
<强> jsFiddle example 强>
你有正确的想法,但#footer ul li
规则更具体,所以它的CSS覆盖了你的其他规则。您可以在https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity
答案 1 :(得分:3)
尝试添加#footer .socialmedia ul li {margin: 0px; padding: 0px;}
要覆盖子元素中的css规则,你的css选择器应该比你试图覆盖的那个更具体。
答案 2 :(得分:1)
因为ID选择器具有比任何其他CSS规则更高的特异性,所以避免使用它更有帮助,至少在广泛适用的选择器中如#footer ul li
。
虽然已经提供的答案已经解决了您的问题,但最好将原始选择器更改为更具体,因为您似乎不希望将其任何样式应用于社交媒体<li>
。例如:
<div id="footer">
<ul class="navigation">
<li><a href="#">Home</a></li>
....
#footer .navigation li{display: inline-block; padding: 9px 0px 9px 13px;}