嫩草影院久久99_老司机午夜网站国内精品久久久久久久久_久久夜色精品国产_国产一级做a爰片久久毛片

首頁(yè)

8個(gè)非常個(gè)性化的CSS3單/復(fù)選框

高勁

       單選框和復(fù)選框在網(wǎng)頁(yè)表單中應(yīng)用十分廣泛,但是瀏覽器默認(rèn)自帶的單選框和復(fù)選框樣式不僅不統(tǒng)一,而且大多都比較簡(jiǎn)單丑陋。本文給大家介紹了一些基于CSS3的個(gè)性化單選框和復(fù)選框,一些選中動(dòng)畫(huà)是基于jQuery的,你可以挑選喜歡的單選框和復(fù)選框應(yīng)用到自己的網(wǎng)頁(yè)中去,非常方便。

         1、jQuery超級(jí)個(gè)性化的單線框和復(fù)選框

       今天要分享的也是一個(gè)非常個(gè)性化的單選框和復(fù)選框插件,顏色你可以自己定義。

      56a706650001cc8206100418.png

                   在線演示  源碼下載

         2、CSS3漂亮的自定義Checkbox復(fù)選框 9款迷人樣式

       今天我們來(lái)分享一款9款樣式迷人的CSS3漂亮的自定義checkbox復(fù)選框。這幾款復(fù)選框樣式很豐富,使用起來(lái)也比較方便。


56a70c3e0001aede05880266.jpg

                    在線演示  源碼下載

        3、CSS3自定義美化復(fù)選框Checkbox組合

       今天我們要來(lái)分享一組非常漂亮的CSS3自定義復(fù)選框checkbox,每一個(gè)checkbox都有其各自的特點(diǎn)。有幾款checkbox在選中的情況下還會(huì)出現(xiàn)動(dòng)畫(huà)效果,非常不錯(cuò)的CSS3自定義美化checkbox組合。

56a70cbb00019efb06100379.png

                在線演示   源碼下載

       4、jQuery實(shí)現(xiàn)美化版的單選框和復(fù)選框

       今天這款是利用jQuery實(shí)現(xiàn)的美化版單選框和復(fù)選框,樣式風(fēng)格非常簡(jiǎn)潔清爽,是一款很不錯(cuò)的jQuery按鈕插件。

56a70e01000161c706100252.png

                          在線演示  源碼下載

       5、純CSS3 3D按鈕 按鈕酷似牛奶般剔透

       CSS3按鈕一般都可以設(shè)計(jì)的非常漂亮,利用投影、漸變等CSS3屬性可以把按鈕渲染的十分動(dòng)感。今天分享的這款CSS3按鈕外觀非常特別,它看上去酷似晶瑩剔透的牛奶,而且在點(diǎn)擊按鈕時(shí)出現(xiàn)3D效果的動(dòng)畫(huà),按鈕按下時(shí),按鈕會(huì)輕輕的彈動(dòng)一下,非常逼真。

56a70e1000013a8d05880281.jpg

                 在線演示  源碼下載

        6、HTML5/CSS3開(kāi)關(guān)按鈕 立體3D按鈕

        今天介紹的這款HTML5/CSS3開(kāi)關(guān)切換按鈕是利用純CSS3的,代碼非常簡(jiǎn)單,3D效果也還可以。

56a70e1b0001142f08000557.gif

                  在下演示  源碼下載

         7、CSS3自定義發(fā)光Radiobox單選框

       今天我們要來(lái)分享一款CSS3實(shí)現(xiàn)的自定義發(fā)光radiobox單選框插件,該radiobox選中時(shí)也有滑塊的動(dòng)畫(huà)。

56a70e2d0001b19b05880259.jpg

                   在線演示  源碼下載

      8、CSS3實(shí)現(xiàn)自定義Checkbox動(dòng)畫(huà)

      今天我們要再來(lái)分享一款CSS3自定義checkbox,而且這款checkbox還帶有動(dòng)畫(huà)效果,當(dāng)你選中checkbox的時(shí)候,會(huì)以動(dòng)畫(huà)的方式打上一個(gè)大大的勾。

56a70e350001219c05880215.jpg 

                   在線演示  源碼下載



         以上就是8個(gè)非常個(gè)性化的CSS3單/復(fù)選框,希望對(duì)你有所幫助。

       本文鏈接:http://www.codeceo.com/article/10-personal-css3-radiobox-checkbox.html







20個(gè)最常用的javascript方法函數(shù)收集

