顯示具有 CSS 標籤的文章。 顯示所有文章
顯示具有 CSS 標籤的文章。 顯示所有文章

2011年12月6日 星期二

Zen Coding: 一種快速編寫HTML/CSS代碼的方法

譯自:Smashing Magazine
中文:Zen Coding: 一種快速編寫HTML/CSS代碼的方法
請尊重版權,轉載請注明來源!

在本文中我們將展示一種新的使用仿CSS選擇器的語法來快速開發HTML和CSS的方法。它由Sergey Chikuyonok開發。
你在寫HTML代碼(包括所有標籤、屬性、引用、大括弧等)上花費多少時間?如果你的編輯器有代碼提示功能,你編寫的時候就會容易些,但即便如此你還是要手動敲入很多代碼。
在 JavaScript方面,當我們想要在一個頁面上獲取某個特定的元素時,我們就會遇到同樣的問題,我們必須寫很多代碼,這就變得難於維護和重 用。JavaScript框架應運而生,它們同時引入了CSS選擇器引擎。現在,你可以使用簡單的CSS運算式來獲取DOM元素,這相當酷。
但是,如果你不僅僅可以用CSS的選擇器佈局和定位元素,還能生成代碼會怎麼樣?比如,如果你這樣寫:
div#content>h1+p
…然後就可以看到這樣的輸出:
<div id="content">
<h1>h1>
<p>p>
div>
有些迷惑吧?今天,我將向你介紹Zen Coding,一組用於快速HTML和CSS編碼的工具。最初由Vadim Makeev在2009年4月提出(文章為俄語),由鄙人(也就是我)開發了數月並最終達到比較成熟的狀態。Zen Coding由兩個核心元件組成:一個縮寫擴展器(縮寫為像CSS一樣的選擇器)和上下文無關的HTML標籤對匹配器。看一下這個演示視頻來看一下它們能為你做些什麼。
注意:該視頻原版位於Vimeo,但是要看的話需要翻[和諧]牆先,位址在這裡:http://vimeo.com/7405114,上面的視頻是我費盡周折從Vimeo上下載下來上傳到優酷的,上傳後品質竟被大打折扣了,囧。youtube上也有一份視頻,是基於Aptana的演示,一樣很精彩:http://www.youtube.com/watch?v=ug84Ypwqfzk。PS:貌似youtube要比Vimeo翻[和諧]牆容易些,不過如何翻[和諧]牆不在本站討論範圍。
如果你想跳轉到詳細介紹和使用指南,請看一下演示頁面並立刻下載你適用的外掛程式:
Demo
下載(完全支持)
下載(部分支援,只支援“展開縮寫”)
現在讓我們看一下這些工具是如何工作的吧。
展開縮寫
展開縮寫功能將類似CSS的選擇器轉換為XHTML代碼。術語“縮寫”可能會有點兒難以理解。為什麼不直接稱之為“CSS選擇器”呢?嗯,首要原因是語義化:“選擇器”意為選擇一些東西,但是在這裡我們事實上是生成 一些東西,是寫一個長代碼的較短的替代。其次,它只是使用真實的CSS選擇器語法的一個小的子集,並添加了一些新的操作符。
這裡是一個支援的屬性和操作符的清單:
  • E
    元素名稱(div, p);
  • E#id
    使用id的元素(div#content, p#intro, span#error);
  • E.class
    使用類的元素(div.header, p.error.critial). 你也可以聯合使用class和idID: div#content.column.width;
  • E>N
    子代元素(div>p, div#footer>p>span);
  • E+N
    兄弟元素(h1+p, div#header+div#content+div#footer);
  • E*N
    元素倍增(ul#nav>li*5>a);
  • E$*N
    條目編號 (ul#nav>li.item-$*5);
正如你能看到的,你已經知道如何使用Zen Coding了:只是些一個簡單的仿CSS選擇器(呃,“縮寫”抱歉),就像這樣…
div#header>img.logo+ul#nav>li*4>a
…然後調用”展開縮寫”行為。
這 裡有兩個新增的操作符:元素倍增和條目編號。比如,如果你想生成5個
  • 元素,你可以簡單的寫位li*5。它也將同樣重寫全部子 代元素。如果你想寫4個
  • 元素,每個裡面都有一個標籤,你就可以簡單的寫為li*4>a,這樣會生成以下 HTML代碼:
    1
    2
    3
    4
    <li><a href="">a>li>
    <li><a href="">a>li>
    <li><a href="">a>li>
    <li><a href="">a>li>
    最後一個——條目編號用於當你想用索引標記重複的元素的情況。假設你想生成class為item1、item2和item3的3個
    元素。你可以寫成這樣的縮寫,div.item$*3:
    1
    2
    3
    <div>div>
    <div>div>
    <div>div>
    只需在你想要索引出現的任何class或id屬性上添加一個美元符號即可,而且想要多少都可以。那麼,這樣…
     div#i$-test.class$$$*5
    會被轉換成為:
    1
    2
    3
    4
    5
    <div id="i1-test">div>
    <div id="i2-test">div>
    <div id="i3-test">div>
    <div id="i4-test">div>
    <div id="i5-test">div>
    你會看到,當你寫a的縮寫的時候,輸出是。或者,如果你寫img,輸出就是”"
    Zen Coding是如何知道什麼時候應該為生成的標籤添加預設的屬性或者跳過關閉標籤的?有一個專門的檔,名為zen_settings.js描述了輸出元素。這是一個簡單的JSON檔,描述每種語言的縮寫(是的,你可以為不同的句法定義縮寫,比如HTML、XSL、CSS等)。通用的語言縮寫定義看起來就像這樣:
    1
    2
    3
    4
    5
    6
    7
    'html': { 'snippets': { 'cc:ie6': '',
                      ...
                      },
                        'abbreviations': { 'a': '', 'img': '',
                      ...
                      }
                      }
    元素類型
    Zen Coding有兩個主要的元素類型:“片段(snippets)” 和 “縮寫(abbreviations)”。片 段就是隨意的代碼碎片,而縮寫是標籤定義。通過片段,你可以寫出你想要的任何代碼,它也會照你寫的格式輸出;但是你必須手動的格式化它(使用\n 和\t實現換行和縮進) 並將${child}變數放到你想要輸出子元素的地方,就像這樣:cc:ie6>style。如果你不使用${child}變數,子元素將會輸出於 代碼片段的後面
    有了縮寫,您必須編寫標記定義,而且語法是非常重要的。通常,你必須寫一個簡單的帶 有所有預設的屬性的標籤,比如: 。當Zen Coding被載入後,它會解析一個標籤定義到一個描述該標籤的名字、屬性(包括它們的順序)以及該標籤是否為空的特定的物件中。所以,如果你 寫”",你會告訴Zen Coding這個標籤必須是空的,然後“擴展縮寫”行為就會在輸出之前為它使用特定的規則。
    對於片段和縮寫,你可以添加一個管道符號,它告訴Zen Coding當縮寫被展開的時候游標會被定位到哪裡。預設的,Zen Coding 將游標放在空屬性的引號中間以及開始和關閉標籤的中間。
    例子
    那 麼,這裡解釋一下當你寫了一個縮寫並召喚“展開縮寫”行動時發生的事情。首先,它將一個完整的縮寫分開為獨立的元素:這樣div>a 會被分成div 和a 元素,當然也會維持他們的關係。然後,每個元素,解析器先在代碼片段內而後在縮寫中尋找定義。如果它找不到,將會使用元素的名字作為新的標籤,並為其添加 縮寫中定義的id和class。比如,如果你寫mytag#example,解析器在片段或縮寫中找不到mytag定義,它就會輸出
    我們製作了很多默認的CSS和HTML縮寫和片段。你會發現學習使用Zen Coding可以增加你的生產力。
    HTML 標籤對匹配器
    對於HTML編碼者的另一個非常常見的任務是尋找一個元素的標籤對。例如你想選擇整個
    標籤並將其移動到其它地方或者刪除它。或者有可能你在尋找一個關閉標籤並想知道它屬於那個開始標籤。
    不 幸的是,很多現代開發工具在該功能方面有所欠缺。那麼我就決定寫一個我自己的標籤對匹配器作為Zen Coding的一部分。不過它依然在beta階段並尚存一些問題,但它可以工作的很不錯並很快。不是流覽整個文檔(像通常的那種HTML標籤對匹配器的做 法),它從游標的當前位置開始尋找相關的標籤。這使得它非常快並且上下文無關:它甚至可以用於這段JavaScript代碼片段
    1
    2
    3
    4
    5
    6
    7
    var table = '
    '; for (var i = 0; i < 3; i++) {
          table += '
    '; for (var j = 0; j < 5; j++) {
                table += '
    ';
          }
          table += '
    ';
    }
    table += '
    ' + j + '
    ';
    使用縮寫包裹
    這真的是一個很酷的特性,它將縮寫和標籤對匹配器的功能合併到一起了。你有多少才發現你需要添加一個包裹元素以修正一個流覽器bug?或者你需要添加一個裝飾,比如一個背景圖片或者邊框到一個塊級內容?你必須寫開始標籤,臨時打斷你的代碼,找到相關的點然後關閉標籤。這就是“使用縮寫包裹”能幫助你的地方。
    該功能相當簡單:它要求你輸入縮寫,然後執行適當的“展開縮寫”行動並將你期望的文本放到你縮寫的最後一個元素裡面。如果你沒有選擇任何文本,它就會啟動標籤對匹配器並使用結果。它同樣能搞清楚你的游標的位置:標籤的內容裡面或者是開始和關閉標籤中間。依賴於它的位置,它會包裹標籤的內容或標籤本身。
    縮寫包裹為包裹個別行引入了一個特定的縮寫句法。簡單跳轉到倍增操作符後面的數字,比如:ul#nav>li*>a。當Zen Coding 發現一個使用未定義的倍增數的時候,它會將它作為一個重複元素:你的章節中有多少行,它就會輸出多少次,並將每行的內容放到重複元素的最後一個子元素裡面。
    如果你在這段文本外面包裹這段縮寫div#header>ul#navigation>li.item$*>a>span:
    1
    2
    3
    4
    5
    About Us
    Products
    News
    Blog
    Contact Up
    你將會得到以下結果:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <div id="header">
          <ul id="navigation">
                <li><a href=""><span>About Usspan>a>li>
                <li><a href=""><span>Productsspan>a>li>
                <li><a href=""><span>Newsspan>a>li>
                <li><a href=""><span>Blogspan>a>li>
                <li><a href=""><span>Contact Upspan>a>li>
          ul>
    div>
    你可以看到,Zen Coding是一個強大的文本處理工具。
    快速鍵
    • Ctrl+,
      展開縮寫
    • Ctrl+M
      匹配對
    • Ctrl+H
      使用縮寫包括
    • Shift+Ctrl+M
      合併行
    • Ctrl+Shift+?
      上一個編輯點
    • Ctrl+Shift+?
      下一個編輯點
    • Ctrl+Shift+?
      定位匹配對
    這些快速鍵是可以自訂的。
    線上演示
    你已經學到很多關於Zen Coding如何工作以及它是如何使你的編碼更容易了。現在為什麼不自己嘗試一下呢?因為Zen Coding是用純JavaScript開發並遷移到Python,它甚至可以用於流覽器內部,這令它成為引入到CMS的首選。
    支援的編輯器
    Zen Coding並不依賴某個特定的編輯器。它是一個隻處理文本的出色的元件:它獲取文本、做一些處理並放回新的文本(或索引,用於標籤匹配)。Zen Coding由JavaScript和Python編寫,所以它實際上可以運行於任何平臺。在Windows,你可以運行JavaScript版本,而 Mac和Linux 分支可以使用Python版。
    如果讓你的編輯器支援Zen Coding,你需要寫一個特定的可以在你的編輯器和Zen Coding之間轉換資料的外掛程式。問題是一個編輯器可能不會完整的支持Zen Coding因為它本身的外掛程式系統。比如,TextMate通過使用腳本輸出替換當前行很容的就支援了“展開縮寫”功能,但是它不能處理標籤對匹配因為沒有標準的方法請求TextMate來選擇內容。
    完全支持
    部分支援(只支援“展開縮寫”)
    Aptana是我主要的開發環境,它使用一個JavaScript版本的Zen Coding。它也包含很多其它的我用於日常工作的工具,所以任何一個新的Zen Coding版本都將會首先對Aptana可用,然後部署到Python並相容其它的編輯器。
    Coda和Espresso 外掛程式被傑出的Text Editor Actions (TEA) 平臺支援,由Ian Beck開發。原始的原始程式碼在GitHub上,但我還是製作了我自己的分支以整合Zen Coding的特性。
    總結
    很多嘗試過Zen Coding的人都說它改變了他們寫頁面的方式。當然還有很多事情要做,還有很多的編輯器需要被支援以及一些文檔要寫。請流覽現在的文檔 以及原始程式碼以尋找你的問題的答案。希望你喜歡Zen Coding!
    附:Zen coding的具體用法
    遺憾的是, 本文原作者並沒有說明zen coding的具體用法,神飛認為有必要做以下簡要的說明。這裡就以Aptana/Eclipse和Dreamweaver為例,其它編輯器平臺暫不描述,如有疑問可以在評論中與前端觀察的網友交流。
    Aptana/Eclipse
    由於Aptana本身就是基於Eclipse的,所以,Zen Coding也是支援Eclipse的,只是需要一個EclipseMonkey外掛程式的支援,Aptana已經封裝了這個外掛程式,所以如果你使用Aptana,下面的第一步可以跳過。
    1. 通過更新網站安裝EclipseMonkey: http://download.eclipse.org/technology/dash/update(如果你使用Aptana,可跳過這一步)
    2. 在你的當前工作去創建一個頂級的專案,給它命名,比如,就叫zencoding
    3. 在新創建的項目中創建scripts資料夾
    4. 解壓縮下載的ZIP外掛程式包到該資料夾。專案結構看起來就像這樣:
    1. 安裝之後,Aptana的功能表列中的“腳本(Script)”功能表中將會出現Zen coding相關子功能表
    注意事項:
    • Aptana版的官方外掛程式是基於MAC機的,如果你用的是Windows,需要手動更改快速鍵(在每個檔頭部的注釋片段中更改)
    • 官方的檔編碼有點兒亂,修改官方js的時候,請注意編碼問題,修改不當會造成相關功能的丟失;
    DreamWeaver
    好 消息是,現在已經有了Zen coding for DreamWeaver外掛程式,壞消息是,該外掛程式支援的功能很少,只支援展開縮寫功能。而且默認的快速鍵是無效的。只能在“命令”功能表中點擊操 作。另外,沒 有測試該外掛程式是不是只支援CS4版本。不過比較好的是,作者將本外掛程式的源碼也放出了,你可以自訂一個Dreamweaver的外掛程式。
    文章來自前端
    文章提供:: BAYSTARS DESIGN網頁設計公司
  • 2011年12月5日 星期一

    關於 IE7 與 IE8 網頁相容的小技巧

    提供一個 HTML 語法小技巧,若您有以前設計的舊網頁在 IE8 顯示上有不正常的情況時,或者是為了考慮各瀏覽器相容性問題時,其實您可以使用 Expression Web 開啟網頁,切換到網頁的 與 之間,輸入下述 meta 標籤語法,即可讓使用 IE8 瀏覽器瀏覽網頁時,自動預設以 IE7 解析模式運行,語法為:
    程序代碼 程序代碼



    如果您網頁上有使用此語法,原本在 IE8 瀏覽器上會有的「相容性檢視」按鈕會隱藏起來,而只以 IE7 解析模式觀看此網頁。不過筆者還是要建議您,若是開發全新網站的網頁時,盡量還是以 IE8 為主要瀏覽測試環境,畢竟這還是未來的趨勢主流。



    文章來自WOW
    文章提供:: BAYSTARS DESIGN網頁設計公司

    2011年12月4日 星期日

    如何讓網頁自動切換電腦或手機版



    目 前用手機上網的人越來越多了!總不能為了手機專門設置一個網站吧!?最好的方式是知道使用者使用何種裝置上網,自動切換到適合網頁去!其實這需要透過 Server端的程式來作一點小判斷,就可以作到自動的切換,這邊整理一下手邊的資料, 分別針對PHP與ASPX作介紹。

    PHP版本判斷:
    程序代碼 程序代碼
    $mobile_browser = '0';

    if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i', strtolower($_SERVER['HTTP_USER_AGENT']))) {
        $mobile_browser++;
    }

    if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))) {
        $mobile_browser++;
    }   

    $mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));
    $mobile_agents = array(
        'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',
        'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
        'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
        'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',
        'newt','noki','oper','palm','pana','pant','phil','play','port','prox',
        'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',
        'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',
        'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',
        'wapr','webc','winw','winw','xda','xda-','Googlebot-Mobile');

    if(in_array($mobile_ua,$mobile_agents)) {
        $mobile_browser++;
    }

    if (strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini')>0) {
        $mobile_browser++;
    }

    if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0) {
        $mobile_browser=0;
    }

    if($mobile_browser>0) {
        header("Location: mobile.php"); //手機版
    }else {
        header("Location: pc.php");  //電腦版
    }


    ASPX版本判斷:
    程序代碼 程序代碼
    protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.Headers["user-agent"] != null && Request.Headers["user-agent"].ToLower().ToString().IndexOf("windows") != -1)
            {                       
                Response.Redirect("pc.aspx"); //電腦版
            }
            else
            {
                Response.Redirect("mobile.aspx"); //手機版
            }
        }


    範例檔案下載...
    解壓縮密碼:www.wowbox.com.tw
    文章來自WOW
    文章提供:: BAYSTARS DESIGN網頁設計公司

    2011年12月1日 星期四

    手機版網頁為何會放大呢?因為網頁檔頭宣告設定問題!



    網 頁自動切換合適的網頁後,接下來就是要開始來製作手機版的網頁囉!手機或是電腦的網頁看起來是相同,只要電腦版能正常運作,在手機上應該都可正常預覽,如 果要專門讓手機來瀏覽時,這時就有點不太相同了,除了版面要另外設計外,還有一個相當重要的東西,那就是HTML檔頭的宣告,一般在設計網頁時,上面所宣 告的是給電腦版使用,目前大多使用XHTML的設定,若用此宣告放到手機版時,則會發現到怎網頁的版面都縮小,這是由於手機內建的瀏覽器,當網頁為電腦版 就會把版面撐到980像素,所以當要開始製作手機版網頁時,首先要做就是檔頭的宣告,這樣網頁在手機下,才能正常顯示手機版的尺寸大小。

    宣告的部分有二種方式,一種是加在html上,另一種是加在~之間,二者取其一就行了,若要二邊都加的話也可以。

    第一種方法、加在上方:
    程序代碼 程序代碼


    第二種方法、加在~之間:
    程序代碼 程序代碼


    完成這些動作後,再用手機瀏覽看看,這時版面就不會縮起來,就會依照手機的顯示尺寸,只要一個小動作卻有180度的大不同!要不然忌諱做出怪怪的手機專屬網頁喔!
    文章提供:: BAYSTARS DESIGN網頁設計公司

    2011年11月29日 星期二

    馴服CSS選擇器 - 健壯我們的樣式表

    PPT:Taming CSS Selectors
    作者:Nicole Sullivan

    CSS 文件的大小和所引起的 HTTP 的請求數

    是 CSS 性能的最關鍵因素

    回流(reflow)和渲染時間

    (非常!)沒那麼重要

    副本(duplication)比陳舊的規則(stale rules)更糟糕

    因為我們有工具處理後者

    定義缺省值

    不要在每處都重複編碼

    不好的:
    程序代碼 程序代碼
    #weatherModule h3{color:red;}
    #tabs h3{color:blue;}

    推薦:
    程序代碼 程序代碼
    h1, .h1{...}
    h2, .h2{...}
    h3, .h3{...}
    h4, .h4{...}
    h5, .h5{...}
    h6, .h6{...}


    用單獨的 class 來定義結構

    不要在每處都重複編碼



    使用 class

    而不是元素選擇器

    不好的:
    程序代碼 程序代碼
    div.error{...}

    推薦:
    程序代碼 程序代碼
    .error{絕大多數代碼寫在這裡}
    div.error{單獨定義}
    p.error{單獨定義}
    em.error{單獨定義}


    避免使用元素選擇器

    初始化除外

    不好的:
    程序代碼 程序代碼
    div{...}
    ul{...}
    p{...}

    推薦:
    程序代碼 程序代碼
    .error{...}
    .section{...}
    .products{...}


    給規則同樣的權重

    使用級聯去重寫先前的規則

    不好的:
    程序代碼 程序代碼
    .myModule .inner b{...}
    .myModule2 b{...}

    推薦:
    程序代碼 程序代碼
    .myModule b{...}
    .myModule2 b{...}


    保守的使用 hack

    不好的:
    程序代碼 程序代碼
    .mod .hd{...}
    .ie .mod .hd{...}
    .weatherMod .hd{...}

    推薦:
    程序代碼 程序代碼
    .mod .hd{color:red;_zoom:1;}
    .weatherMod .hd{...}

    註: 此點來自 The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective, Ajax Experience 2009 第96P,為作者在 Ajax Experience 2009 上所做的補充。

    避免指定位置

    應用 class 在你想要改變的對象上

    不好的:
    程序代碼 程序代碼
    .sidebar ul{...}
    .header ul{...}

    推薦:
    程序代碼 程序代碼
    .mainNav{...}
    .subNav{...}


    避免太過特別的 class

    它們是都有語義的,而且有限制

    不好的:
    程序代碼 程序代碼
    .ducatiMonster620{...}
    .nicolesDucatiMonster620{...}

    推薦:
    程序代碼 程序代碼
    .vehicle{...}
    .motorcycle{...}


    避免單獨的定義

    id 在每個頁面只能使用一次

    不好的:
    程序代碼 程序代碼
    #myUniqueIdentifier{...}
    #myUniqueIdentifier2{...}


    混合使用

    避免重複編碼





    封裝

    不要直接訪問對象的子節點



    不好的:
    程序代碼 程序代碼
    .inner{...}
    .tr{...}
    .bl{...}

    推薦:
    程序代碼 程序代碼
    .weatherMod .inner{...}
    .weatherMod .tr{...}
    .weatherMod .bl{...}


    譯文原文:點這裡...
    文章提供:: BAYSTARS DESIGN網頁設計公司

    2011年11月28日 星期一

    網頁設計應急小技巧

    工作中,網頁設計師經常會遇見這些狀況:時間這麼短又要出彩、又是要大氣要有氣氛、風格不明確很難把握、欄目這麼多頁面又這麼長……

    突然覺得束手無策,腦袋裡一片空白,沒想法了,怎麼辦?
    下面簡淺的歸納了幾個快速讓頁面出彩的小技巧:

    1.旋轉法 – 將頁面的主體或局部進行旋轉



    我們一般的頁面版式都是方方正正,四平八穩,有點呆板。如果將局部或整體適當的旋轉,打破穩定的構圖,畫面就會動感有趣一些。
    對於上圖,這種基調輕鬆活潑又恰好內容比較少的頁面來說,主體整個旋轉後,畫面馬上輕鬆活潑起來,看過現在這個畫面,真是無法想像未旋轉前的平淡。同時,相比大塊的方形空白,不規則的余白也不會顯得空洞。



    上圖,將背景旋轉後,大面積的斜面產生了很強的速度感,賽車急速飛馳著,好像下一秒就要從電腦中衝出來一樣,傾斜的大標題和旋轉後的背景交叉配合,使畫面整個都運動起來。這種方法可以應用到很多運動的主題上。

    2.黃金分割法 – 靈活運用黃金比例分割的辦法將頁面「切」開



    黃金比率被認為是最理想的矩形比例,在過去的文化遺產中也有很多這樣的遺存。將這個比率應用到版式設計中,也能夠設計出容易為用戶所喜歡的構圖。但不要被這些比例所束縛,很多是靠自己的感覺去應用。
    上圖,除去背景無非就是一個排版清晰的頁面,將背景分割後,對比的色塊使畫面產生縱深感,頁面的豐富性和視覺衝擊力迅速增強。人物也好像著陸了一樣,平穩的站在畫面中。



    上圖,用反差強烈的色塊進行分割,強調了版塊的劃分,即使有很多地方需要強調,也能讓用戶迅速清楚各版塊的重點,不用像以往一樣1、2、3…… 將內容依次豎排下來,鼠標都已經拖到第三屏了還沒完沒了,又沒什麼新鮮感。

    3.曲線法 – 將曲線用於背景或版塊分割,消除矩形分割的生硬感。



    與直線相比,曲線具有圓潤的特點,讓人感覺輕鬆、愉悅。增強視覺感的同時也能夠營造活躍的氣氛。
    上圖中,大眾的logo和焦點圖中的機器人產品,全部由曲線組成,這種情況下,用曲線來分割背景和焦點就顯得理所當然了,畫面中曲線合理的運用也提高了層次感,機器人和紅色標題都更突出。



    仿照球的運動軌跡,貫穿著整個頁面的曲線,將用戶直觀的帶入了正在激烈進行的棒球比賽現場。看似隨意,其實用曲線精當的將標題、焦點圖和新聞等版塊按重點進行了不同比例的分割。


    4.借用法 – 借用現實中的東西,將實物抽像化,提煉出大形輪廓用於背景



    現實中的東西也可以應用到網頁設計中?當然可以,只要想的到。
    如圖,信封是我們生活中常用的東西,如此生活化的東西借用到網頁上,展開在用戶面前,好像郵寄給您的信一樣,立馬讓人眼前一亮,親切感油然而生。作為遊戲活動的通告頁,用白色的信紙來盛放主體內容也再合適不過。



    上圖,將賽車在賽道上疾馳的場面置放到頁面上作為背景,虛化的大城市,放大的賽道,飛奔的賽車……就像此刻坐在電腦前玩賽車,左手正緊緊按著W、A、S、D鍵一樣。讓用戶身臨其境,完全抓住了對方眼球。
    以此類推,生活中很多東西都可以借用,例如:寫滿粉筆字的黑板、電腦的屏幕、寫日記的本子、老古董的地圖,空曠的足球場……


    5.三角拼貼法 – 像做手工一樣,將裁剪好的三角形打亂,重新拼貼



    不同的幾何形狀有不同的性格,圓形是活潑可愛的,方形是平穩整齊的,三角形就是尖銳動感的。
    三角形的不平衡性及其尖銳性能夠增強視覺上的刺激,快速吸引用戶,可以用於科技和時尚這種風格同樣比較「鋒利」的網頁。
    上圖,將同色系小三角形均勻的拼貼起來,馬上就營造出一種鑽石璀璨般的時尚感。但實踐的時候要注意加減法,不能亂堆一通,點到為止即可。



    上圖,用艷麗的三角形對頁面進行劃分、拼貼。大小的組合,色塊的對比,能夠帶給用戶強烈的視覺衝擊力。在搭配的時候,注意主次,以一個大的形狀為主,給內容擺放留下足夠空間,與其他輔助的小形狀相區別。

    6.色塊分割法 – 將各版塊用不同顏色來區別



    經常面對需求方這裡是重點、那也是重點、那那那也挺重要,統統需要突出的要求,對於主題比較明快的頁面 可以考慮將版塊用不同顏色來區別,通過色塊來強化頁面版式和佈局,難度較大的是在色彩搭配上要取得平衡。

    上圖,版式在頁面都以塊來體現,沒有什麼效果,為了突出重點,在重要區域選擇了飽和度較高的紅黃綠三個顏色,產生明確的視覺中心,讓用戶能夠按照我們希望的那樣閱讀下去。但對比色調容易造成不和諧,紅黃綠之間加上灰底的中性色來調和一下就顯得不會突兀了。



    當使用四到五種純色進行搭配的時候,注意只要色相、純度、明度三個屬性中有一個屬性是基本相同或者接近,搭配起來基本上都不會覺得太牽強。

    以上幾個小技巧可以在情況緊急時參考,大家也可以用類似的方法總結出更多的小技巧自用。

    原文:看這裡...


    文章來自:: ued163

    文章提供:: BAYSTARS DESIGN網頁設計公司

    2011年11月23日 星期三

    非常有用的CSS模板

    下面是CSS模板清單,將幫助您減少手酸,煩惱,節省您在寫CSS的時間了,希望你會發現它很有用。無論你是一個有經驗的Web開發者,或剛開始使用CSS的初學者,都值得一試。



    CSS Reset (CSS固定樣板)
    程序代碼 程序代碼
    /* http://meyerweb.com/eric/tools/css/reset/
       v2.0 | 20110126
       License: none (public domain)
    */
    html, body, div, span, applet, object, iframe,
    h1, h2, h3, h4, h5, h6, p, blockquote, pre,
    a, abbr, acronym, address, big, cite, code,
    del, dfn, em, img, ins, kbd, q, s, samp,
    small, strike, strong, sub, sup, tt, var,
    b, u, i, center,
    dl, dt, dd, ol, ul, li,
    fieldset, form, label, legend,
    table, caption, tbody, tfoot, thead, tr, th, td,
    article, aside, canvas, details, embed,
    figure, figcaption, footer, header, hgroup,
    menu, nav, output, ruby, section, summary,
    time, mark, audio, video {
        margin: 0;
        padding: 0;
        border: 0;
        font-size: 100%;
        font: inherit;
        vertical-align: baseline;
    }
    /* HTML5 display-role reset for older browsers */
    article, aside, details, figcaption, figure,
    footer, header, hgroup, menu, nav, section {
        display: block;
    }
    body {
        line-height: 1;
    }
    ol, ul {
        list-style: none;
    }
    blockquote, q {
        quotes: none;
    }
    blockquote:before, blockquote:after,
    q:before, q:after {
        content: '';
        content: none;
    }
    table {
        border-collapse: collapse;
        border-spacing: 0;
    }


    Browser-Specific CSS Hacks (瀏覽器特定CSSHacks)
    程序代碼 程序代碼
    /* IE6 and below */
    * html #uno  { color: red }

    /* IE7 */
    *:first-child+html #dos { color: red }

    /* IE7, FF, Saf, Opera  */
    html>body #tres { color: red }

    /* IE8, FF, Saf, Opera (Everything but IE 6,7) */
    html>/**/body #cuatro { color: red }

    /* Opera 9.27 and below, safari 2 */
    html:first-child #cinco { color: red }

    /* Safari 2-3 */
    html[xmlns*=""] body:last-child #seis { color: red }

    /* safari 3+, chrome 1+, opera9+, ff 3.5+ */
    body:nth-of-type(1) #siete { color: red }

    /* safari 3+, chrome 1+, opera9+, ff 3.5+ */
    body:first-of-type #ocho {  color: red }

    /* saf3+, chrome1+ */
    @media screen and (-webkit-min-device-pixel-ratio:0) {
    #diez  { color: red  }
    }

    /* iPhone / mobile webkit */
    @media screen and (max-device-width: 480px) {
    #veintiseis { color: red  }
    }

    /* Safari 2 - 3.1 */
    html[xmlns*=""]:root #trece  { color: red  }

    /* Safari 2 - 3.1, Opera 9.25 */
    *|html[xmlns*=""] #catorce { color: red  }

    /* Everything but IE6-8 */
    :root *> #quince { color: red  }

    /* IE7 */
    *+html #dieciocho {  color: red }

    /* Firefox only. 1+ */
    #veinticuatro,  x:-moz-any-link  { color: red }

    /* Firefox 3.0+ */
    #veinticinco,  x:-moz-any-link, x:default  { color: red  }

    /* FF 3.5+ */
    body:not(:-moz-handler-blocked) #cuarenta { color: red; }

    /* IE6 */
    #once { _color: blue }

    /* IE6, IE7 */
    #doce { *color: blue; /* or #color: blue */ }

    /* Everything but IE6 */
    #diecisiete { color/**/: blue }

    /* IE6, IE7, IE8 */
    #diecinueve { color: blue\9; }

    /* IE7, IE8 */
    #veinte { color/*\**/: blue\9; }

    /* IE6, IE7 -- acts as an !important */
    #veintesiete { color: blue !ie; } /* string after ! can be anything */

    /* IE8, IE9 */
    #anotherone  {color: blue\0/;} /* must go at the END of all rules */


    A New Micro Clearfix Hack (清除浮動的CSS)
    程序代碼 程序代碼
    /* For modern browsers */
    .cf:before,
    .cf:after {
        content:"";
        display:table;
    }

    .cf:after {
        clear:both;
    }

    /* For IE 6/7 (trigger hasLayout) */
    .cf {
        zoom:1;
    }


    Font Sizing (字體設置)
    程序代碼 程序代碼
    html { font-size: 62.5%; }
    body { font-size: 14px; font-size: 1.4rem; } /* =14px */
    h1   { font-size: 24px; font-size: 2.4rem; } /* =24px */


    The New @Font-Face Syntax (自設字體樣式)
    程序代碼 程序代碼
    @font-face {
        font-family: 'MyFontFamily';
        src: url('myfont-webfont.eot?#iefix') format('embedded-opentype'),
             url('myfont-webfont.woff') format('woff'),
             url('myfont-webfont.ttf')  format('truetype'),
             url('myfont-webfont.svg#svgFontName') format('svg');
    }


    Target IE set (針對IE的設置)
    程序代碼 程序代碼
    body {
    color: red; /* all browsers, of course */
    color : green\9; /* IE8 and below */
    *color : yellow; /* IE7 and below */
    _color : orange; /* IE6 */
    }


    Cross-Browser Min Height (跨瀏覽器的最小高度)
    程序代碼 程序代碼
    #div {
       min-height: 500px;
       height:auto !important;
       height: 500px;
    }


    Font Shorthand (字體設置速寫)
    程序代碼 程序代碼
    /*font: font-style font-variant font-weight font-size/line-height font-family;*/
    font: italic small-caps bold 15px/30px Helvetica, sans-serif;


    IE6/7 Double Margin/Padding Bug (IE6/7雙重邊距錯誤)
    程序代碼 程序代碼
    ul li {
      float: left;
      margin-left: 5px;
      *display: inline; /*IE7 and below*/
      _display: inline; /*IE6 and below*/
    }
    /* this example fixes double left margin bug 左邊距Bug*/


    Web Fonts With Google Font API(Google網頁字體)
    程序代碼 程序代碼
    /* */


    要使用谷歌API的字體,首先引用樣式表在之間
    程序代碼 程序代碼
    /*CSS selector {
      font-family: 'Font Name', serif;
    }*/
    font-family: 'Tangerine', serif;


    Drop Cap (首字下沉)
    程序代碼 程序代碼
    p:first-letter {
        display:block;
        margin:5px 0 0 5px;
        float:left;
        color:#FF3366;
        font-size:60px;
        font-family:Georgia;
    }
     
    文章來自:: WOW

    文章提供:: BAYSTARS DESIGN網頁設計公司