在這個特殊的例子中,聽起來好像你在blockquote中添加了一個填充(如果你還有背景顏色或邊框,它看起來會更好),並且由於默認情況下blockquote有一個margin-bottom,底部和底部邊距加在一起。處理這個問題
我目前最喜歡的方式是像這樣:
使用薩斯:
p, blockquote, .other-margined-elements {
margin: 1rem 0;
&:first-child {
margin-top: 0;
}
&:last-child {
margin-bottom: 0;
}
}
生成CSS:
p, blockquote, .other-margined-elements {
margin: 1em 0;
}
p:first-child, blockquote:first-child, .other-margined-elements:first-child {
margin-top: 0;
}
p:last-child, blockquote:last-child, .other-margined-elements:last-child {
margin-bottom: 0;
}
使用這種方法,它只是一個事確定要添加到列表中的元素。我當前的列表是這樣的:h1,h2,h3,h4,h5,h6,p,ul,ol,dl,table,blockquote,div,section,article,aside,fieldset
還有其他方法可以做到這一點如果你覺得上面的代碼是一個有點過分:
blockquote > :first-child {
margin-top: 0;
}
blockquote > :last-child {
margin-bottom: 0;
}
得益於:first-child
和:last-child
僞類,沒有必要寫出來的每一個組合。
感謝您的提示。我覺得你並沒有完全明白我的問題。我所問的是,主題開發人員是否傾向於每一種排列組合和可能的組合,我不確定你的技術如何涵蓋這一點。第一個/最後一個孩子的例子,雖然是一個偉大的技術,但仍然意味着你必須弄清楚這將是正確的適用於(除非你做*>:最後孩子),我可能會避免...所以就我所見,問題依然存在。再次感謝。 – byronyasgur
你的問題太模糊了。對於第一個孩子/最後一個孩子,只有在*你正在應用填充或邊距*時(即,因爲你是修改屬性的元素,你已經知道需要哪些元素),才需要清除頂部/底部邊距。 – cimmanon
我想我已經開始看到你在說什麼了,謝謝,但是我認爲我的問題根本不是模糊的......「......爲每一個排列和組合做主題開發者風格,或者甚至有可能做到這一點?」我不是在問如何但是否......我看不出含糊不清。 – byronyasgur