【发布时间】:2013-12-24 21:11:25
【问题描述】:
我正在开发一个 WordPress 主题,并为 CSS 使用 LESS。 LESS 有许多动态解决方案,我发现它们在我的整个项目中很有帮助。我正在使用 LESS,但不是直接使用,我正在将 LESS 文件编译为 CSS 并将它们(.css)排入站点<head>。为了编译 LESS 文件,我使用的是 WinLESS (v. 1.8.1),它是一个出色且快速的文件。它具有内置的缩小技术,因此只需单击一下,我就可以(1) 编译 LESS 文件,并立即(2) 缩小它们。为了确保网站速度,我更喜欢 CSS 的缩小版本。但是……
但是,我们都知道 WordPress 主题 CSS 文件在标题处包含主题信息,例如:
/*
Theme Name: my theme
Theme URI: http://www.example.com/
Description: my theme description
Author: you
Author URI: http://www.example-author.com/
Version: 1.0
*/
如果我命令 WinLESS 将我的 style.less 编译为 Compile && Minify,那么我会得到一个缩小版本的 style.css,但是你知道缩小的 CSS 不包含任何 CSS cmets,所以主题信息只是被过程。而在wp-admin/themes.php 页面中,主题变为无标题(未命名)。
然后我尝试了一些不同的东西。我将样式表分为两个文件:
-
style.less- 仅包含主题所需的标题信息,没有其他内容 -
my-site.less- 包含所有网站 CSS
我将style.css 编译为非缩小,但my-site.css 编译为缩小。在style.less 中,我包含或获取my-site.css 中的所有CSS:
@import (less) 'css/my-site.css`;
这样,缩小的my-site.css 完全导入到style.css 文件中(那里会有no @import CSS 参数)。它们将像常规 CSS 代码一样逐行包含,并包含 (less) [details]。
问题...
这实际上就是问题所在。虽然我正在导入一个缩小的 CSS 文件,但 LESS @import (less) 正在逐行处理声明。
我的my-site.css 是这样的:
*{margin:0;padding:0}html{margin:0;padding:0}
当我打开 style.css 文件时,它就像:
* {
margin: 0;
padding: 0;
}
html {
margin: 0;
padding: 0;
}
导入完全消除了缩小。
是否有任何其他解决方案可以将 CSS 代码 @import 到正在缩小的样式表中?
PS:我完全了解 WP-Minify 插件(一个不错的插件),我实际上并不想直接使用它.
【问题讨论】:
-
它使用 yui-compress 吗?尝试使用
/*!而不仅仅是/*开始 WordPress 评论。 (yui minifier 将其识别为您特别想要保留的评论...)我希望保留评论,但仍允许 WordPress 识别它。 -
/*!也被 LESS 内置的缩小器识别,所以它很可能会成功。 -
@MattGibson:靶心!这就是它应该的样子。非常感谢。省去了很多麻烦。如果您将此作为问题的答案,我很乐意将其标记为答案。 :) 衷心感谢您。