二分之一

Just Jason's Blog

css

CSS让网页整体变灰[为雅安地震祈福]

html{
    -webkit-filter: grayscale(100%);
    -moz-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
    -o-filter: grayscale(100%);
    filter: grayscale(100%);
    filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/
svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333
 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1
 0\'/></filter></svg>#grayscale");
    filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
}

不过对firefox和flash支持不好,暂时没有总结出最完美的兼容方案。

Read more »

博客换主题了,新主题命名为:“Butterfly”(蝴蝶)

二分之一前端开发,经过周末两天的奋战,我的博客(2fz1.com)一年后终于换肤了,新主题命名“Butterfly”(蝴蝶),颜色选择有点丰富,一改去年的简朴,最大的特色是图标字体化,预计会加上更多的html5+css3应用。演示:

http://www.2fz1.com

Read more »

使用Fontographer制作图标字体,打造css3 webfont应用

关键词:Fontographer使用方法,如何制作图标字体,css3,@font-face,webfont

接上文《CSS3 bulletproof @font-face语法 和 Fontspring @font-face语法简介》 上文讲到使用@font-face在web上使用自定义字体,本文主要讲解如何制作图标字体,从而达到图标的更大通用性。

所需工具:

一、使用Illustrator

如果图形不是矢量图,可以使用PSD打开,将图形导出EPS格式,再用Illustrator打开,转换为矢量格式,本文不详情。

二、使用Fontographer

1、打开Fontographer,菜单”File”->”New”新建字体文件,双击第一个带有两个”**”的格子,打开编辑页面。此时为了方便查看,建议通过”Windows”->”Tile vertically”将字体列表页和编辑页面左右显示在同一屏幕,这样就可以实时看开编辑的效果。

2、将从Illustrator中复制的图形粘贴到编辑页面。调整位置和大小。

Read more »

CSS3 bulletproof @font-face语法 和 Fontspring @font-face语法简介

一、@font-face基本语法

@font-face
{
font-family: myFirstFont;
src: url('Sansation_Bold.ttf') format('truetype');
font-weight:bold;
}

二、@font-face各字体格式的支持情况

三、@font-face中字体格式format的取值说明

1、TureTpe(.ttf)格式:
.ttf字体是Windows和Mac的最常见的字体,是一种RAW格式,因此他不为网站优化,支持这种字体的浏览器有【IE9+,Firefox3.5+,Chrome4+,Safari3+,Opera10+,iOS Mobile Safari4.2+】;

2、OpenType(.otf)格式:
.otf字体被认为是一种原始的字体格式,其内置在TureType的基础上,所以也提供了更多的功能,支持这种字体的浏览器有【Firefox3.5+,Chrome4.0+,Safari3.1+,Opera10.0+,iOS Mobile Safari4.2+】;

3、Web Open Font Format(.woff)格式:
.woff字体是Web字体中最佳格式,他是一个开放的TrueType/OpenType的压缩版本,同时也支持元数据包的分离,支持这种字体的浏览器有【IE9+,Firefox3.5+,Chrome6+,Safari3.6+,Opera11.1+】;

Read more »

如何让不定宽度的UL相对父级DIV居中

ul居中在oprea和firefox中用margin:0 auto;和text-align:center;就可以轻松的实现了,然而在IE中确是居左显示的,具体的错误原因就有待高手去考证。

下面的方法可以轻松的实现ul居中显示,注意ul和li都必须定义float,否则无效哦。相信大家都知道float:leftfloat:right,那么是否想过float:center呢?让UL居中浮动!

<div id="dondiv">
    <ul>
        <li>列表一</li>
        <li>列表二</li>
        <li>列表三</li>
    </ul>
</div>

我们希望实现li是浮动的,并且居中的(注:li个数不固定,ul宽度未知)。可以设置ul的text-align:center,再设置li的display,这样的话就可以实现居中,但这样不是我们的初衷,我们需要实现的是float:center

大家来了解下position:relative,它是依据left,right,top,bottom等属性在正常文档流中偏移位置。那么就可以 让 ul为position:relative;left:50%,然后再让li向左浮动,再让position:relative;right:50%(或 者left:-50%),那么li就像向中间浮动一样居中了。

#dondiv{
    position:relative;
    width:100%;
    height:80px;
    background-color:#eee;
    text-align:center;
    overflow:hidden;
}
#dondiv .donul {
    float:left;
    position:relative;
    left:50%;
}
#dondiv .donul li{
    position:relative;
    right:50%;
    float:left;
    margin:10px;
    padding:0 10px;
    border:solid 1px #000;
    line-height:60px;
}

Read more »

CSS垂直居中布局的两个常用方法

1、绝对定位 + margin-top;

容器绝对定位,设置top值为50%,margin-top的值为容器高度一半的负数。

前提:必须知道DIV的高度

<div class=”content”></div>
.content {
    position:absolute;
    top:50%;
    height:200px;
    margin-top:-100px; /* 容器高度的一半 */
}

优点:适用于所有浏览器,不需要嵌套标签

2、将display设为table;

利用table的vertical-align属性实现。

<div id="wrapper">
    <div id="cell">
    <div class="content"></div>
    </div>
</div>
#wrapper {display:table;}
#cell {display:table-cell; vertical-align:middle;}

优点:content容器的高度不需要预先知道,高度可随意变化

实现容器垂直居中布局的方法还有很多,本文只介绍笔者常用的两个方法。

Read more »

页面js和css加载顺序优化建议

body里dom渲染取决于head里的外联js加载完。

根据此原理,建议如下:

1、head里出现外联js,无论如何放,css文件都不能和body里的请求并行。

2、head里面内联js要在所有外联css文件前面,才能使css文件和body里面的请求并行,不然会堵塞。

因为内联js要等head里面所有外联css加载完后才会执行。

3、外联js放在页面最后,高级浏览器会自动做优化。

一般是放在body里面的最后几行。

4、长执行的内联js无论放在页面任何位置都会影响页面渲染。

长执行的js,比如监听事件的代码:

document.getElementById('bn').onclick = function() { alert(1); }

但这行代码写到外联JS中就不影响。

Read more »