我目前正在项目中使用Twitter Bootstrap,包括LESS文件,并使用我们编写的一些额外的LESS代码进行编译.
最新版本意味着我们需要覆盖一些Bootstrap LESS变量.这里的一个选择是维护我们在每个版本上修补的Bootstrap的修改副本.
但我注意到,@import通过在import语句之后重新声明变量,可以覆盖LESS文件中定义的变量.
例如:
@import "twitter-bootstrap/bootstrap.less";
// Restore base font size to pre 2.1.1 defaults
@baseFontSize: 13px;
// Add some custom LESS code here
Run Code Online (Sandbox Code Playgroud)
这是不好的做法吗?它是LESS编译器工作方式的工件,还是它的预期部分?我找不到这方面的很多信息,虽然我确实找到了以下两个参考:
由于Less编译器中存在错误,您可以通过在最初声明变量后更改变量来覆盖变量的"常量"值.
http://rubysource.com/how-to-customize-twitter-bootstrap%E2%80%99s-design-in-a-rails-app
和
通过覆盖这三个变量来自定义列和装订线(在声明grid.less导入之后).
LESS网站本身说变量是'常数':
请注意,LESS中的变量实际上是"常量",因为它们只能定义一次.
但后来我看到其他网站使用这种方法..它肯定比维护供应商分支更容易,并且似乎与less.js一起工作正常.
会不会有任何关于这是否是一件坏事的想法!
我在JavaScript中编写一个对象层次结构,当我在对象中隐藏该方法时,我想在对象的父对象上调用一个方法.
例如:
var Base = function Base(msg) {
this.msg = msg;
}
Base.prototype.log = function(){
console.log("base log: " + this.msg);
}
var Sub = function Sub(msg) {
Base.call(this, msg);
}
Sub.prototype = Object.create(Base.prototype);
Sub.prototype.log = function() {
console.log("sub log");
this.__proto__.__proto__.log.call(this); // This works but __proto__
Object.getPrototypeOf(Object.getPrototypeOf(this)).log.call(this); // This works but is verbose
super.log(); // This doesn't work
}
var sub = new Sub('hi');
sub.log();
Run Code Online (Sandbox Code Playgroud)
看看Sub.prototype.log函数底部的三行- 有没有更好的方法来做我想做的事情?
第二行是我能够提出的最好的,但是非常冗长!
twitter.com有一个很好的缩放背景图像的实现.
这是如何实现的?它是否使用我自己可以使用的库/工具?
让我看到这一点的原因是我正在寻找一种在旧版浏览器中运行良好的解决方案,并且很容易实现轻量级要求.
Java 7 keytool命令的"别名"中有哪些字符有效?
我找到了这个页面 - http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/keytool.html - 但它似乎没有详细解释什么是有效的别名.