前端开发中一些常用技巧总结

自己前端开发中常用到的一些技巧及问题解决方法,会常更新,希望对前端路上的朋友有帮助.
JavaScript常用函数请点此前往: 一些常用且实用的原生JavaScript函数 , 你还可以前往兰芝博客, 查看由淘宝UED整理的前端tips: http://www.12sui.cn/develop/.
1.文章标题列表中日期居右显示的两种方法,方法A相对方法B省资源,但比方法B要多写两句代码,使用时请视情况而定:
方法A(经典论坛ariesjia提供的思路.感谢~):


@Mr.Think这是文章标题2010-10-10

然后定义p和span的样式:

p{position:relative}
p span{position:absolute; right:0}

方法B:


2010-10-10@Mr.Think这是文章标题

然后定义span右浮动:

p span{float:right}

其实这两种方法可以延伸到很多情况下,很实用的一种写法;
2.web标准中,同一页面中只能有一个h1标签.很多人知道这个概念,但做到的却很少;
3.空白外边距互相叠加的问题:一般通过添加透明边框或者1px的内边距避免.详细解读:http://mrthink.net/css-margin-overlying-way/;
4.ie6下max/min-width/height实现,_width:expression(document.body.clientWidth > 600 ? “600px” : “auto”); _height: expression(this.scrollHeight >600 ? “600px” : “auto”);.
5.html/class/id,最好统一以小写书写,这样更严谨(符合xhtml标准);
6.不推荐用下面代码兼容IE8:


如果是非短期性页面,尽量避免使用,页面应尽可能保证向后兼容.更多兼容方法请详细阅读: http://mrthink.net/cssandhtml-hack-mainbrower/
7.空div在IE(FF中没有)是有默认高度的,可以用定义:div { witdh:100%; background:#9c0; font-size:0}的方式去掉默认高度;
8.在使用table标签时应该尽可能的利用它本身的属性,最大限度的分离结构与样式.详细解读:http://mrthink.net/csshtml-colgroup-col-style/;
9.充分利用表单中label标签提升用户体验; 这一点对于页面中那些小的选项框,以及对残障人士阅读网站都有好处. 细节是用户体验的第一步;例如:


当鼠标点击SAMPLE时,光标将自动在文本域中获取焦点;
10.fieldset, legend标签, 鲜为人知,却很实用的一组标签;它可以很明了的把一组元素框起来,主要用于表单;
11.optgroup标签,鲜为人知,它对提升选择表单用户体验很有帮助.作用? 就是可以在有很多选项时,对这些选项分组:



12.表单都要加name值,name值是一个标识,不同于id,据我所发现,若是未定义name值,非IE浏览器下是无法通过document.formid获取到表单元素的.请看如下代码及注释:

<html>
<head>
<script>
window.onload=function(){
alert(document.mrform.length);  //所有浏览器均会弹出表单元素长度
alert(document.thinkform.length);  //仅IE会弹出该表单元素长度
}
</script>
</head>
<body>
<form name="mrform" id="thinkform" action="#">
......
</form>
</body>
</html>

13.同一行上文字与图片垂直居中对齐方法:为图片与文字的共同父元素所有的后代元素定义*{vertical-align:middle};
例如:


@Mr.Think

只需定义p*{vertical-align:middle}即可使文字与图片同行垂直居中.
14.同一行上文字与表单对齐方法: 设置表单元素第一字体为Tahoma(Verdana系列也可),并设置vertical-align:middle.建设大家把这个约定写入CSS RESET中,能减小很多麻烦:

body,button,input,select,textarea{font:12px/1.5 tahoma,arial,sans-serif; vertical-align:middle}

15.获取m至n间随机数的公式: Math.random()*(n-m)+m;
16.针对ie6下png背景显示问题,CSS中可以这样解决:_background:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=crop, src=’http://mat1.gtimg.com/www/mb/images/openShadow.png’);
17.优先加载页面中的Sprite图(请参见Google首页源码):

if(document.images)new Image().src='images/sprite.png'

18.CSS及JavaScript中,非注释类中文(CSS中指字体),在最后优化时须转换成Unicode码,以避免编码错误时的乱码显示.
19.ie6/ie7下若overflow失效, 一般是由于元素中有relative定位元素,可为为父级元素添加position:relative解决.
20.ie6下border-color:transparent无效解决方法:

_border-color:#ff0 #047 #047 #047;_filter:chroma(color=#047)/*#047颜色值将被透明*/
共有 31 条评论.

发表评论5,299 Views

  1. 第一个技巧的确很实用!!!

    [回复]

  2. 真的学到了几招, 很实用, 非常谢谢分享

    [回复]

  3. 第14条 如果字体是14号 有何解决办法

    [回复]

    Mr.Think 回复:

    @濯焰, 这个是写在reset中的, 为14px表单重定义一下字号即可,不影响它的功能.

    [回复]

  4. css表达式很影响效率的哦

    [回复]

    Mr.Think 回复:

    @polazeyu, 这个当然. 使用时需要根据情况控制使用次数.

    [回复]

  5. 請問作者,文字與圖垂直居中,只是在IE下有效~~
    p*{vertical-align:middle;}

    [回复]

    Mr.Think 回复:

    @seasunk, 怎么会呢? 我经常在项目中用到, 主流浏览器均支持. 请看一下你页面的上下文.

    [回复]

  6. 非常实用…收下了~

    [回复]

  7. 贫僧是个前端爱好者,但是js – -实在是太菜菜了..愁人哦。学习 学习…

    [回复]

  8. 搂主的wordpress代码插件叫什么?

    [回复]

    Mr.Think 回复:

    @gudao, coolcode

    [回复]

  9. 超实用,谢谢分享

    [回复]

  10. “同一页面中只能有一个h1标签”是从语义方面讲的,一个页面有多个h1可以通过验证,但是会让人感觉怪怪的^!^

    [回复]

  11. laoshu133

    对于第七条,应该font-size:0;就可以解决问题的

    [回复]

    Mr.Think 回复:

    @laoshu133, 嗯.可以的.

    [回复]

  12. 都是非常不错的经验呀

    [回复]

  13. pengchaovista

    div { witdh:100%; background:#9c0; ling-height:0} 应该是line-height

    [回复]

    Mr.Think 回复:

    @pengchaovista, 感谢更正~ 笔误.

    [回复]

  14. 这一条
    4.ie6下max/min-width/height实现
    不需要那么麻烦,在IE6中因为width和height不严谨,所以他基本等同于min-width和min-height
    如果是max-width,那么就需要借助用到overflow:hidden来实现了。

    [回复]

    Mr.Think 回复:

    @李惟, 这一点我固然知道,但它是不精确的.如果在IE6下靠宽高度来限制,超出这个范围的图片就会被裁剪,而非等比缩小. 常规情况下,图片的最大宽高及最小宽高,也并非是所在层的宽高度.

    [回复]

    如影飞 回复:

    @李惟, 这个意思就是说同时定义width和min-width就可以兼容ie6咯

    [回复]

  15. 第7条我的写法是:height:0;overflow:hidden

    [回复]

    Mr.Think 回复:

    @jfeng173, 嗯.一样的道理.

    [回复]

    will 回复:

    @jfeng173, height:0; font-size:0; 也可以的!

    [回复]

  16. 很实用,感谢分享了。

    [回复]

  17. 空div在IE(FF中没有)是有默认高度的,这一点帮到我了,谢谢。

    [回复]

发表评论[无需注册]

Trackbacks and Pingbacks: