textmate 一直是我比较喜欢的编辑器,其中一个原因就是可自定义的代码着色功能,并且可以把你自定义的配色方案输出成themes,跟大家分享。minimal Theme 就是一个我比较喜欢的配色主题。(比较喜欢褐色调)
另外作者还发布了两个不错的textmate Bundle,TextMate HTML Bundle 和 TextMate CSS bundle,强化了自带的同名Bundle,适合html coder.
推荐textmate主题 minimal
textmate 一直是我比较喜欢的编辑器,其中一个原因就是可自定义的代码着色功能,并且可以把你自定义的配色方案输出成themes,跟大家分享。minimal Theme 就是一个我比较喜欢的配色主题。(比较喜欢褐色调)
另外作者还发布了两个不错的textmate Bundle,TextMate HTML Bundle 和 TextMate CSS bundle,强化了自带的同名Bundle,适合html coder.
多浏览器的Opacity
opacity是CSS 3里的一个属性,用来设定元素的透明度。当然现在还只有少部分浏览器支持。
不过各个浏览器都有自己的私有属性来支持,其中包括老版本的Mozilla和Safari:
filter:alpha(opacity)-moz-opacity-khtml-opacity很不幸的是,你没看见Opera,老版本的Opera并没有什么私有属性可以代替opacity。(新版Opera已经支持opacity)
所以以前用CSS设定一个元素半透明的话,可能会这样写:
.opacity{
filter:alpha(opacity=50); /* IE */
-moz-opacity:0.5; /* 老版Mozilla */
-khtml-opacity:0.5; /* 老版Safari */
opacity: 0.5; /* 支持opacity的浏览器*/
}用javascript来设定一个元素为半透明:
object.filter = "alpha(opacity=" + opacity + ")"; /* IE */
object.MozOpacity = (opacity / 100); /* 老版Mozilla */
object.KhtmlOpacity = (opacity / 100); /* 老版Safari */
object.opacity = (opacity / 100); /* 支持opacity的浏览器*/
Jquery版的简单Accordion效果
还在使用mootools的时候,就非常喜欢这个Accordion(折叠菜单)效果,特别是slideUp和slideDown的滑动,接近flash的效果。今天我们就来用jquery来制作一个简单的Accordion效果。
首先准备好html结构,因为是针对sandbox template,它的sidebar结构是这样的:
<div class="sidebar">
<ul class="xoxo">
<li class="widget">
<h3 class="widget-title">content 1</h3>
<ul>
<li>this is content under content 1</li>
<li>this is content under content 1</li>
</ul>
</li>
<li class="widget">
<h3 class="widget-title">content 2</h3>
<ul>
<li>this is content under content 2</li>
<li>this is content under content 2</li>
</ul>
</li>
</ul>
</div>有了结构,我们就可以开始对结构做文章了,先把所有需要折叠的内容先隐藏:
$('li.widget > ul').hide();这里我们使用的 > 相似于CSS中的一级子元素选择符,隐藏所有第一级的ul元素。
接着我们设定折叠的控制器,本例中我们使用h3:
$('li.widget > h3').click(function() {
var content = $(this).next();
content.slideToggle('fast');
});用next()来获得跟h3平级的下一个元素,也就是我么不能够结构中的ul,然后用slideToggle来执行折叠动作,也就是slideUp和slideDown。这时候我们已经可以进行正常的折叠操作了,但是我想要做到同时只能展开一个内容,该如何处理?
其实也不难,jquery的Selectors很强大,看看怎么做:
var others = content.parent().siblings("li.widget").find("ul:visible");这里的parent()用来获取父元素,find()就是遵循一定的规则(使用Selectors)去查找符合条件的元素,本例中查找li.widget下的所有visible(CSS属性visibility:visible; 也就是本例中被展开的)的ul元素。
最后我们得到这样的内容:
$(document).ready(function(){
$('li.widget > ul').hide();
$('li.widget > h3').click(function() {
var content = $(this).next();
var others = content.parent().siblings("li.widget").find("ul:visible");
if (others.length ) {
others.slideUp('fast', function() {
content.slideToggle('fast');
});
} else {
content.slideToggle('fast');
}
});
});一个简单的效果看这里
CSS Validator的颜色警告并不等于错误
最近不少人问我CSS Validator的时候,发现不少警告(warnings),都是提示“You have no color with your background-color” and “You have no background-color with your color”,很烦人,而且量很大,很难看.其实在不在意还是看个人,但是要明白的是他们为什么这么做?这其中有一个亲和力(accessibility)的因素.文章的大意来自CSS Validator colour warnings are not errors
这些警告源于一个亲和力的因素,提醒你注意运用颜色.CSS Validator想帮你解决你写的样式与用户的自定义样式或者系统的颜色配置之间的冲突.W3C CSS Validator 帮助这样写到:
If you don’t specify color and background-color at the same level of specifity, your style sheet might clash with user style sheets.
问题是这样的,主流的浏览器都可以自己设定背景颜色和文字颜色,比如IE("工具"-"Internet选项"-"常规"-"颜色"),用户如果设定了使用自定义颜色配置,这将会影响到他浏览你的站点时的效果.主要还是体现在背景色和文字颜色上,其实这已经够吓人了(比如文字颜色和背景颜色是相同的...),所以有时候还是有必要去注意某些警告提示的.
错误和警告都有他的原因,你必须学会去理解他们.