高勁

     收集了一些比較常用的JavaScript函數(shù)

     1、字符串長(zhǎng)度截取函數(shù)

     function cutstr(str,len){

           var temp,icount = 0,patrn = /[^x00-\xff]/,strre=" ";

           for(var i= 0;i<str.length;i++) {

                if (icount<len-1){

                    temp =str.substr(i,1);

                    if (patrn.exec(temp)==null){

                       icount =icount+1    

                  }else {

                     icount =icount+2

                 }

                    strre+=temp

              } else {

                   break;

               }

          }

           returen strre+"...";

      }

     2、替換全部

     String.prototype.replaceAll = function(s1,s2) {

            return this.replace(new RegExp(s1,"gm"),s2);

     }

     3、清除空格

     function trim = function() {

            var reExtraSpace = /^\s*(.*?)\s+$/;

            return this.replace(reExtraSpace,"$1");

     }

     4、清除左空格/右空格

      function  ltrim(s){

            return s.replace(/^(\s*| *)/,"");

      }

     function rtrim(s) {

           return s.replace(/(\s*| *)$/,"");

      }

      5、判斷是否以某個(gè)字符串開(kāi)頭

      String.prototype.startWith = function(s) {

            return this.indexOf(s)==0;

      }

       6、判斷是否以某個(gè)字符串結(jié)束 

      String.prototype.endWith = function(s) {

            var d = this.length - s.length;

            return (d >= 0 && this.lastIndexOf(s)==d);

        }

        7、轉(zhuǎn)義HTML標(biāo)簽

       function HtmlEncode(text) {

             return text.replace(/&/g,'&').replace(/\"/g,' " ').replace(/</g,'<').replace(/>/g,'>');

       }

        8、時(shí)間日期格式轉(zhuǎn)換

       Date.prototype.Format = function(formatStr){

             var str = formatStr;

             var week =['日','一','二','三','四','五','六'];

             str = str.replace(/yyyy|YYYY/,this.getFullYear());

             str = str.replace(/yy|YY,(this.getYear()%100)>9?(this.getYear()%100).toString():'0'+(this.getYear()%100));

             str = str.replace(/MM/,(this.getMonth()+1)>9?(this.getMonth()+1).toString():'0'+this.getMonth()+1));

             str = str.replace(/w|W/g,week[(this.getDay()];

             str = str.replace(/dd|DD/,(this.getDate()>9?this.getDate().toString():'0'+this.getDate());

             str = str.replace(/d|D/g,this.getDate());

             str = str.replace(/hh|HH/,this.getHours()>9?(this.getHours().toString():'0'+this.getHours());

             str = str.replace(/h|H/g,this.getHours());

             str = str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString():'0'+this.getMinutes());

             str = str.replace(/m/g,this.getMinutes());

             str = str.replace(/ss|SS/,this.getSeconds()>9?this.getSeconds().toString():'0'+this.getgetSeconds());

             str = str.replace(/s|S/g,this.getSeconds());

            return str;

        }

        9、判斷是否為數(shù)字類型

        function isDigit (value){

             var patrn = /^[0-9]*$/;

             if (patrn.exec(value) == null || value=="" ) {

                   return false;  

             } else {

                  return true;

            }

        }

       10、設(shè)置cookie

       function setCookie(name,value,Hours){

              var d =new Date();

              var offset =8;

              var utc = d.getTime()+(d.getTimezoneOffset()*60000);

              var nd = utc+(3600000*offset);

              var exp = new Date(nd);

              exp.setTime(exp.getTime()+Hours*60*60*1000);

              document.cookie = name+"="+escape(value)+";domain=360doc.com;"

       }

       獲取cookie值

       function getCookie(name){

             var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));

             if (arr!=null){

               return unescape(arr[2]);

            }else {

             return null;

             }

       }

      11、加入收藏夾

       function AddFavorite(sURL,sTitle) {

            try{

               window.external.addFavorite(sURL,sTitle);

         }catch(e){

           try{

               window.sidebar.addPanel(sTitle,sURL,"");

            }catch(e){

                  alert("加入收藏夾失敗,請(qǐng)使用Ctrl+D進(jìn)行添加");

             }

          }

       }

      12、設(shè)為首頁(yè)

      function setHomepage(){

             if(document.all){

               document.body.style.behavior='url(#default#homepage)';

               document.body.setHomePage('http://w3cboy.com')

         }else if (window.sidebar){

              if(window.netscape){

                 try{

                    netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")

              }catch(e){

                 alert("該操作被瀏覽器拒絕,如果想啟用該功能,請(qǐng)?jiān)诘刂窓趦?nèi)輸入about:config,然后將

                 項(xiàng) signed.applets.codebase_principal_support 值該為true");

             }

           }

               var prefs = Components.classes['@mozilla.org/preferences- service;1'].getService(Components.interfaces.nsIPrefBranch); 

               prefs.setCharPref('browser.startup.homepage', 'http://w3cboy.com');

         }

       }

       13、加載樣式文件

             function LoadStyle(url) {

                 try { 

                     document.createStyleSheet(url); 

                    } 

                   catch(e) { 

                      var cssLink = document.createElement('link');

                      cssLink.rel = 'stylesheet'; 

                      cssLink.type = 'text/css'; 

                      cssLink.href = url; 

                     var head = document.getElementsByTagName('head')[0]; 

                     head.appendChild(cssLink);

                    } 

                 }

            14、返回腳本內(nèi)容

            function evalscript(s) { 

                   if(s.indexOf('<script') == -1) return s; 

                   var p = /<script[^\>]*?>([^\x00]*?)<\/script>/ig;

                   var arr = []; 

                   while(arr = p.exec(s)) { 

                   var p1 = /<script[^\>]*?src=\"([^\>]*?)\"[^\>]*?(reload=\"1\")?(?:charset=\"([\w\-]+?)\")?><\/script>/i; 

                   var arr1 = []; 

                   arr1 = p1.exec(arr[0]); 

                   if(arr1) { 

                         appendscript(arr1[1], '', arr1[2], arr1[3]);

                    } else { 

                         p1 = /<script(.*?)>([^\x00]+?)<\/script>/i; 

                         arr1 = p1.exec(arr[0]); 

                         appendscript('', arr1[2], arr1[1].indexOf('reload=') != -1);

                          } 

                       } 

                      return s; 

                  }

            15、清除腳本內(nèi)容

             function stripscript(s) { 

                      return s.replace(/<script.*?>.*?<\/script>/ig, ''); 

              }

              16、動(dòng)態(tài)加載腳本文件

             function appendscript(src, text, reload, charset) {

                      var id = hash(src + text); 

                      if(!reload && in_array(id, evalscripts)) return; 

                      if(reload && $(id)) { $(id).parentNode.removeChild($(id));
                }

                evalscripts.push(id);

                var scriptNode = document.createElement("script"); 

                scriptNode.type = "text/javascript"; 

                scriptNode.id = id; 

                scriptNode.charset = charset ? charset : (BROWSER.firefox ? document.characterSet : document.charset); 

               try { 

                    if(src) { 

                           scriptNode.src = src; 

                           scriptNode.onloadDone = false; 

                           scriptNode.onload = function () { 

                                       scriptNode.onloadDone = true;

                                      JSLOADED[src] = 1; 

                            }; 

                         scriptNode.onreadystatechange = function () {

                         if((scriptNode.readyState == 'loaded' || scriptNode.readyState == 'complete') && !scriptNode.onloadDone) { 

                                   scriptNode.onloadDone = true; JSLOADED[src] = 1; 

                                  } 

                               }; 

                          } else if(text){ 

                                scriptNode.text = text; 

                         } 

                         document.getElementsByTagName('head')[0].appendChild(scriptNode); 

                     } catch(e) {} 

                   }

           17、返回按ID檢索的元素對(duì)象
           
function $(id) {

                    return !id ? null : document.getElementById(id); 

             }

           18、跨瀏覽器綁定事件

           function addEventSamp(obj,evt,fn){ 

                    if(!oTarget){

                           return;

                     } if (obj.addEventListener) { 

                              obj.addEventListener(evt, fn, false);

                         }else if(obj.attachEvent){ 

                             obj.attachEvent('on'+evt,fn); 

                           }else{

                               oTarget["on" + sEvtType] = fn; 

                            }

                    }

             19、跨瀏覽器刪除事件

                function delEvt(obj,evt,fn){ if(!obj){

                        return;

               } if(obj.addEventListener){

                      obj.addEventListener(evt,fn,false); 

                 }else if(oTarget.attachEvent){ 

                    obj.attachEvent("on" + evt,fn); 

                 }else{ 

                     obj["on" + evt] = fn; 

                  } 

               }

            20、元素添加on方法

            Element.prototype.on = Element.prototype.addEventListener;

             NodeList.prototype.on = function (event, fn) {、

                     []['forEach'].call(this, function (el) { 

                           el.on(event, fn); 

                      });

                      return this; 

               };






一份最詳盡全面的UI界面切圖命名規(guī)范

高勁

      關(guān)于UI界面的切圖命名規(guī)范,U妹覺(jué)得關(guān)鍵是在于團(tuán)隊(duì)能夠有一個(gè)統(tǒng)一的規(guī)則,所以這里只介紹一種通用的命名規(guī)則,當(dāng)然大家也可以根據(jù)自己的實(shí)際情況去制定,這里只提供一種方法與思路,僅供參考。

      規(guī)范的命名方式可以提高開(kāi)發(fā)人員的的開(kāi)發(fā)效率和整個(gè)開(kāi)發(fā)團(tuán)隊(duì)的友好合作。U妹覺(jué)得要盡可能用最少的字符而又能完整的表達(dá)標(biāo)識(shí)符的含義。

      一、切圖命名英文縮寫(xiě)的3個(gè)原則

      1.較短的單詞可以通過(guò)去掉“元音”形成縮寫(xiě)

       2.較長(zhǎng)的單詞可去單詞的頭部幾個(gè)字母形成縮寫(xiě)

       3.還有一些約定成俗的英文單詞縮寫(xiě)

      二、命名規(guī)則

          模塊_類別_功能_狀態(tài).png

        U妹舉個(gè)例子:nav_button_search_default.png

        釋義為:導(dǎo)航_按鈕_搜索_默認(rèn).png

     啟動(dòng)界面

        啟動(dòng)圖片 default.png

         啟動(dòng)logo default.png

         如:default.png\defoult@2x.png\default-568@2x.png

  登錄界面

   登錄背景    login_bg.png

         登錄logo   login_logo.png 

         輸入框       login_input.png 

         輸入框選中狀態(tài)       login_input_pre.png

         登錄按鈕       login_btn.png

         登錄按鈕選中狀態(tài)  login_btn_pre.png

     導(dǎo)航欄按鈕 (nav) 命名 

         nav_功能描述.png

         如:nav_menu.png\nav_menu_pre.png(同按鈕選中前后兩種狀態(tài)命名 )

     按鈕命名(btn可重復(fù)使用按鈕)

        一般   normal   btn_xxx_normal.png

        點(diǎn)擊  highlight btn_xxx_highlight.png

        不能點(diǎn)擊  disabled  btn_xxx_disable.png

        按下  pressed btn_xxx_pressed.png

        選中  selected btn_xxx_selected.png 做為復(fù)數(shù)選擇出現(xiàn)機(jī)會(huì)不高

        btn_功能屬性或色彩均可.png

        如:btn_blue.png\btn_blue.9.png   藍(lán)色按鈕

    其他命名

       圖標(biāo) icon_xxx.png

       圖片 pic_xxx.png或是img_xxx.png

       照片 pho_xxx.png

       左側(cè)導(dǎo)航 命名 leftbar_功能描述.png

       如:leftbar_info.png\leftbar_info_pre.png   個(gè)人中心 

   底部選項(xiàng)卡按鈕(TabBar)

      命名 Tab_功能描述.png  

       如:tab_set.Png\nav_set_pre.png  設(shè)置 

   主頁(yè)命名

      命名 home_功能屬性+描述.png

       如:home_menu_recommended.png  熱門(mén)推薦 

       ps:描述可用英文或拼間開(kāi)頭字母組合等

   列表頁(yè)命名規(guī)則

      命名 List_功能屬性+描述.png

       如:list_menu_collect.png  列表頁(yè)收藏按鈕

   UI文件命名規(guī)范常用詞

      常用狀態(tài) 

       正常 normat

       按下 pressed 

       選中 selected

       禁用 disabled

       已訪問(wèn) visited

       懸停 hover

    控件&部件

       控件:較獨(dú)立的可操作界面元素 

        部件:描述屬于某控件一部分

        按鈕(可點(diǎn)) Btn

       圖標(biāo) Icon不可點(diǎn)、非點(diǎn)擊主體、圖案部件

       標(biāo)記 Sign  列表

       List  菜單 Menu 

       視圖 View

       面板 Panel

       薄板 Sheet

       底部彈出菜單 欄 Bar 

       狀態(tài)欄 StatusBar

       導(dǎo)航欄 NaviBar

       標(biāo)簽欄  TabBar

       工具欄 ToolBar

       切換開(kāi)關(guān) Switch

       滑動(dòng)器 Slider

       單選框 Radio

       復(fù)選框 CheckBox

       背景 Bg

       蒙版、遮罩 Mask

       收藏 collect

       評(píng)論 comment

       廣告 ad

       時(shí)間 time

       音頻 audio

       視頻 viedio

       不喜歡 dilike

       用戶 user

       首頁(yè) hone

       排名 ranked

       搜索 search

       標(biāo)志 logo

       進(jìn)度條 progress bar

       默認(rèn)圖片 def_

       分隔圖片 seg_

       選擇 sel_

       關(guān)閉 close

       返回 back

       編輯 eidt

       內(nèi)容 content

       左  中  右 left  center   right

       提示信息 msg

       個(gè)人資料 porfile

       彈出 pop

       刪除 delete

       下載 download

       登錄 login

       注冊(cè) regsiter

       標(biāo)題title

       注釋 note

       鏈接 link

       圖片 image(img)

       刷新 refresh

   常用補(bǔ)充描述

      頂部 Top 

       中間 Middle 

       底部 Bottom 

       第一 First 

       第二 Second

       最后 Last

       頁(yè)頭 Header

       頁(yè)腳  Footer 







 







      


 

      



如何成為前端開(kāi)發(fā)高手?

高勁

      web前端開(kāi)發(fā)工程是是一個(gè)很新的職業(yè),在國(guó)內(nèi)乃至國(guó)際上真正開(kāi)始受到重視的時(shí)間不超過(guò)五年。web前端開(kāi)發(fā),是從網(wǎng)頁(yè)制作演變而來(lái)的,名稱上有很明顯的時(shí)代特征。隨著人們對(duì)用戶體驗(yàn)的要求越來(lái)越高,前端開(kāi)發(fā)的技術(shù)難度越來(lái)越大,web前端開(kāi)發(fā)工程師這一職業(yè)終于從設(shè)計(jì)和制作不分的局面中獨(dú)立出來(lái)。

       早期的前端其實(shí)就是table布局,后來(lái)發(fā)展到所謂的div+css網(wǎng)站重構(gòu),再到現(xiàn)在的讓人眼花繚亂的各種各樣的新技術(shù),web前端技術(shù)發(fā)展是非常快速的,因此選擇了前端這個(gè)行業(yè)就意味著不停的學(xué)習(xí)吧。讓我們先看看張克軍繪制的前端知識(shí)體系結(jié)構(gòu):

      前端開(kāi)發(fā)的核心是HTML+CSS+JavaScript。本質(zhì)上他們構(gòu)成了一個(gè)MVC框架,即HTML作為信息模型(Model),css控制樣式(View),JavaScript負(fù)責(zé)調(diào)度數(shù)據(jù)和實(shí)現(xiàn)某種展現(xiàn)邏輯(Controller)。

      HTML

      1.標(biāo)簽的分類,

      2.標(biāo)簽表示一個(gè)元素

      3.按性質(zhì)分類:block-level 和 inline-level

      4.按語(yǔ)義分類:

            Headings:h1,h2,h3,h4,h5,h6

            paragraphs:p

            Text formatting:em,strong,sub,del,ins,small

            Lists:ul,li,ol,dl,dt,dd

            Tables:table,thead,tbody,tr,th,td

            Forms and input: form,input,select,textarea

            Others:div,span,a,img,<!---->

            HTML5:header,footer,article,section

       XHTML

       XHTML于2000年的1月26日成為W3C標(biāo)準(zhǔn)。W3C將XHTML定義為的HTML版本,XHTML將逐漸取代HTML。XHTML是通過(guò)把HTML和XML各自的長(zhǎng)處加以結(jié)合形成的。XHTML語(yǔ)法規(guī)則如下:

      屬性名和標(biāo)簽名稱必須小寫(xiě)

      屬性值必須加引號(hào)

      屬性不能簡(jiǎn)寫(xiě)

      用ID屬性代替name屬性

      XHTML元素必須被正確地嵌套

      XHTML元素必須被關(guān)閉

     標(biāo)簽語(yǔ)義化

     為表達(dá)語(yǔ)義而標(biāo)記文檔,而不是為了樣式,結(jié)構(gòu)良好的文檔可以向?yàn)g覽器傳達(dá)盡可能多的語(yǔ)義,不論是瀏覽器位于掌上電腦還是時(shí)髦的桌面圖形瀏覽器。結(jié)構(gòu)良好的文檔都能向用戶傳達(dá)可視化的語(yǔ)義即使是在老的瀏覽器,或是在被用戶關(guān)閉了CSS的現(xiàn)代瀏覽器中。同時(shí)結(jié)構(gòu)良好的HTML代碼也有助于搜索引擎索引你的網(wǎng)站。

      不要使用table布局,table是用來(lái)表格顯示的。

      不要到處濫用div標(biāo)簽,div是用來(lái)分塊用的。

      不要使用樣式標(biāo)簽,如font,center,big,small,b,i,樣式可以用CSS來(lái)控制,b和i可以用strong和em來(lái)代替。

      不要使用換行標(biāo)簽<br />和空格來(lái)控制樣式,請(qǐng)用CSS。

      盡量不要使用內(nèi)聯(lián)CSS

      CSS

      1.css基礎(chǔ)知識(shí)

        層疊和繼承

        優(yōu)先級(jí)

        盒模型

        定位

        浮動(dòng)

     2.css進(jìn)階

        css sprite

        瀏覽器兼容性

        IE haslayout和block format content

        css frameworks 

        css3

        css性能優(yōu)化

        less and sass

        css sprite主要用于前端性能優(yōu)化的一種技術(shù),原理是通過(guò)多張背景圖合成在一張圖片上從而減少http請(qǐng)求,加快載入速度。

        瀏覽器兼容性

        絕大部分情況下,我們需要考慮瀏覽器的兼容性,目前正在使用的瀏覽器版本非常多,IE6,IE7,IE8,IE9,IE10,Chrome,F(xiàn)irefox,Safari。

        IE haslayout和block format content

        IE haslayout是一個(gè)Internet explore for Windows的私有概念,他決定了一個(gè)元素如何顯示以及約束其包含的內(nèi)容、如何與其他元素交互和建立聯(lián)系、如何響應(yīng)和傳遞應(yīng)用程序事件、用戶事件等。而有些HTML元素則默認(rèn)就有l(wèi)ayout。目前只有IE6和IE7有這個(gè)概念。BFC是W3C css2.1規(guī)范中的一個(gè)概念,他決定了元素如何應(yīng)對(duì)其內(nèi)容進(jìn)行定位。以及與其他元素的關(guān)系和相互作用。這個(gè)其實(shí)和瀏覽器的兼容性有關(guān),因?yàn)闆Q大部分的兼容性問(wèn)題都是他們引起的。參考:css BFC和IE haslayout介紹。

        css framework

        css框架是一系列css文件的集合體,包含了基本的元素重置,頁(yè)面排版、網(wǎng)格布局、表單樣式,通用規(guī)則等代碼塊,用于簡(jiǎn)化web前端開(kāi)發(fā)的工作,提高工作效率。目前常見(jiàn)框架有:

       960 grid system

       blueprint css

       bluetrip

       minimum page

       還是一個(gè)比較出名的和特殊的框架是Twitter的bootstrap,bootstrap是快速開(kāi)發(fā)web應(yīng)用程序前端的工具包。它是一個(gè)css和HTML的集合,它使用了的瀏覽器技術(shù),給你的web開(kāi)發(fā)提供了時(shí)尚的版式,表單,buttons,表格,網(wǎng)格系統(tǒng)等等。它是基于less開(kāi)發(fā)的,不支持IE6,在IE7和IE8里效果也不咋地。

       css3

       雖然css3還沒(méi)有正式成為標(biāo)準(zhǔn),但是IE9+,Chrome,F(xiàn)irefox等現(xiàn)代瀏覽器都支持css3。css3提供了好多以前需要用JavaScript和切圖才能搞定的功能,目前主要功能更有:圓角、多背景、@font-face、動(dòng)畫(huà)與漸變、漸變色、box陰影、RGBa-加入透明色、文字陰影。

       css性能優(yōu)化

       css代碼是控制頁(yè)面顯示樣式與效果的最直接“工具”  ,但是在性能調(diào)優(yōu)時(shí)他們通常會(huì)被web開(kāi)發(fā)工程師所忽略,而事實(shí)上不規(guī)范的css會(huì)對(duì)頁(yè)面渲染的效率有嚴(yán)重影響,尤其是對(duì)于結(jié)構(gòu)復(fù)雜的web2.0頁(yè)面,這種影響更是不可磨滅的。所以,寫(xiě)出規(guī)范的、高性能的css代碼會(huì)極大地提高應(yīng)用程序的效率。

       less and sass

       less和sass都是css預(yù)處理器,用來(lái)為css增加一些編輯的特性,無(wú)需考慮瀏覽器的兼容問(wèn)題,例如你可以在css中使用變量、簡(jiǎn)單的程序邏輯、函數(shù)等等在編程語(yǔ)言中的一些基本技巧,可以讓你的css更加簡(jiǎn)潔。適應(yīng)性更強(qiáng),代碼更直觀等諸多好處。

        sass基于ruby開(kāi)發(fā),less既可以在客戶端運(yùn)行,也可以借助node.js或者rhino在服務(wù)器端運(yùn)行。

    

