takeasy

your imagination is my power


CSS 版面控制: 固定置中版面


網頁設計師為了版面美觀,時常會想讓網頁的某塊區域置中。在以前拿表格來排版時,我們可以用以下方式達成目的:


Example:
<table align="center" border="1" width="200">
  <tr><td>網頁內容</td></tr>
</table>

Screen:

網頁內容


不過,以表格排版的話頁面的版型就定死了,毫無靈活度可言;比較好的方法是採用 CSS 各種特性來排版,請繼續看下去。


彈性寬度

如果你的網頁寬度想依視窗寬度調節(例如訂為視窗寬的 80%),那麼便可以採用這種方式。首先我們必須先把整個網頁內容用一個 div 標籤包起來,例如:

Example:
<html>
    <head>[網頁標題]</head>
    <body>
        <div id="container">
        [網頁內容]
        </div>
    </body>
</html>

我們指定這個 div 標籤的 id 屬性為 container (依據規範,id 屬性的值在整個頁面裡必須是獨一無二的,不可以重複)。設定完畢以後,在 head 標籤之中插入此段 CSS 程式碼:

<style type="text/css">
#container {
  margin: 0 auto;
  width: 80%; 
}
</style>

這代表此樣式要套用至 id 屬性為 container 的區塊(#container),區塊寬度為視窗寬的 80%,上下邊界為零、左右邊界則由瀏覽器自動調節(auto)。如此一來,頁面就會自動置中了。

固定寬度

如果你的版面寬度固定(如 760 像素),則可以把前例的 width 特性值修改為 760px。此外對於固定寬度的版面,我們還有另一種設定方式

#container {
  position: relative;
  left: 50%;
  margin-left: -380px; /* 760 除以 -2 */ 
  width: 760px;
}

這個方式比較奇妙點,position: relative; 代表此區塊將以相對方式,依其母元素(在此例為 body)的位置來定位。加上這條特性後,由於尚未指定位置,container 會依照預設值擺在母元素的左上角,如圖一所示。


加上 left: 50%; 之後,此區塊左緣將移至母元素的中線,如圖二。


第三條 margin-left: -380px; 比較難解釋,簡單說就是把整個元素的左邊界往回拉 380px(區塊寬度 760px 的一半,負值就是往回拉)。如圖三所示,我們可以看到整個版面置中了。

軟件推介:網頁草稿設件軟件Balsamiq Mockups


最近在煩惱網站設計、Template 設計等,所有設計都是由靈感至草稿開始。Balsamiq Mockups 提供手稿風格的 mockup presentation,包括有網上版、及下載版(Adobe Air Application)

。也因為 Balsamiq Mockups 是 Adobe Air 的應用程式,所以可以跨平台,不論 Windows、Mac或 Linux 都可以跑,非常方便。離線版也可以用快速鍵進行剪貼簿操作,而線上版就無法用快速鍵了。下載版(US$79)畫好的layout 可以另存成一個 xml 檔,也可以存成 png 圖片檔。

DESKTOP APPLICATIONS

DIALOG BOXES

WEB APPLICATIONS

WEB SITES


IPHONE APPLICATIONS

RICH INTERNET APPLICATIONS


Balsamiq Mockups 內建75種常用的網頁元件,要用時拉到工作底稿上,調一下位置和大小,填一下內部文字就好了。很快就可以畫出一個有模有樣,清爽易讀的網頁 layout 草稿。

Balsamiq Mockups 還有一個頗實用的功能,可切換到全螢幕展示模式;進入全螢幕模式後,畫面上會出現一個超大的滑鼠指標,便於指向你要解說的部位,這樣連雷射筆都可以省下來了。

要輸入中文時,要先勾選 View – Use System Fonts,這樣就能正常使用中文。


Sample:Mockups To Go

教學:

http://www.youtube.com/watch?v=aJTuFRaIi_g



網頁設計技巧:CSS固定footer


