Web 開發中 9 個有用的提示和技巧

在本文中,我們給出 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

結論

前端開發是一個非常有趣的領域,我們永遠不能能學到一切。每次我工作的一個新項目,我總是覺得自己發現一些新的或奇怪的東西。我覺得這幾個技巧,將是非常方便和有用的;)

發佈了57 篇原創文章 · 獲贊 6 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章