我正在使用Font Awesome 4.0.0,并希望在LESS中执行以下操作:
.btn-github {
.btn;
.btn-primary;
margin-left: 3em;
i {
.@{fa-css-prefix};
.@{fa-css-prefix}-github;
.@{fa-css-prefix}-lg;
margin-right: 1em;
}
}
不会与错误一起编译:
ParseError: Unrecognised input in - on line ...
有可能做到这一点吗?当然,这对我来说将是一个美丽的按钮。
您尝试执行的操作至少有2个问题( 对于LESS > = 1.6,请参见update bellow):
1)不幸的是,无法使用选择器插值来调用mixin。
通过选择器插值,LESS期望构造为以下格式:
.@{selector-string} { property:value; }
(插值选择器还可以在插值之前或之后具有一些静态字符串)
所以
.@{selector-string};
是 无法识别的 由LESS编译器。
2)具有插值选择器的规则集将直接打印到CSS输出,并且不存在可以在LESS运行中重用的mixin
例如:
@foo: test;
.@{foo} {
length: 20px;
}
.bar {
.test;
}
将返回:
Name error: .test is undefined
.bar { .test;}
在此处查看更多信息:少CSS:将生成的。@{name}类重用为mixin
对于您的问题,可能的解决方案是将字体真棒规则重新定义为某种可重用的混合(不使用插值)。像这样:
@fa-var-github: "\f09b";
.fa-mixin() {
display: inline-block;
font-family: FontAwesome;
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.fa-mixin-lg() {
font-size: (4em / 3);
line-height: (3em / 4);
vertical-align: -15%;
}
.fa-mixin-icon(@icon){
@var: "fa-var-@{icon}";
&:before { content: @@var; }
}
i {
.fa-mixin;
.fa-mixin-lg;
.fa-mixin-icon(github);
}
如果您确实不需要变量,而只想包含规则,则最好的方法是 导入 FontAwesome 的已编译CSS
@import (less) 'font-awesome.css';
然后您可以使用LESS mixins之类的CSS规则,也可以根据需要扩展其选择器,它应该可以完美地工作。
从 LESS > =
1.6起
,可以将带有插值选择器的规则作为mixins访问…因此,上面的#2限制表不再适用(但是您仍然不能通过插值动态调用mixin)。因此,您可以font-awesome.less
像这样从导入的文件中简单地调用LESS mixins和变量:
i {
.fa;
.fa-lg;
&:before{
content: @fa-var-github;
}
}
问题 你想创建类变量和实例变量(属性)。 解决方案 类变量 class Zoo @MAX_ANIMALS: 50 MAX_ZOOKEEPERS: 3 helpfulInfo: => "Zoos may contain a maximum of #{@constructor.MAX_ANIMALS} animals and #{@MAX_ZOOKEEPERS} zoo keep
怎么确定一个变量是什么类型的呢?大家可以用 type() 函数来检查。Lua 支持的类型有以下几种: Nil 空值 所有没有使用过的变量,都是 nil。nil 既是值,又是类型。 Boolean 布尔值 true 或 false Number 数值 在 Lua 里,数值相当于 C 语言的 double String 字符串 如果你愿意的话,字符串是可以包含 '\0' 字符的 Table 关系表类型
变量只不过是我们的程序可以操作的存储区域的名称。 Pascal中的每个变量都有一个特定的类型,它决定了变量内存的大小和布局; 可存储在该内存中的值范围; 以及可以应用于变量的操作集。 变量的名称可以由字母,数字和下划线字符组成。 它必须以字母或下划线开头。 Pascal not case-sensitive ,因此大写和小写字母在这里意味着相同。 根据前一章中解释的基本类型,将有以下基本变量类型
变量只是用于存储值的保留内存位置。 这意味着当您创建变量时,您在内存中保留了一些空间。 根据变量的数据类型,解释器分配内存并决定可以存储在保留内存中的内容。 因此,通过为变量分配不同的数据类型,可以在这些变量中存储整数,小数或字符。 将值分配给变量 Python变量不需要显式声明来保留内存空间。 为变量赋值时,声明会自动发生。 等号(=)用于为变量赋值。 =运算符左边的操作数是变量的名称,=运算符
变量为我们提供了程序可以操作的命名存储。 Java中的每个变量都有一个特定的类型,它决定了变量内存的大小和布局; 可存储在该内存中的值范围; 以及可以应用于变量的操作集。 必须先声明所有变量才能使用它们。 以下是变量声明的基本形式 - data type variable [ = value][, variable [ = value] ...] ; 这里data type是Java的数据类型之
问题内容: 我在下面的示例中进行了尝试,并需要进行澄清。在这两种情况下,我都可以在测试函数中访问类变量和实例。 因此,假设是否必须定义一个需要在所有函数中使用的文字,这将是定义..self变量或class变量的更好方法? code.py 问题答案: 类变量对于所有实例使用的“常量”非常有用(从技术上讲,所有方法都是如此)。您可以使用模块全局变量,但是使用类变量会使它与类更明确地关联。 您实际上也经