2015-06-13 21 views
0

我在我的页面上有一个侧边栏,我尝试应用一些自定义CSS,但由于某种原因,即使它正确级联,我的裁决也不会覆盖旧裁剪。任何想法为什么发生这种情况?css裁决在使用id选择器时未覆盖

我使用normalize.css,但我不认为这是问题所在。

我想更改#author-name#author-bio的边距。

感谢您的帮助。

/************************************************ 
 
SEARCHBOX 
 
************************************************/ 
 
#articles-sidebar { 
 
\t margin: 0.5em 0; 
 
\t padding: 1em; 
 
} 
 
#articles-sidebar h2, #articles-sidebar p { 
 
\t margin: 0; 
 
\t padding: 0; 
 
} 
 
#articles-sidebar input { 
 
\t box-sizing: border-box; 
 
\t padding: 0.5em; 
 
\t margin: 0.5em 0; 
 
} 
 
#articles-sidebar input[type="submit"] { 
 
\t border: none; 
 
\t color: #fff; 
 
\t background-color: #26A65B; 
 
} 
 

 

 

 
/************************************************ 
 
ARTICLES 
 
************************************************/ 
 
.article-box { 
 
\t padding: 0.5em; 
 
\t margin-bottom: 0.5em; 
 
} 
 
.free { 
 
\t background-color: #e3f9ec; 
 
} 
 
.members { 
 
\t background-color: #f5e8f4; 
 
} 
 
.article-categories { 
 
\t list-style: none; 
 
\t margin: 0.5em 0 0 0; 
 
\t padding: 0; 
 
} 
 
.article-category { 
 
\t margin-right: 0.5em; 
 
\t padding: 0.2em; 
 
\t display:inline-block; 
 
\t /* TODO FIGURE OUT CATEGORY BACKGROUND COLOR */ 
 
\t background-color: #fff; 
 
\t font-weight: bold; 
 
} 
 
.article-box h1 { 
 
\t margin: 0.5em 0; 
 
\t padding: 0; 
 
} 
 
.article-box h3 { 
 
\t margin: 0; 
 
\t padding: 0; 
 
} 
 
.article-box p { 
 
\t margin: 0.5em 0; 
 
\t padding: 0; 
 
} 
 
.article-box a:link, .article-box a:visited { 
 
\t text-decoration: none; 
 
\t color: #26A65B; 
 
} 
 
.article-box a:hover { 
 
\t color: #913D88; 
 
} 
 

 

 

 
/************************************************ 
 
SINGLE ARTICLE PAGE 
 
************************************************/ 
 
#articles-feed button { 
 
\t background-color: #913D88; 
 
    border: none; 
 
    color: #fff; 
 
    padding: 1em; 
 
    display: inline-block; 
 
    margin: 1em 0; \t 
 
} 
 

 

 

 
/************************************************ 
 
SINGLE ARTICLE AUTOR 
 
************************************************/ 
 
#author-img { 
 
\t height: 100px; 
 
\t border-radius: 150px; 
 
\t border: 1px solid black; 
 
\t display: block; 
 
\t margin: 1em 0; 
 
} 
 
#author-name { 
 
\t margin: 1em 0; 
 
} 
 

 
/************************************************ 
 
TABLET 
 
************************************************/ 
 
@media screen and (min-width: 768px) { 
 

 
} 
 

 

 

 
/************************************************ 
 
LAPTOP 
 
************************************************/ 
 
@media screen and (min-width: 992px) { 
 
\t /* LAYOUT */ 
 
\t #articles-sidebar, #articles-feed { 
 
\t \t display: inline-block; 
 
\t } 
 
\t #articles-sidebar { 
 
\t \t width: 25%; 
 
\t \t float: right; 
 
\t } 
 
\t #articles-feed { 
 
\t \t width: 70%; 
 
\t \t float: left; 
 
\t } 
 
} 
 

 

 

 
/************************************************ 
 
WIDESCREEN 
 
************************************************/ 
 
@media screen and (min-width: 1200px) { 
 

 
}
\t <div id="articles-sidebar"> 
 
\t \t <h2>Search articles archive:</h2> 
 
\t \t <form id="searchbox" method="post"> 
 
\t \t \t <input name="searchword" type="text" placeholder="author, title, keyword..."> 
 
\t \t \t <input type="submit" value="Search"> 
 
\t \t </form> 
 
\t \t <div id="author"> 
 
\t \t \t <img id="author-img" src="img/authors/Yannick.jpeg"> 
 
\t \t \t <h2 id="author-name">Yannick Šušteršič</h2> 
 
\t \t \t <p id="author-bio">blablablablablabla bla bla bal.</p> 
 
\t \t </div> 
 
\t </div> 
 
\t <div id="articles-feed"> 
 
\t </div> 
 
\t <script src="http://code.jquery.com/jquery-1.8.3.js"></script> 
 
\t <script src="js/articles.js"></script>

回答

1

预期没有施加保证金的原因是因为这个CSS:

#articles-sidebar h2, #articles-sidebar p { 
    margin: 0; 
    padding: 0; 
} 

优先于此CSS:

#author-name { 
    margin: 1em 0; 
} 

,因为它具有较高的特异性。看看这个article概述CSS的优先顺序。

为了改变#author-name的保证金,你可能需要使用这种更具体的方法

#articles-sidebar #author-name { 
    margin: 1em 0; 
} 
+2

我想补充到:如果你组织你的CSS正确,这样你永远不会做出过度伸展规则,不会遇到这些问题。杰克逊指出的第一条规则是,“所有h2和p都是#article-sidebar的后代应该没有空白,没有填充。”它混合了通用标签(h2,p)和语义特定标签(#articles-sidebar)。在一个地方定义所有通用CSS(h1-h6,p,ul,ol)是一种更好的做法 - 比如UI工具包,然后为特定元素添加自定义样式(#author-name,#whatever-else)在它的顶部分开。 – light

0

尝试使用“!重要的”在你正在编写规则的结束,虽然它不是一个鼓励的技术,但它的作品,或尝试从超父母筑巢它如

body #articles-sidebar #author #author-name{ 
    margin: "write your value here"; 
} 
+1

的滥用!重要的是,你可以在CSS中做的最糟糕的事情之一,尤其是当问题显然可以通过更好地理解css特异性来解决。 – light

+0

我知道,这就是为什么我告诉你嵌套更好,好像你已经找到解决问题的方法,良好的去队友:) – Siddharth