採用DIV+CSS布局的好)

來源:互聯網
上載者:User
採用DIV+CSS布局的好添加時間:2007-4-22 

  1、簡介:為何使用表格排版是不明智的?

  表格之所以存在於 HTML 中,只是為了一個目的:顯示表格狀的資料。然而此後的 border="0" 使得設計師可以將圖片和文本放在這無形的網格中。迄今為止,表格仍然主導著視覺豐富的網站的設計方式,但它卻阻礙了一種更好的、更有親和力的、更靈活的,而且功能更強大的網站設計方法。

  2、概覽:這對我有什麼用處?

  我們將告訴你這樣一種工作方式,它會:

  使你的頁面載入得更快
  降低你的流量費用
  讓你在修改設計時更有效率而代價更低
  協助你的整個網站保持視覺的一致性
  讓你的網站可以更好地被搜尋引擎找到
  使你的網站對瀏覽者和瀏覽器更具親和力
  在世界上越來越多人採用 Web 標準時,它還能 提高你的職場競爭實力 (事實上也就是降低失業的風險)。

  3、表格帶來的問題

  把格式資料混入你的內容中。
  這使得檔案的大小無謂地變大,而使用者訪問每個 頁面時都必須下載一次這樣的格式資訊。
  頻寬並非免費。
  這使得重新設計現有的網站和內容極為消耗勞力 (且昂貴)。
  這還使我們保持整個網站的視覺的一致性極難,花費也極高。
  基於表格的頁面還大大降低了它對殘疾人和用手機或 PDA 瀏覽者的親和力。

  4、過渡性的設計

  使用 margin 和 padding 來代替多餘的表格單元和間隔 GIF。

  使用 link 和 @import 來載入樣式。前者用於早期瀏覽器,後者給現在的瀏覽器。

  <link href="basic.css" rel="stylesheet" type="text/css">

  <style type="text/css" media="screen"><!--
  @import url(modern.css) screen;
  --></style>

  5、結構化標記:所寫即所想,所想即所寫

  即便書寫 CSS 很簡單,使用 CSS 來排版卻真的需要一種和我們以往有些不同的思維方式。

  我們排版時考慮的不是“這個東西放在這兒,那個東西放在那兒”,而是頁面中資訊的類別和資訊的結構。

  我們用 <h1> 標記來標示最重要的頭條;次一級的條目則用 <h2> 來標記,以此類推;而段落則放在 <p> 標記中。

  這就是我們稱之為“結構標記”或“語義標記”的東西。

  你的內容將不放在表格和表格元素中,取代它們的是 div 元素。還要給你的 div 元素安排一個 id 或 class,不過這是為了描述它們的內容或功能,而非它們的外觀。

  當你把某個對象設為斜體時,大概要麼就是想強調它,要麼是想 引用某個書中標題吧? 如果是前者,應該用 <em>;如果是後者,其實得用 <cite>。

  如果某個對象被標記為粗體,事實上它應該被標記的是, <strong>。

  如果你希望在某處添加一個換行,這大概是開始了一個新的開頭。如果不是開頭,會不會是某種在你的網站中出現過的class (類型)?在上面兩種情況下,你都應該用 CSS 替換 <br>。

  .foo {display:block}

  考慮你需要導航的內容是一些無序的連結這種情況:

  用 <ul> 標籤來編輯它們。

  link1
  link2
  link3
  link4
  link5
  水平導航條
  我們可以用 CSS 來控制這個列表顯示在網頁上的外觀。

  通過使用 display:inline 我們可以建立水平導航條。

  link1
  link2
  link3
  link4
  link5
  這是上面這個導航條用到的代碼:

  #nav1{
  margin-top: 1em;
  margin-bottom: 0.5em;
  }

  #nav1 ul {
  background-color: silver;
  text-align: center;
  margin-left: 0;
  padding-left: 0;
  border-bottom: 1px solid gray
  }

  #nav1 li {
  list-style-type: none;
  padding: 0.25em 1em;
  border-left: 1px solid white;
  display: inline
  }

  #nav1 li:first-child {
  border: none;
  }

  垂直導航條
  link1
  link2
  link3
  link4
  link5
  這是垂直導航條的代碼:

  #nav2 {
  background-color: silver;
  border: solid 1px gray;
  width: 8em
  }

  #nav2 ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  border: none
  }

  #nav2 li {
  margin: 0;
  padding: 0.25em 0.5em 0.25em 1em;
  border-top: 1px solid gray;
  width: 100%;
  display: block
  }

  html>body #nav2 li {
  width: auto;
  }

  #nav2 li:first-child {
  border: none
  }

  6、從玩弄表格技巧到遵循 Web 標準:通盤考慮

  如果你已經把網站的內容分好了類,那麼是時候分析每個頁面,把它們按照邏輯關係進行分解了。

  主導航條
  子導航條
  頁首與頁尾
  內容
  相關資訊
  其他
  注意分析由巢狀表格格、空白分隔字元和邊框元素組成的表格結構 (因為我們希望把它們替換為用 div 標記組織的那種簡單得多的表格結構)。

  一旦你分析好頁面的結構,就可以著手揭開表象,分析你現在的頁面代碼中可以轉換成結構化標記的那些地方。

  作為一個完美主義者,消滅所有的 <font> 標記和間隔 GIF 吧!
  同樣的,一併搞定 <b> 和 <br> 標記。
  去除表格中的那些外觀標記 (bgcolor, background, 等等)。
  把純粹用來表示外觀的那些 CSS 調用 (比如 <span class="header">) 改成結構化的標記。

  7、把描述外觀的標記改為描述結構的標記

  你可以使用“尋找加替換”(或者Regex),不過最好的方法還是在瀏覽器裡開啟這個頁面,然後把文本複製粘貼到你的 HTML 編輯程式裡。

  關鍵還是要用結構化的方式來思考!僅僅把 <b> 標記替換為 <strong> 是遠遠不夠的。

  最重要的條目是哪個?用 <h1> 來標記它。次要一點的就用 <h2>,依此類推。用 <p> 來標記段落。把導航條標記為無序列表。

  選定一個 DOCTYPE 來使用。(我們推薦 XHTML transitional,除非你是此道高手,否則別用 XHTML strict。)

  8、把你的頁面合理分布在的 div 中

  把你的主導航條放在一個 id 屬性設為 mainnav 的 div 中,子導航條則放在一個 id 或者 class 是 subnav 的 div 中。而頁尾類似這個形式:<div id="footer">,至於整個頁面,它被放在 <div id="content"> 裡邊。

  即便現在它還不怎麼討人喜歡,但只要你開始給樣式表添加規則,它就會馬上變得可愛起來。

  9、是開始自己編寫 CSS 的時候了

  首先,給每個 div 設定一個邊界。例如: div {border: 1px dotted gray; padding: .5em} 這可以協助你完完整整地看到裡邊的內容,也不再需要捲動螢幕了。

  首先為以定義的元素編寫 CSS (<html>, <body>, <p>, <h1>, <h2>, <ul>, <li>, 等等。)

  盡量運用上下文相關或者有遞迴下降結構的選擇符。這可以使得你的標記更清晰。例如:#subnav li {border: 1px solid black; padding: .5em; display: inline} 將能夠只能影響你的子導覽列的 div 中的清單項目。

  在儘可能多的瀏覽器下進行測試,畢竟你可以讓朋友協助你用它們自己的瀏覽器測試。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.