當做一個頁面時,如果頁面內容很少,不足於填充整個畫面,按普通的佈局,就會出現下面圖片中的樣子(也就是底部內容並沒有位於窗口的底部,而留下了大量空白。


對於追未完美的設計師來說,這是不美觀的。網上有一些解決方案,但會出現當改變窗口高度時,底部和正文重疊的BUG。儘管沒有多少人會有事沒事兒的去改變窗口高度,但設計嘛,追求的就是盡善盡美。


下面是我找到的一個比較完美的方法,來自國外的設計達人,純CSS,可以實現:當正文內容很少時,底部位於窗口最下面。當改變窗口高度時,不會出現重疊問題。



HTML代碼:
<div id="wrap">
    <div id="main" class="clearfix">
        <div id="content">
        </div>
        <div id="side">
        </div>
    </div>
</div>
<div id="footer">
使用這個佈局的前提,就是footer要在總的div容器之外,footer使用一個層,其它所有內容使用一個總的層。如果確實需要到添加其它同級層,那這個同級層就必須使用position:absolute進行絕對定位。

CSS代碼:
html, body, #wrap {height: 100%;}
body > #wrap {height: auto; min-height: 100%;}
#main {padding-bottom: 150px;}  /* 必須使用和footer相同的高度 */
#footer {position: relative;
    margin-top: -150px; /* footer高度的負值 */
    height: 150px;
    clear:both;}
需要注意的就是#main的padding值、footer的高度和負margin值,需要保持一致。

瀏覽器的兼容:
對#main部份進行著名的Clearfix Hack:
clearfix:after {content: ".";
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;}
.clearfix {display: inline-block;}
/* Hides from IE-mac \*/
* html .clearfix { height: 1%;}
.clearfix {display: block;}
/* End hide from IE-mac */
測試於兩欄懸浮佈局,兼容各大主流瀏覽器,包括Google Chrome。


  • 網絡上之前比較知名的footer佈局有Ryan Faits創造的,不過它的方法在HTML代碼中會有一個空的div層。嚴格來說,是不符合語義網代碼標準的。
  • 另外,還有一篇Exploring Footers article from A List Apart,但使用了一些JavaScript代碼。

原站:CSS Sticky Footer

網頁設計:做網站該注意哪些基本要素?

以下內容參考Google對網站管理員的建議,適當的地方我們已經添加註解。

設計與內容指南

  • 網站應具有清晰的層次結構和文本鏈接。每個網頁應至少可以通過一個靜態文本鏈接打開。文本鏈接不同於通過javascript等其他代碼生成的鏈接。如有些網頁下面的「打印」即不是通過文本鏈接實現。
  • 為用戶提供網站地圖,列出指向網站重要部分的鏈接。如果網站地圖上的鏈接超過或大約為 100 個,則需要將網站地圖拆分為多個網頁。
  • 網站應實用且信息豐富,網頁文字應清晰、準確地表述要傳達的內容。
  • 要考慮到用戶會使用哪些字詞來查找您的網頁,確保網站上確實包含了這些文字。 深刻理解這一點,會讓你受益匪淺。
  • 儘量使用文字而不是圖形來顯示重要的名稱、內容或鏈接。Google 抓取工具無法識別圖形中所含的文字。 特別是友情鏈接時,如果你是為了提供PR和排名,則用文字鏈接是重要的。
  • 確保對 TITLE 和 ALT 標記屬性的描述和表達準確無誤。切記為網頁的圖片加上 ALT描述,這裡是你放關鍵詞的好地方。
  • 檢查鏈接是否損壞,並確保 HTML 格式正確。 請使用 Google網站管理員工具時刻檢查自己網站的鏈接,如有損壞,注意刪除或修正。
  • 如果您決定採用動態頁面(即網址中包含"?"字符),請注意並非所有搜索引擎的抓取工具都能像抓取靜態網頁一樣抓取動態網頁。縮短參數長度並減少參數數目對動態頁面是有幫助的。建議採用URL重寫技術進行動態鏈接靜態化。
  • 將特定網頁上的鏈接限制在合理的數量內(少於 100 個)。如本頁,包含內部鏈接和外部鏈接不要超過 100個。

網站準備就緒之後

  • 將其他相關網站鏈接到您的網站。 就是尋找友情鏈接。
  • 將網站提交給 Google,網址為:http://www.google.com/addurl.html 。
  • 將 Sitemap 作為 Google網站管理員工具的一部分提交。Google 使用您的 Sitemap 來瞭解您網站的結構,並提高對您網頁的抓取率。
  • 確保應瞭解您網頁的所有網站都知道您的網站已處於在線狀態。即指向你網站的鏈接都需要是正常的,而非損壞。
  • 將您的網站提交到相關的目錄,例如,Open Directory Project 和 Yahoo!,以及其他特定行業的專業網站。