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

2012年1月1日 星期日

超酷的HTML5網站設計

我們已經瞭解很多關於HTML5的技術了,很多人也開始在自己的專案中應用各種HTML5技術。這裡,Design Art Wall收 集了15個採用HTML5實現的網站,當然它們還有非常贊的介面設計,這些網站不僅在coding上,更在設計上能給我們更多的參考,當然,國內很多網站 僅僅是使用了HTML5的doctype而沒有真正的採用HTML5的語義化標籤和更多高級特性。嗯,是時候做更多的嘗試了。
當然,如果你做了或者見到了很棒的採用HTML5技術實現的中文網站,歡迎通過評論回饋給我們,多謝~~

Youzee

Youzee

Brasserie Gerard

Brasserie Gerard

Web Designer Wall

Web Designer Wall

1MD

1MD

Simple as Milk

Simple as Milk

DBushell

DBushell

Humaan

Humaan

Florida After Seven

Florida After Seven

Free Agent Central

Free Agent Central

Our Swiss Life

Our Swiss Life

Mighty in the Midwest

Mighty in the Midwest

Dunnellon

Dunnellon

Love of my life

Love of my life

New Adventures In Web Design

New Adventures In Web Design

La gente ha dichosi

La gente ha dichosi
文章來自前端
文章提供:: BAYSTARS DESIGN網頁設計公司

2011年12月19日 星期一

用jQuery來做個頁框的版型!



jQuery UI.Layout Plug-in

jQuery UI.Layout Plug-in對於前端網頁的操作非常有幫助,對於不是很懂CSS的人,很適合用來做後端的操作介面!

jQuery UI.Layout Plug-in 有幾點不錯的功能,比較好的部分整理如下:

collapsable:讓pane可以自由收合,也可以加上喜歡的jQuery特效
resizable:每pane都可以自由的縮放,當然也可以限制縮放的大小
hotkeys:這個選項可以讓pane利用鍵盤的方向鍵來控制,甚至自訂快速鍵

有更多進階範例請直接到demo網頁去看看。

部分內容來自這裡:jQuery的plugin,叫做UI.Layout
文章提供:: BAYSTARS DESIGN網頁設計公司

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網頁設計公司
  • 2010年10月11日 星期一

    重新發現HTML表格

    根據最近的一些實踐以及在和一些讀者進行關於HTML表格的使用問題溝通之後,決定寫這篇文章。總的來說,注意到由於誤導性信息,他們對於table的使用有種先入為主的厭惡。事實上很多人會說」看到永遠不應該使用表格」的說法,但是這絕對是錯誤的!這個建議只是針對使用HTML表格來定義網頁的佈局,但是表格在方便的排列數據信息行和列方面非常完美,而且如果你一定要在一個頁面上顯示表列數據,你就不得不使用它們!為什麼不呢?然而,在這種情況下,一些人無視了用於table的某些HTML標籤的存在並且不知道該如何正確的使用它們。

    HTML有10個表格相關標籤。下面是一個帶有簡介的列表,但是首先,文檔要被正確的定義在HTML 4.01/XHTML 1或HTML 5下面:

    定義表格標題(4, 5)
    為表格的列定義屬性(4, 5)
    定義表格列的分組(4, 5)
    定義表格(4, 5) 定義表格主體(4, 5) \ 定義表格的表注(底部)(4, 5) 定義表格的表頭(4, 5) 定義表格的行(4, 5) 一個基本的表格結構如下: 它包含一個標題、頭部、主體和底部。正確的HTML元素順序是:  
    程序代碼 程序代碼
    定義一個單元格 (4, 5)
    定義表格的表頭 (4, 5)
    你也可以使用 和 來定義表格的列或為列分組:
    程序代碼 程序代碼
    下面是一個正確的表格結構實例:
    程序代碼 程序代碼
                                                            
    Table caption here
    Head 1Head 2Head 3
    Foot 1Foot 2Foot 3
    ABC
    DEF


    在瀏覽器中的結果如下圖所示:



    關於表格的一些技巧

    根據w3schools的解釋和用法,在一個table定義中,元素必須出現在之前,這樣,瀏覽器就可以在接受到所有數據之前呈現表注了。另外,如果不是這個順序,將不能通過W3C的HTML4和XHTML驗證,無論你聲明哪種DTD。(瞭解更多)。
    在 HTML 4.01 中,表格的align和bgcolor屬性不贊成使用,所以在HTML 5中不再有任何table的屬性被支持(事實上,在XHTML 1.0 Strict DTD中已經不支持」align」和」bgcolor」屬性了);
    所有主流瀏覽器都支持 標籤,但是Firefox、Chrome 以及 Safari 僅支持 colgroup 元素的 span 和 width 屬性;
    css中的empty-cells:show|hide 可以設定空單元格是否顯示邊框。注意,這個需要設置在table而不是td/th中。IE6中比較容易遇到該問題;
    css中的border-collapse:collapse | separate 可以設置表格的邊框是否被合併成一個邊框;
    css中的border-spacing屬性等效於table的cellspacing屬性。
    為了實現現在所提倡的表現和結構分離的開發模式,前端觀察建議將頁面中所有與表現層有關的東東,都用CSS來控制,不用HTML自帶的屬性來控制頁面的表現,而table是最容易被忽略的一個。
    關於table的更多詳細內容可以查看W3C的文檔: w3 Introduction to tables

    最後留一個非常簡單的問題給大家,CSS的哪個屬性等效於table的cellpadding屬性?

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