`

Web 开发中 9 个有用的提示和技巧(转)

 
阅读更多

在本文中,我们给出 9 个有用的 HTML、CSS 和 JavaScript 的技巧和提示,可能在做 Web 开发中经常会需要用到的,其中有几个是关于 HTML5 和 CSS3 的,如果你是一个前端开发者,那么或许对你有些用处。

tips and tricks

1. 使用 html5 的 placeholder 属性

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

01 // jQuery code
02 var i = document.createElement("input");
03   
04 // Only bind if placeholder isn't natively supported by the browser
05 if (!("placeholder" in i)) {
06     $("input[placeholder]").each(function () {
07         var self = $(this);
08         self.val(self.attr("placeholder")).bind({
09             focus: function () {
10                 if (self.val() === self.attr("placeholder")) {
11                     self.val("");
12                 }
13             },
14             blur: function () {
15                 var label = self.attr("placeholder");
16                 if (label && self.val() === "") {
17                     self.val(label);
18                 }
19             }
20         });
21     });
22 }
23   
24 <!-- html5 -->
25 <input type="text" name="search" placeholder="Search" value="">

2. 使用 font face

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

01 @font-face {
02     font-family'MyWebFont';
03     srcurl('webfont.eot'); /* IE9 Compat Modes */
04     srcurl('webfont.eot?#iefix'format('embedded-opentype'), /* IE6-IE8 */
05          url('webfont.woff'format('woff'), /* Modern Browsers */
06          url('webfont.ttf')  format('truetype'), /* Safari, Android, iOS */
07          url('webfont.svg#svgFontName'format('svg'); /* Legacy iOS */
08     }
09       
10 body {
11        font-family'MyWebFont', Fallback, sans-serif;
12 }

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 插件(模板)

01 //You need an anonymous function to wrap around your function to avoid conflict
02 (function($){
03    
04     //Attach this new method to jQuery
05     $.fn.extend({
06            
07         //This is where you write your plugin's name
08         pluginname: function() {
09    
10             //options
11             var defaults = {
12                 option1: "default_value"
13             }
14               
15             var options = $.extend(defaults, options);
16    
17             //a public method
18             this.methodName: function () {
19                 //call this method via $.pluginname().methodName();
20             }
21    
22             //Iterate over the current set of matched elements
23             return this.each(function() {
24                
25                 var o = options;
26                
27                 //code to be inserted here
28                
29             });
30         }
31     });
32        
33 //pass jQuery to the function,
34 //So that we will able to use any valid Javascript variable name
35 //to replace "$" SIGN. But, we'll stick to $ (I like dollar sign: ) )     
36 })(jQuery);

8. 扩展 jQuery 选择器的功能

01 jQuery.expr[':'].regex = function(elem, index, match) {
02     var matchParams = match[3].split(','),
03         validLabels = /^(data|css):/,
04         attr = {
05             method: matchParams[0].match(validLabels) ?
06                         matchParams[0].split(':')[0] : 'attr',
07             property: matchParams.shift().replace(validLabels,'')
08         },
09         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   
14 /******** Usage ********/
15   
16 // Select all elements with an ID starting a vowel:
17 $(':regex(id,^[aeiou])');
18    
19 // Select all DIVs with classes that contain numbers:
20 $('div:regex(class,[0-9])');
21    
22 // Select all SCRIPT tags with a SRC containing jQuery:
23 $('script:regex(src,jQuery)');

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

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

结论

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

英文原文OSCHINA原创翻译

分享到:
评论

相关推荐

    PHP和MySQL Web开发第4版pdf以及源码

    《php和mysql web开发(原书第4版)》:开发人员专业技术丛书。 目录 读者反馈 译者序 前言 作者简介 第一篇 使用PHP 第1章 PHP快速入门教程 1.1 开始之前:了解PHP 1.2 创建一个示例应用:Bob汽车零部件商店 ...

    PHP和MySQL WEB开发(第4版)

    6.10.3 检查类的类型和类型提示 6.10.4 克隆对象 6.10.5 使用抽象类 6.10.6 使用__call()重载方法 6.10.7 使用__autoload()方法 6.10.8 实现迭代器和迭代 6.10.9 将类转换成字符串 6.10.10 使用Reflection(反射)...

    PHP和MySQL Web开发第4版

    《php和mysql web开发(原书第4版)》:开发人员专业技术丛书。 目录 读者反馈 译者序 前言 作者简介 第一篇 使用PHP 第1章 PHP快速入门教程 1.1 开始之前:了解PHP 1.2 创建一个示例应用:Bob汽车零部件商店 ...

    对Web开发人员有用HTML文件上传技巧-JavaScript开发

    针对Web开发人员的有用HTML文件上传提示HTML文件上传提示对Web开发人员的有用HTML文件上传提示。 该存储库包含代码示例,这些代码示例详细说明了提示。 as随着我不断更新源代码,请随时关注此项目。 如果对您有用,...

    web-dev:Web开发人员工具和资源

    免费和负担得起的资源综述,可帮助您学习编码,构建投资组合,从事技术职业,为非营利组织提供志愿服务以及加入技术社区。 从哪里开始 在哪里学习如何编码 有用的网站/书籍 编码技巧 文字编辑器 工具与应用 生产力...

    Android-9-Development-Cookbook:Packt出版的《 Android 9应用程序开发手册》,第三版

    Packt出版的《 Android 9应用程序开发手册》,第三版 这是Packt出版的的代码... 无论您是编写第一个应用程序还是编写第一个应用程序,这本书都会不时地重提,其中包含有关Android Pie丰富功能的许多提示和技巧。 本书

    SettingUpYourDevEnvironment:堪萨斯城技术编码与鸡尾酒研讨会,关于建立您的开发环境的演讲

    建议的课程说明如下: 了解开始Web开发所需的一些工具了解如何配置所需的工具在本课程中,我们将介绍对Web开发人员有用的工具和设置。 我们将介绍有用的设置和快捷方式,以使您的开发生活更有效率。 如果您想学习...

    7个有用的jQuery代码片段分享

    jQuery是一款轻量级的JavaScript库,是最流行的客户端HTML脚本之一,它在WEB设计师和开发者中非常的有名,并且有非常多有用的插件和技术帮助WEB开发人员开发出有创意和漂亮的WEB页面。 今天我们为jQuery用户分享一些...

    data-tips-tricks:有关数据的提示与技巧

    数据提示和技巧 有关数据的一些技巧和窍门。 有用的文件 ETL项目计划 数据集成主测试计划 有用的链接 通用的变更数据捕获框架 数据同步和丰富平台 有用的资源 明天我会学习 阿帕奇Nifi FastAPI Apache Superset-...

    C#微软培训资料

    18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...

    CSS网站布局实录 (第二版)PDF版

    顶尖Web设计师和Web应用开发人员的完整经验、技术倾囊奉献。 4、国外网站重构经典作品引进、拓展 Web 2.0标准与CSS重构技术——国外经典之作结合之典范。 说良心话,内容真不赖,特别是有点网页标准基础,却不知道...

    Thinking in Java简体中文(全)

    10.2 增添属性和有用的接口 10.2.1 通过FilterInputStream从InputStream里读入数据 10.2.2 通过FilterOutputStream向OutputStream里写入数据 10.3 本身的缺陷:RandomAccessFile 10.4 File类 10.4.1 目录列表器 ...

    Thinking in Java 中文第四版+习题答案

    10.2 增添属性和有用的接口 10.2.1 通过FilterInputStream从InputStream里读入数据 10.2.2 通过FilterOutputStream向OutputStream里写入数据 10.3 本身的缺陷: 10.4 File类 10.4.1 目录列表器 10.4.2 检查与创建...

    java联想(中文)

    10.2 增添属性和有用的接口 10.2.1 通过FilterInputStream从InputStream里读入数据 10.2.2 通过FilterOutputStream向OutputStream里写入数据 10.3 本身的缺陷:RandomAccessFile 10.4 File类 10.4.1 目录列表器 ...

    ASP.NET MVC 3高级编程

    12.3 单元测试用于asp.net mvc应用程序的技巧和窍门 291 12.3.1 控制器测试 291 12.3.2 路由测试 296 12.3.3 验证测试 298 12.4 小结 302 第13章 扩展asp.net mvc 303 13.1 模型扩展 304 13.1.1 把请求数据...

    Think in Java(中文版)chm格式

    10.2 增添属性和有用的接口 10.2.1 通过FilterInputStream从InputStream里读入数据 10.2.2 通过FilterOutputStream向OutputStream里写入数据 10.3 本身的缺陷:RandomAccessFile 10.4 File类 10.4.1 目录列表器...

    RED HAT LINUX 6大全

    全书共分为五个部分,包括35章和四个附录。第一部分为Red Hat Linux的介绍和安装;第二部分为服务配置;第三部分为系统管理;第四部分为Linux编程;第五部分为附录。本书内容翔实、涉及领域广泛,并且提供了详细的...

    PowerPoint.2007宝典 3/10

    《PowerPoint 2007宝典》全面并且深入浅出地介绍了PowerPoint最有用的高级技能,还提供了很多实用的小技巧,教您快速成为制作和演示文稿方面的专家。PowerPoint是最普及的和非常受欢迎的制作演示文稿的工具,而...

Global site tag (gtag.js) - Google Analytics