最好的做法是在外部 CSS 文件中包含所有样式,以利用缓存、标记和设计的分离、更好的概览等。
但是,我通常会遇到这样的问题,即元素应该看起来相同,即具有相同的类,但位置需要不同,例如,由于成分差异需要不同的边距或填充。
我想到了三个选择:
选项 1:从位置样式(边距/填充)中拆分外观样式,将它们放在单独的类中并根据需要组合它们。
.myClass { ...; }
.myClass.top { margin-top: 20px; }
.myClass.inside { margin: 10px 0px; }
.myClass.bottom { margin-bottom: 20px; }
选项 2:复制类,相应地重命名它们并将每个差异保留在自己的类中。
.myClassTop { ...; margin-top: 20px; }
.myClass { ...; margin: 10px 0px; }
.myClassBottom { ...; margin-bottom: 20px; }
选项 3:使用内联样式声明不同的边距/填充。
<div class="myClass" style="margin-top: 20px;">
<div class="myClass">
<div class="myClass" style="margin-bottom: 20px;">
有
.myClass { ...; margin: 10px 0px; }
我的常识告诉我根据父/子结构使用选项 1 和级联差异。但这通常会导致相当混乱,尤其是对于其他阅读 CSS 的开发人员而言。所以我尝试了选项 3(只有几个外部边距/填充),这似乎工作得很好。
我仍然以某种奇怪的方式为此感到难过。有很多人告诉不要使用内联样式。通常我会说“最好的”,但最近我意识到内联边距/填充可能会影响网站的渲染过程,导致“跳舞块”。我不确定这种效果是否真的是由样式的处理顺序引起的,或者是其他一些令人讨厌的事情,我猜。
有什么建议吗?