【转载】Web 开发中 9 个有用的提示和技巧

标签: HTML5 技术博文 HTML5学习资源 | 发表时间:2012-09-04 12:18 | 作者:HTML5研究小组
出处:http://www.mhtml5.com
在本文中,我们给出 9 个有用的 HTML、CSS 和 JavaScript 的技巧和提示,可能在做 Web 开发中经常会需要用到的,其中有几个是关于  HTML5 和  CSS3 的,如果你是一个前端开发者,那么或许对你有些用处。

123.jpg

 

1. 使用 html5 的 placeholder 属性

以前我们经常要写不少JavaScript 的代码来实现现在HTML5 的 placeholder 属性的功能,一个输入框在没获取焦点时显示某个提示信息,当获得输入焦点就自动清除提示信息,目前支持该属性的浏览器有:Opera 11+, Firefox 9+, Safari 5+, IE 10+,不过下面提供的代码对于不支持 placeholder 的浏览器也适用:

  1. // jQuery code
  2. var i = document.createElement(“input”);
  3. // Only bind if placeholder isn’t natively supported by the browser
  4. if (!(“placeholder” in i)) {
  5. $(“input[placeholder]“).each(function () {
  6. var self = $(this);
  7. self.val(self.attr(“placeholder”)).bind({
  8. focus: function () {
  9. if (self.val() === self.attr(“placeholder”)) {
  10. self.val(“”);
  11. }
  12. },
  13. blur: function () {
  14. var label = self.attr(“placeholder”);
  15. if (label && self.val() === “”) {
  16. self.val(label);
  17. }
  18. }
  19. });
  20. });
  21. }
  22. <!– html5 –>
  23. <input type=”text” name=”search” placeholder=”Search” value=”">

复制代码

2. 使用 font face

