主题框架中的每个CSS类都有必要加前缀吗?

时间:2017-03-21 作者:Edward

我正在开发一个主题框架,所有内容的前缀都包括css类,所以“main content”是“framework main content”,“header”是“framework header”,等等。

最近,我查看了著名的框架Genesis,发现css类没有前缀,HTML标记看起来很干净,还有css代码。

毫无疑问,我们应该在PHP代码中为所有内容添加前缀,但对于主题或主题框架的css类来说,这是必要的吗?

2 个回复
最合适的回答,由SO网友:fuxia 整理而成

前缀用于避免冲突。如果您的框架用于构建主题,那么很有可能没有第二个主题框架同时使用。因此没有冲突,因此不需要前缀。

例外是WordPress核心生成的CSS类,例如在注释表单中。如果您将相同的类名用于完全不同的目的,那么您需要一个前缀,或者为您的用例提供更好的类名。

SO网友:Nathan Powell

不不要在所有事情上都加前缀,任何人都会疯狂地处理。您应该做的是添加body_classnamespace 特别主题CSS。

如果我今天写一个主题,我会在function.php 文件为:

add_filter( \'body_class\', function( $classes ){
   $classes[] = \'my-bad-ass-theme\';
   return $classes;
 }); 
然后覆盖我需要的任何内容都是可以访问的,但也很容易阅读和具体。例如,我希望标题的字体与网站的其他部分不同,我会将其放在CSS文件中:

.my-bad-ass-theme{
  font-family: Verdana;
}
.my-bad-ass-theme h1,
.my-bad-ass-theme h2,
.my-bad-ass-theme h3,
.my-bad-ass-theme h4,
.my-bad-ass-theme h5,
.my-bad-ass-theme h6 {
  font-family: Lucida-Grande;
}
除了以下段落,我的原始字体仍然可以有一个很好的样式:

p {
 color: #333;
}
这使得段落可以通过插件或类似的子主题进行样式化,而不会造成阻碍。

不要对namespace, 但也要研究CSS预处理器,如SAAS和LESS(我建议SASS), 利用嵌套和其他功能。

相关推荐

在带有PHP的子主题中包含style.css

在里面https://codex.wordpress.org/Child_Themes 这是包含样式的最佳实践。css在子主题中,必须将下面的代码放入函数中。php的子主题,但将“父样式”替换为可以在函数中找到的父主题的参数。父主题的php。我在我的主题文件中找不到它,那里也没有多少代码。使用@import包含父主题样式表的方法不适用于我,放入文件的css不会在任何浏览器的站点上显示自己。function my_theme_enqueue_styles() { $parent_s