皮肤终于搞定,每年春节左右都会换新皮肤,因为这博客也是在09年春节前不久开通的。去年换了两次皮肤,所以今年拖到这段时间才在再制作。这次与之前的皮肤差不多,算是前两个皮肤的合体吧。本来打算用亮点的颜色,但颜色配得不好,也不喜欢,最后还是用回了这种暗暗的色调。依然屏蔽所有IE(IE9还是有点小杯具,所以一样屏蔽)与FF2,测试浏览器chromium12、Firefox 4、Safari 5、Opera 11。
好了,下面进入正题,实现方法与box-shadow原理一样,所以没看过的请先看一下。
我们就直接拿头部的导航来举例说明。因为只有FF才支持border的渐变而且只能是自内向外或者内外向内,所以用border去处理是不靠谱的。背景就可以渐变,所以我们利用背景来作边框的渐变。首先看下面这段样式:
#header .page_item:before{ position:absolute; left:-1px; top:0; width:87px; height:55px; background:-webkit-gradient(linear,0 0,0 100%,from(#1f1f1f),to(#333));background:-moz-linear-gradient(top,#1f1f1f,#333);background:-o-linear-gradient(top,#1f1f1f,#333); content:''; z-index:-1;}
同样是用绝对定位加z-index:-1,记住content属性很重要。但在实际应用中,可能会发现看不到效果,那是因为被有设置背景的父级元素给遮挡了,所以只能视情况把某个父级元素也设置为绝对定位,例如这皮肤,我是对下面这个设置的:
#header nav{ position:absolute; top:0; left:200px; width:510px; text-align:right; z-index:999}
其实用这方法也挺无奈的,而且不是什么布局都能这样弄。不过要提醒的是,上面是针对双边线高光渐变,如果你是单边线,直接用1px宽或高分别放到需要的位置既可