你不知道的JavaScript:有趣的setTimeout

高勁

     話不多說(shuō),先上代碼

     for(var j=0;j<10;J++){

         setTimeout(function(){console.log(j);},5000)

     }

     看到這三行代碼,你也許會(huì)不耐煩道:又要講閉包?要吐槽了好么?別急,讓我們先來(lái)思考一下,這段代碼在瀏覽器中的執(zhí)行結(jié)果是什么?

     <!-- more -->

     甲:順序打印0到9?

     乙:這題我見(jiàn)過(guò),打印十個(gè)10!

     哪個(gè)答案正確?

     執(zhí)行結(jié)果顯示,瀏覽器打印出十個(gè)10,貌似乙對(duì)了,但是如果你足夠細(xì)心,你會(huì)發(fā)現(xiàn)幾個(gè)問(wèn)題:為什么會(huì)循環(huán)打印十個(gè)10,而不是0到9?

     從結(jié)果來(lái)看,for循環(huán)執(zhí)行完跳出之后,才開(kāi)始執(zhí)行setTimeout(所以j才等于10),為什么不是每次迭代都執(zhí)行一次setTimeout呢?

1、為什么會(huì)循環(huán)打印十個(gè)10?

      許多人習(xí)慣用第二個(gè)問(wèn)題中的執(zhí)行結(jié)果來(lái)回答這個(gè)問(wèn)題:“for循環(huán)執(zhí)行完畢跳出之后才開(kāi)始執(zhí)行setTimeout,所以才打印了十個(gè)10”。這樣的答案,只能說(shuō)是既應(yīng)付了自己,又應(yīng)付了別人。其實(shí),要解答第一個(gè)問(wèn)題,首先要解答第二個(gè)問(wèn)題。

