5个Web开发中的使用技巧

1.使用 html5 的 placeholder 属性

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

javascript 复制代码
  // jQuery code
  var i = document.createElement("input");
   
  // Only bind if placeholder isn't natively supported by the browser
  if (!("placeholder" in i)) {
      $("input[placeholder]").each(function () {
          var self = $(this);
          self.val(self.attr("placeholder")).bind({
              focus: function () {
                  if (self.val() === self.attr("placeholder")) {
                      self.val("");
                  }
              },
              blur: function () {
                  var label = self.attr("placeholder");
                  if (label && self.val() === "") {
                      self.val(label);
                  }
              }
          });
      });
  }
   
  <!-- html5 -->
  <input type="text" name="search" placeholder="Search" value="">
  

2.扩展 jQuery 选择器的功能

scss 复制代码
  jQuery.expr[':'].regex = function(elem, index, match) {
      var matchParams = match[3].split(','),
          validLabels = /^(data|css):/,
          attr = {
              method: matchParams[0].match(validLabels) ?
                          matchParams[0].split(':')[0] : 'attr',
              property: matchParams.shift().replace(validLabels,'')
          },
          regexFlags = 'ig',
          regex = new RegExp(matchParams.join('').replace(/^s+|s+$/g,''), regexFlags);
      return regex.test(jQuery(elem)[attr.method](attr.property));
  }
   
  /******** Usage ********/
   
  // Select all elements with an ID starting a vowel:
  $(':regex(id,^[aeiou])');
    
  // Select all DIVs with classes that contain numbers:
  $('div:regex(class,[0-9])');
    
  // Select all SCRIPT tags with a SRC containing jQuery:
  $('script:regex(src,jQuery)');

3.禁用 Textarea 的大小改变

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

css 复制代码
  textarea {
      resize: none
  }

4.使用 font face

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

css 复制代码
  @font-face {
      font-family: 'MyWebFont';
      src: url('webfont.eot'); /* IE9 Compat Modes */
      src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
           url('webfont.woff') format('woff'), /* Modern Browsers */
           url('webfont.ttf')  format('truetype'), /* Safari, Android, iOS */
           url('webfont.svg#svgFontName') format('svg'); /* Legacy iOS */
      }
       
  body {
         font-family: 'MyWebFont', Fallback, sans-serif;
  }   

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

javascript 复制代码
  //You need an anonymous function to wrap around your function to avoid conflict
  (function($){
    
      //Attach this new method to jQuery
      $.fn.extend({
            
          //This is where you write your plugin's name
          pluginname: function() {
    
              //options
              var defaults = {
                  option1: "default_value"
              }
               
              var options = $.extend(defaults, options);
    
              //a public method
              this.methodName: function () {
                  //call this method via $.pluginname().methodName();
              }
    
              //Iterate over the current set of matched elements
              return this.each(function() {
                
                  var o = options;
                
                  //code to be inserted here
                
              });
          }
      });
        
  //pass jQuery to the function,
  //So that we will able to use any valid Javascript variable name
  //to replace "$" SIGN. But, we'll stick to $ (I like dollar sign: ) )      
  })(jQuery);
相关推荐
To_OC3 分钟前
LC 39 组合总和:回溯入门必刷题,我踩过的两个坑都在这了
javascript·算法·leetcode
橘子星18 分钟前
从零理解流式输出 —— 一个 Vue + DeepSeek 的前端实战
前端·javascript·人工智能
এ慕ོ冬℘゜1 小时前
深入 JavaScript BOM:掌握 window 对象的窗口控制魔法
开发语言·javascript·ecmascript
石像鬼₧魂石2 小时前
【Y2Ksoft】四季贵州水世界乐园管理系统 —— 玻璃拟态 · 单文件HTML · 开箱即用
前端·html
Highcharts2 小时前
Highcharts 矩形树图 Treemap 示列|2025年多层级出口商品结构可视化
javascript·数据可视化
大家的林语冰3 小时前
✌️ Deno 2.9 来了,ESM 直接导入 CSS,甚至能开发桌面应用?!
前端·javascript·node.js
不简说4 小时前
JS 代码技巧 vol.1 — 10 个让代码少写 30% 的小套路
前端·javascript·面试
@@@@@@@@544 小时前
JavaScript 的缺点与 TypeScript 的弥补
开发语言·javascript·typescript
Hilaku4 小时前
为什么业务型前端容易遭遇中年危机?
前端·javascript·程序员
এ慕ོ冬℘゜4 小时前
深度解析 JavaScript:赋予 Web 灵魂的“全栈语言”
开发语言·前端·javascript