你可以通过 font face 来使用一些更好的独特的字体,支持多数浏览器:Opera 11+, Firefox 3+, Safari 5, IE6+

  1. @font-face {
  2. font-family: ‘MyWebFont’;
  3. src: url(‘webfont.eot’); /* IE9 Compat Modes */
  4. src: url(‘webfont.eot?#iefix’) format(‘embedded-opentype’), /* IE6-IE8 */
  5. url(‘webfont.woff’) format(‘woff’), /* Modern Browsers */
  6. url(‘webfont.ttf’) format(‘truetype’), /* Safari, Android, iOS */
  7. url(‘webfont.svg#svgFontName’) format(‘svg’); /* Legacy iOS */
  8. }
  9. body {
  10. font-family: ‘MyWebFont’, Fallback, sans-serif;
  11. }

复制代码

3. Box Sizing

好吧,我会说这是我最近最喜欢的CSS属性。它可以解决布局问题。例如,当您添加一个textfield填充,宽度将是文本框的宽度+填充,这很烦人,它通常将打破布局。然而,通过使用这个属性,它解决了这个问题。
支持的浏览器:Opera 8.5+, Firefox 1+, Safari 3, IE8+, Chrome 4+

  1. textarea {
  2. -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
  3. -moz-box-sizing: border-box; /* Firefox, other Gecko */
  4. box-sizing: border-box; /* Opera/IE 8+ */
  5. }

复制代码

4. 禁用 Textarea 的大小改变

有些时候你不需要用户可以改变多行文本输入口 textarea 的大小,可是一些基于 Webkit 的浏览器(例如 safari 和 chrome)就可以让用户随意更改 textarea 大小,好在你可以禁用这个特性:

  1. textarea {
  2. resize: none
  3. }

复制代码

5.jQuery.trim()

用来去除字符串前后的空格:

  1. $.trim(” a lot of white spaces, front and back! “);

复制代码

6. jQuery.inArray()

用来判断某个元素是否在数组之中:

  1. var arr = [ "xml", "html", "css", "js" ];
  2. $.inArray(“js”, arr);

复制代码

7. 编写一个简单的 jQuery 插件(模板)

  1. //You need an anonymous function to wrap around your function to avoid conflict
  2. (function($){
  3. //Attach this new method to jQuery
  4. $.fn.extend({
  5. //This is where you write your plugin’s name
  6. pluginname: function() {
  7. //options
  8. var defaults = {
  9. option1: “default_value”
  10. }
  11. var options = $.extend(defaults, options);
  12. //a public method
  13. this.methodName: function () {
  14. //call this method via $.pluginname().methodName();
  15. }
  16. //Iterate over the current set of matched elements
  17. return this.each(function() {
  18. var o = options;
  19. //code to be inserted here
  20. });
  21. }
  22. });
  23. //pass jQuery to the function,
  24. //So that we will able to use any valid Javascript variable name
  25. //to replace “$” SIGN. But, we’ll stick to $ (I like dollar sign: ) )
  26. })(jQuery);

复制代码

8. 扩展 jQuery 选择器的功能

  1. jQuery.expr[':'].regex = function(elem, index, match) {
  2. var matchParams = match[3].split(‘,’),
  3. validLabels = /^(data|css):/,
  4. attr = {
  5. method: matchParams[0].match(validLabels) ?
  6. matchParams[0].split(‘:’)[0] : ‘attr’,
  7. property: matchParams.shift().replace(validLabels,”)
  8. },
  9. regexFlags = ‘ig’,
  10. regex = new RegExp(matchParams.join(”).replace(/^s+|s+$/g,”), regexFlags);
  11. return regex.test(jQuery(elem)[attr.method](attr.property));
  12. }
  13. /******** Usage ********/
  14. // Select all elements with an ID starting a vowel:
  15. $(‘:regex(id,^[aeiou])’);
  16. // Select all DIVs with classes that contain numbers:
  17. $(‘div:regex(class,[0-9])’);
  18. // Select all SCRIPT tags with a SRC containing jQuery:
  19. $(‘script:regex(src,jQuery)’);

复制代码

9. 优化并降低 PNG 图像文件的大小

你可以通过降低颜色数来降低png文件的大小,详情请看  PNG file optimization

结论

前端开发是一个非常有趣的领域,我们永远不能能学到一切。每次我工作的一个新项目,我总是觉得自己发现一些新的或奇怪的东西。我觉得这几个技巧,将是非常方便和有用的;)

英文原文OSCHINA原创翻译

相关 [web 开发 技巧] 推荐:

web app开发技巧总结 (share)

- - 移动开发 - ITeye博客
web app开发技巧总结 (share).   (转自http://hi.baidu.com/kuntakinte/item/ca92d6e5edae9fc0bbf37d08). 自Iphone和Android这两个牛逼的手机操作系统发布以来,在互联网界从此就多了一个新的名词-WebApp(意为基于WEB形式的应用程序,运行在高端的移动终端设备).

Web开发者应掌握的12个Firebug技巧

- - 搜索引擎技术博客
相信很多从事Web开发工作的开发者都听说和使用过Firebug,但可能大部分人还不知道,其实它是一个在网页设计方面功能相当强大的编辑器,它 可以对HTML、DOM、CSS、HTTP和Javascript进行全面的跟踪和调试. 它是Firefox浏览器的一个插件,所以建议各位Web开发 者,要充分利用FireFox浏览器和Firebug插件进行日常的调试工作.

【转载】Web 开发中 9 个有用的提示和技巧

- - HTML5研究小组
在本文中,我们给出 9 个有用的 HTML、CSS 和 JavaScript 的技巧和提示,可能在做 Web 开发中经常会需要用到的,其中有几个是关于 . CSS3 的,如果你是一个前端开发者,那么或许对你有些用处. 使用 html5 的 placeholder 属性. 以前我们经常要写不少JavaScript 的代码来实现现在HTML5 的 placeholder 属性的功能,一个输入框在没获取焦点时显示某个提示信息,当获得输入焦点就自动清除提示信息,目前支持该属性的浏览器有:Opera 11+, Firefox 9+, Safari 5+, IE 10+,不过下面提供的代码对于不支持 placeholder 的浏览器也适用:.

优化网页速度-SEOs和Web开发者可执行的技巧

- Jimmy - SEM WATCH
我确信你们大多数人都非常清楚,网页速度已经成为搜索引擎的排名因素. 虽然对于搜索引擎来说,它不是一个关键因素,但是对访问者来说,我一直感觉它是的. 伴随着大量的人们使用超快的宽屏(并且数量在增长中),对于缓慢载入网站的耐心正在消耗. 个人来说,我讨厌等待一个页面的载入,并且我相信我的访问者也是这样的.

Web 日志安全分析技巧

- - IT瘾-dev
Web访问日志记录了Web服务器接收处理请求及运行时错误等各种原始信息. 通过对WEB日志进行的安全分析,不仅可以帮助我们定位攻击者,还可以帮助我们还原攻击路径,找到网站存在的安全漏洞并进行修复. 我们来看一条Apache的访问日志:. 通过这条Web访问日志,我们可以清楚的得知用户在什么IP、什么时间、用什么操作系统、什么浏览器的情况下访问了你网站的哪个页面,是否访问成功.

Web开发入门(转载)

- linchanx - Starming星光社最新更新
Web应用的竞争异常激烈,开发难度也是入门容易做好很难,所以第一次开发的应用不成功是很正常的事情. 不过这正是一个积累的过程,反正你需要的只是电脑和少量服务器经费,所以多磨练几次,水平自然会提高. 2, 习惯阅读及查阅英文资料. 前沿信息基本源自美国,翻译的东西不及时,不全,很多水平不高,再加之中文原创资料毕竟很有限,因此是否能熟练地查阅英文资料决定了你获取信息的 及时性和质量.

Spring MVC 与 web开发

- - 码蜂笔记
项目组用了 Spring MVC 进行开发,觉得对里面的使用方式不是很满意,就想,如果是我来搭建开发环境,我会怎么做. 下面就是我的想法,只关注于 MVC 的 View 层. 现在基本上都是用 ajax 来调用后台接口,拿到 json格式的数据再展示,有的人直接返回数据,却没有考虑异常的情况,我觉得返回的报文里必须包含表示可能的异常信息的数据和业务响应数据.

web开发利器之grunt

- - CSDN博客Web前端推荐文章
grunt不难,它主要依赖的是nodeJS的npm包管理器,和一个JSON及一个JS文件,先说说npm包管理器,玩过nodeJS的对它应该都很熟悉,在这里我们只需要安装nodeJS即可(新版的nodeJS基本都集成了npm),至于nodeJS的安装可以 点这里,这这篇文章就不做详细介绍,安装完后打开命令管理器(nodeJS安装完后的终端)输入:.

Web开发者必备:Web应用检查清单

- - ITeye博客
想做一个高质量的Web应用,前前后后要做的事情非常多. 国外开发者 Ata Sasmaz 为 Web 开发者制作分享了一份检查清单,包括应用开发、性能、安全、分析、可用性、可靠性、转换策略、竞争策略这些方面需要注意的事项. 清单内容可能不全面,欢迎大家在评论中补充. JavaScript 允许捕获异常.

Web应用程序的开发步骤

- xxg - 月光博客
  如今已进入了web2.0高速发展的互联网时代,各种互联网的Web应用程序如雨后春笋般出现. 那么作为一名Web开发人员,怎样去开发一款优秀的Web应用程序呢. 这个问题没有一个简单的答案,甚至那些教育机构都未必能清楚的知道. 所以,像大多数在这个领域里的web开发人员一样,我们只是通过去做,去实验才学会了这些.