2、為什么不是每一次迭代都執(zhí)行一次setTimeout?

     大家都知道,JavaScript在ES6出現(xiàn)以前,是沒(méi)有塊狀作用域的,這就意味著,在for循環(huán)中用var定義的變量j,其實(shí)是屬于全局的,那其實(shí)整個(gè)全局作用域中只有一個(gè)j,每次for循環(huán)都是更新這個(gè)j。

       那么現(xiàn)在的關(guān)鍵問(wèn)題在于,為什么整個(gè)for循環(huán)會(huì)先于setTimeout執(zhí)行,而不是我們正常理解的,一次迭代執(zhí)行一次。這就涉及到了JavaScript的核心特性:?jiǎn)尉€程。

       JavaScript設(shè)計(jì)的初衷,是瀏覽器用來(lái)與用戶進(jìn)行交互和DOM操作的,這就決定了它必須是單線程的。設(shè)想JavaScript同時(shí)有兩個(gè)線程,一個(gè)線程在DOM節(jié)點(diǎn)內(nèi)添加內(nèi)容,一個(gè)線程刪除該節(jié)點(diǎn),瀏覽器就會(huì)出現(xiàn)混亂。所以,為了避免復(fù)雜性,從一誕生,JavaScript就是單線程,這已經(jīng)成為了這門(mén)語(yǔ)言的核心特征,將來(lái)也不會(huì)改變。

      單線程就意味著,所有任務(wù)需要排隊(duì),前一個(gè)任務(wù)結(jié)束,才會(huì)執(zhí)行下一個(gè)任務(wù),如果前一個(gè)任務(wù)耗時(shí)很長(zhǎng),后一個(gè)任務(wù)就不得不一直等著。

      為了優(yōu)化單線程的性能,JavaScript將任務(wù)分成兩種,一種是同步任務(wù)(synchronous),另一種是異步任務(wù)(asynchronous)。同步任務(wù)指的是,在主線程上排隊(duì)執(zhí)行的任務(wù),只有前一個(gè)任務(wù)執(zhí)行完畢,才能執(zhí)行后一個(gè)任務(wù);異步任務(wù)指的是,不進(jìn)入主線程,而進(jìn)入“任務(wù)隊(duì)列(task queue)”的任務(wù),只用主線程中的同步任務(wù)執(zhí)行完畢,異步任務(wù)才會(huì)進(jìn)入執(zhí)行隊(duì)列執(zhí)行。只要主線程空了,就會(huì)去讀取“任務(wù)隊(duì)列”,這就是JavaScript的運(yùn)作機(jī)制。這個(gè)過(guò)程會(huì)不斷重復(fù)。

       而setTimeout就被JavaScript定義為異步任務(wù)。每次for循環(huán)的迭代,都將setTimeout中的回調(diào)函數(shù)加入任務(wù)隊(duì)列等待執(zhí)行。也就是說(shuō),只有同步任務(wù)中的for循環(huán)完全結(jié)束,主線程中才會(huì)去任務(wù)列表中找到尚未執(zhí)行的十個(gè)setTimeout(十次迭代)回調(diào)函數(shù)并順序執(zhí)行(先進(jìn)先出)。而此時(shí),j已經(jīng)經(jīng)過(guò)循環(huán)結(jié)束變成了10,所以此時(shí)主線程執(zhí)行的,是十個(gè)一模一樣的打印i的回調(diào)函數(shù),即打印十個(gè)10,。至此完美回答了第一和第二個(gè)問(wèn)題,文章開(kāi)頭的代碼與下面的代碼其實(shí)是等價(jià)的:

       for(var i=0;i<10;i++){

            setTimeout(console.log(i),5000);

            setTimeout(console.log(i),5000);

            setTimeout(console.log(i),5000);

            setTimeout(console.log(i),5000);

            setTimeout(console.log(i),5000);

            setTimeout(console.log(i),5000);

            setTimeout(console.log(i),5000);

            setTimeout(console.log(i),5000);

            setTimeout(console.log(i),5000);

            setTimeout(console.log(i),5000);

}

       小小的一個(gè)setTimeout,牽扯出了很多JavaScript的深層次問(wèn)題,可見(jiàn)JavaScript還有許多地方是值得深入探究的。



