在本文中,我们给出 9 个有用的 HTML、CSS 和 JavaScript 的技巧和提示,可能在做 Web 开发中经常会需要用到的,其中有几个是关于 HTML5 和 CSS3 的,如果你是一个前端开发者,那么或许对你有些用处。
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 |
src : url ( 'webfont.eot' ); /* IE9 Compat Modes */
|
04 |
src : url ( '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
结论
前端开发是一个非常有趣的领域,我们永远不能能学到一切。每次我工作的一个新项目,我总是觉得自己发现一些新的或奇怪的东西。我觉得这几个技巧,将是非常方便和有用的;)
相关推荐
《php和mysql web开发(原书第4版)》:开发人员专业技术丛书。 目录 读者反馈 译者序 前言 作者简介 第一篇 使用PHP 第1章 PHP快速入门教程 1.1 开始之前:了解PHP 1.2 创建一个示例应用:Bob汽车零部件商店 ...
### Web开发中实用的JS技巧解析 #### 一、解决`label`无法自动换行的问题 ...以上这些JS技巧涵盖了Web开发中的多个方面,包括布局调整、数据处理、页面交互等,对于提高开发效率和用户体验有着重要作用。
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(反射)...
描述中的“博文链接”指向了一个ITeye博客文章,这可能提供了更深入的学习材料或背景信息,虽然具体内容没有给出,但我们可以假设它可能包含了一些关于Web开发的实践经验和技巧。 标签 "源码 工具" 提示了压缩包内...
在IT行业中,开发Web应用程序是常见的任务之一,而Eclipse和Tomcat是两个非常重要的工具。Eclipse是一款功能强大的Java集成开发环境(IDE),而Tomcat是一个流行的开源Servlet容器,常用于部署Java Web应用程序。本...
《php和mysql web开发(原书第4版)》:开发人员专业技术丛书。 目录 读者反馈 译者序 前言 作者简介 第一篇 使用PHP 第1章 PHP快速入门教程 1.1 开始之前:了解PHP 1.2 创建一个示例应用:Bob汽车零部件商店 ...
在ASP.NET MVC等Web开发框架中,强类型视图(Strongly Typed View)和动态视图(Dynamic View)是两种不同的视图渲染方式。了解这两种方式的区别以及它们的适用场景对于构建高效的Web应用非常重要。 ### 19. 使用...
根据提供的信息,我们可以推断这份文档可能包含了关于使用Python进行Web开发,并且涉及PDF处理的实际案例和技巧。尽管描述部分有些重复,但可以理解为作者强调这是一个真实的PDF文档,里面包含的是实质性的内容而非...
针对Web开发人员的有用HTML文件上传提示HTML文件上传提示对Web开发人员的有用HTML文件上传提示。 该存储库包含代码示例,这些代码示例详细说明了提示。 as随着我不断更新源代码,请随时关注此项目。 如果对您有用,...
在Web开发中,有时我们需要实现一个功能,即当用户聚焦到某个输入框时,光标会自动跳转到最后的位置。这可以提高用户体验,减少用户的手动操作。根据给定的内容中的代码示例,我们可以通过JavaScript来实现这一需求...
### ASP.NET开发十大技巧 #### 技巧一:利用Visual Studio .NET 提高工作...以上介绍的四个技巧只是ASP.NET开发中众多高效开发策略的一部分。通过利用这些工具和技术,开发人员可以构建出既高效又易于维护的应用程序。
Firebug是一款功能强大的Web开发辅助工具,通过上述技巧的学习和实践,Web开发者可以更加高效地进行网页调试和性能优化。尽管现代浏览器已经集成了类似功能的开发者工具,但Firebug的历史地位和其特有的优势仍然值得...
8. **多线程编程**:虽然这个简单的Web浏览器可能并未涉及多线程,但在实际的浏览器开发中,多线程是常见的,用于提高用户体验,比如在后台加载资源或执行耗时操作。 9. **UI设计**:良好的用户界面设计能够提升...
Android开发技巧涵盖了Android开发过程中的多种实践和建议,其中包括对Android常用类库的说明、文件系统与应用程序架构的理解、以及各个组件和控件的具体应用。以下是对这些知识点的详细解释: 1. ANDROID常用类库...
内容概要:本文档详尽地讲解了 Web 编程中的Event事件相关知识,具体涵盖事件对象的概念及其获取方式,不同环境下的兼容处理技巧如 mouse events 和 key events,以及 event.bubble 及其阻断。此外还包括一系列的...
16. **Ctrl+PgUp**: 在HTML视图之间切换,适用于Web开发。 17. **Ctrl+K+K**: 在代码中添加书签,方便快速定位代码位置。 18. **Ctrl+W+B**: 打开书签窗口,查看和管理所有书签。 19. **Ctrl+Shift+Enter**: 切换至...
对于那些希望在任何文本编辑器或IDE中进行开发的程序员来说,这是一个非常有用的选择。 #### 三、图表组件与Adobe AIR **图表组件** 在Flex中扮演着重要的角色,它们允许开发者轻松地创建复杂的可视化数据展示,如...
在网页设计和开发中,视觉元素的运用是至关重要的,它们可以吸引用户的注意力,提升用户体验,同时也能传达信息。...尽管现在FLASH的应用已不如以往广泛,但其设计理念和技术仍在现代Web开发中得以传承和发展。
在IT领域,Visual Studio 2005(VS 2005)是Microsoft推出的一款强大的集成开发环境(IDE),广泛用于创建Windows应用程序、Web应用和游戏等。本篇文章将深入探讨VS 2005中一些容易被开发者忽视但极具实用价值的技巧...
在C#编程中,掌握一些开发经验和技巧能显著提升开发效率和代码质量。以下是一些关键知识点的详细说明: **1. Visual Studio 开发环境配置** - **安装与配置**:确保选择适合的Visual Studio版本,如2005,并遵循...