如何拆解復(fù)雜問(wèn)題?今天這3個(gè)思路來(lái)幫你!

高勁

阿里巴巴_BBC_UED 王萌:無(wú)論你是設(shè)計(jì)、用研還是產(chǎn)品,如何把復(fù)雜籠統(tǒng)的問(wèn)題拆解成一個(gè)個(gè)小的、可執(zhí)行開(kāi)展的問(wèn)題,都是一項(xiàng)必不可少的能力,今天阿里這篇好文幫你迅速掌握起來(lái)!

引言:

在一秒鐘內(nèi)看到本質(zhì)的人和花半輩子也看不清一件事本質(zhì)的人,自然是不一樣人生。——電影《教父》 本文沒(méi)辦法幫你一秒鐘看清人/事,而且也不奢望能做到,但希望能和大家一起朝這個(gè)方向做些努力。

 

消失的界面!未來(lái)的設(shè)計(jì)師該從這四方面提升競(jìng)爭(zhēng)力

高勁

future-designers-competitiveness-1

編者按:可能有敏銳的同學(xué)已經(jīng)意識(shí)到了,現(xiàn)在很多公司招人,職位都叫產(chǎn)品設(shè)計(jì)師,簡(jiǎn)言之就是既要會(huì)界面設(shè)計(jì),更要懂交互、產(chǎn)品等,這也給一心鉆研精美圖標(biāo)和酷炫動(dòng)效的同學(xué)提個(gè)醒,未來(lái)UI設(shè)計(jì)師與交互的界限會(huì)越來(lái)越模糊,不想提前退休,可別光顧著折騰軟件,好好讀下今天這4個(gè)建議。

用戶為王!揭秘三個(gè)迅速提高用戶體驗(yàn)的魔鬼細(xì)節(jié)

高勁

3-detail-improve-user-experience-1

編者按:今天這篇推薦一下,聊的是用戶體驗(yàn)中最讓人揪心的三個(gè)流程:授權(quán)征詢、注冊(cè)與加載等待。作者總結(jié)了不少實(shí)用的方法,能夠迅速地提高這三個(gè)方面的體驗(yàn),建議學(xué)習(xí) >>>

從“一問(wèn)一答”到“聽(tīng)講故事”的用戶訪談技巧

高勁

Lina:訪談是定性研究中最基礎(chǔ)的方法。相對(duì)于分析客觀數(shù)據(jù)的定量研究方法,不論是一對(duì)一的深度訪問(wèn)還是一對(duì)多的座談會(huì),都會(huì)產(chǎn)生研究人員與用戶的互動(dòng),而互動(dòng)關(guān)系會(huì)極大影響到訪談的質(zhì)量和效果。

很多人認(rèn)為訪談就是“問(wèn)答”,研究人員按照研究目的設(shè)定一系列的問(wèn)題,通過(guò)詢問(wèn)用戶,獲得相應(yīng)的答案,看上去似乎比定量研究簡(jiǎn)單許多。然而事實(shí)上并非如此。訪談是需要對(duì)用戶的態(tài)度及行為做研究分析,而出于每個(gè)人的自我防御心理,用戶很難將自己真實(shí)的想法告訴研究人員。如何獲得用戶真實(shí)的情感態(tài)度,是非常考驗(yàn)每一位研究者研究技術(shù)的地方。下面就結(jié)合之前的項(xiàng)目經(jīng)歷,跟大家探討一下訪談技巧的問(wèn)題。

濃縮干貨!成就優(yōu)質(zhì)用戶體驗(yàn)的4個(gè)必要元素

高勁

4-essential-elements-successful-ux-1

互聯(lián)網(wǎng)時(shí)代的成功故事里,機(jī)遇和運(yùn)氣是增添它們傳奇色彩的決定性因素。一個(gè)零售企業(yè)適逢互聯(lián)網(wǎng)萌芽,在90年代這個(gè)網(wǎng)絡(luò)拓荒期逐漸膨脹成為響徹北美的互聯(lián)網(wǎng)巨頭,這是亞馬遜的故事。而Facebook的開(kāi)頭則更有意思一些,校園創(chuàng)業(yè),友情與背叛,在移動(dòng)端設(shè)備過(guò)度階段引領(lǐng)社交網(wǎng)絡(luò)變革,成就了另外一個(gè)走上互聯(lián)網(wǎng)時(shí)代的年輕富豪。

日歷

鏈接

個(gè)人資料

存檔

嫩草影院久久99_老司机午夜网站国内精品久久久久久久久_久久夜色精品国产_国产一级做a爰片久久毛片
<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

        • 一区二区免费在线观看| 一二三四社区欧美黄| 国产精品久久久久999| 欧美日韩麻豆| 欧美日韩在线一区二区| 国产精品免费看片| 国产亚洲精品美女| 狠狠干成人综合网| 最新国产精品拍自在线播放| 亚洲精品黄色| 中文国产一区| 午夜精品亚洲一区二区三区嫩草| 欧美一区中文字幕| 久久夜色精品国产噜噜av| 欧美成ee人免费视频| 亚洲激情在线播放| 午夜精品亚洲| 亚洲美女福利视频网站| 亚洲一区国产视频| 久久久久久久999| 欧美freesex交免费视频| 欧美区亚洲区| 国产女精品视频网站免费| 国产一区在线播放| 日韩视频―中文字幕| 亚洲欧美日韩国产中文在线| 麻豆精品在线观看| 亚洲伦理在线观看| 欧美韩国日本一区| 国产一区欧美| 久久激情视频久久| 欧美激情一区| 中文在线资源观看网站视频免费不卡 | 欧美母乳在线| 亚洲伦理在线| 久久黄色影院| 午夜精品在线看| 欧美极品欧美精品欧美视频| 国产亚洲精品aa午夜观看| 亚洲欧美一区二区三区在线| 在线亚洲精品| 国产精品国产三级欧美二区| 亚洲制服丝袜在线| 欧美激情小视频| 免费观看日韩| 亚洲精品一区二区三区99| 亚洲激情影视| 欧美日韩国产精品一区二区亚洲| 国产永久精品大片wwwapp| 久久免费黄色| 亚洲午夜一区二区| 欧美激情中文字幕一区二区| 日韩一级二级三级| 99国产精品久久久久久久| 免费黄网站欧美| 亚洲精品自在在线观看| 亚洲日本欧美| 老司机午夜精品| 国产午夜一区二区三区| 亚洲欧美精品在线观看| 亚洲欧美一区二区视频| 欧美午夜剧场| 一本大道久久a久久精品综合| 99精品国产99久久久久久福利| 国产精品久久久| 久久久久久电影| 亚洲欧美国产视频| 国产精品扒开腿爽爽爽视频| 欧美一区二区三区日韩| 久久精品国产亚洲a| 国产精品有限公司| 午夜精品成人在线| 欧美一区二区三区在线观看视频| 国产精品老牛| 久久久亚洲一区| 欧美mv日韩mv国产网站| 亚洲视频在线看| 性8sex亚洲区入口| 亚洲女人天堂av| 亚洲宅男天堂在线观看无病毒| 亚洲欧美日韩第一区| 尤物精品在线| 久久免费一区| 欧美成人第一页| 最新成人在线| 中文亚洲免费| 加勒比av一区二区| 开心色5月久久精品| 欧美精品福利| 欧美怡红院视频| 蜜臀av一级做a爰片久久| 亚洲第一久久影院| 免费看黄裸体一级大秀欧美| 久久一区二区三区av| 在线播放日韩专区| 99re在线精品| 欧美小视频在线观看| 久久狠狠婷婷| 欧美精品一区二区久久婷婷| 久久gogo国模裸体人体| 欧美亚洲自偷自偷| 亚洲精品乱码| 亚洲欧美综合| 99国产精品99久久久久久| 欧美亚洲一区三区| 99ri日韩精品视频| 久久精品国产亚洲a| 亚洲一区自拍| 久久夜色精品亚洲噜噜国产mv| 亚洲小视频在线| 亚洲一区二区三区激情| 亚洲国产一区二区a毛片| 亚洲激情综合| 国内精品久久久久久久影视蜜臀| 亚洲精选91| 亚洲成人自拍视频| 亚洲欧美伊人| 亚洲视频999| 男女视频一区二区| 久久精品午夜| 国产精品videossex久久发布| 欧美高清一区二区| 欧美日韩国产欧| 另类专区欧美制服同性| 国产精品每日更新| 亚洲精品午夜精品| 亚洲高清视频在线| 亚洲免费高清| 亚洲国产一二三| 久久精品五月婷婷| 日韩亚洲视频| 久久亚洲春色中文字幕久久久 | 亚洲大片av| 欧美精品一区二区高清在线观看| 久久免费视频网| 国产麻豆91精品| 一区二区三区黄色| 99亚洲精品| 女女同性精品视频| 美日韩精品免费观看视频| 国产伦精品一区二区| 亚洲最黄网站| 一本久久综合亚洲鲁鲁| 欧美电影电视剧在线观看| 蜜桃av综合| 激情欧美丁香| 欧美在线一二三区| 这里只有精品视频| 久久xxxx精品视频| 欧美亚洲在线| 欧美成人一区二区三区片免费| 久久综合狠狠综合久久综合88| 国产精品最新自拍| 亚洲欧美日韩国产成人精品影院| 亚洲综合第一页| 国产精品豆花视频| 一区二区三区视频观看| 亚洲一二三四区| 欧美日韩一区二区三区在线观看免| 亚洲电影中文字幕| 亚洲精品免费在线观看| 欧美成人精品h版在线观看| 欧美插天视频在线播放| 亚洲国产乱码最新视频| 免费不卡在线视频| 亚洲国产精品va| 国产裸体写真av一区二区| 亚洲私人影院在线观看| 亚洲欧美视频在线| 国产伦理精品不卡| 午夜精品一区二区三区在线视 | 欧美三级视频在线播放| 99精品视频免费全部在线| 亚洲亚洲精品在线观看 | 亚洲美女黄网| 在线亚洲一区二区| 欧美日韩视频在线一区二区| 日韩一区二区精品| 亚洲一区自拍| 国产麻豆9l精品三级站| 欧美亚洲午夜视频在线观看| 久久久亚洲国产天美传媒修理工| 韩日成人在线| 老司机午夜免费精品视频| 亚洲高清不卡在线| 一本色道久久综合亚洲精品不 | 在线观看欧美日本| 久久亚洲私人国产精品va| 欧美国产精品人人做人人爱| 亚洲精选视频免费看| 欧美日韩一区二区在线视频| 亚洲香蕉伊综合在人在线视看| 欧美在线免费视屏| 精品69视频一区二区三区| 免费久久久一本精品久久区| 91久久精品久久国产性色也91| 中文亚洲字幕| 国产欧美一区二区精品性色| 久久久久高清| 91久久久精品|