整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          學html的時候,網頁寬度還記得960px嗎,為什么?

          咱們來看一組數據:

          首頁頁面寬度 px:

          Yahoo! 950

          淘寶 950

          MySpace 960

          新浪 950

          網易 960

          Live Search 958

          搜狐 950

          優酷 960

          AOL 960

          上面列舉的都是Alexa全球排名前100的站點,它們的首頁寬度為950px/960px. 除了微軟的Live Search, 這些站點有個共同特點:頁面結構較復雜,都可以認為是門戶型網站。

          再來看看Google, YouTube, Facebook, Flickr!, eBay等知名站點,它們的首頁寬度沒什么固定規律,共同的特點是:功能專一,頁面結構相對簡單。

          根據上面的簡單分析可以認為:當搭建頁面結構復雜的門戶型網站時,開發工程師們不約而同地都選擇將頁面寬度定為950px/960px.

          這是一件很有趣的事情,為什么要選擇這個寬度呢?這個寬度值究竟有什么魔力?

          神奇的960

          設計師們對蘋果情有獨衷。在 1024 x 768 的分辨率下,打開Firefox:

          自然狀態下,Firefox窗體的大小約為 974 x 650. 減掉左右兩邊7px的邊框,網頁的實際大小為上圖中的紅色部分,高寬為 960 x 650.

          有趣的960就這樣出現了。是的,可以認為一切就這么簡單。柵格系統最早出現在平面設計領域,設計師們愛用蘋果,蘋果下瀏覽器的默認寬度為960px, 于是960就這么“自然”地出現了。

          數字背后的奧妙

          上面的“自然”出現,細究自然是不讓人信服的。蘋果系統的設計者們在沒有喝醉酒的情況下選擇了960,而不是其它什么1000之類的整數,自然另有奧妙。

          科學界有很多問題都可以歸結到數學問題上,我們也從數學著手:

          960可以分解為2的6次方乘以3和5, 這使得960可以分割成以下寬度的整數倍:

          2, 3, 4, 5, 6, 8, 10, 12, 15, 16, 20, 24, 30, 32, 40,48, 60, 64, 80, 96, 120, 160, 192, 240, 320, 480共26種(26 = 7 * 2 * 2 - 2, 減去2是去掉1和960自身),我們標記為:

          N(960) = N(2^6 * 3 * 5) = 26

          根據上面的算法,可以得到:

          N(360) = N(2^3 * 3^2 * 5) = 22N(480) = N(2^5 * 3 * 5) = 22N(720) = N(2^4 * 3^2 * 5) = 28N(750) = N(2 * 3 * 5^3) = 14N(800) = N(2^5 * 5^2) = 16N(960) = N(2^6 * 3 * 5) = 26N(1000) = N(2^3 * 5^3) = 14N(1024) = N(2^10) = 9N(1440) = N(2^6 * 3^2 * 5) = 34N(1920) = N(2^7 * 3 * 5) = 30

          根據直覺(嚴格證明也不難,不過還是留給數學系的學生去證明吧),我們得到一個有趣的結論:

          要使得N(width)較大,width的取值有兩個系列:

          A系列: …, 320, 720, 1440, …

          感覺有用的朋友,點個關注,給個收藏,就是對我堅持更新,最好的支持

          頁可見區域寬:document.body.clientWidth

          網頁可見區域高:document.body.clientHeight

          網頁可見區域寬:document.body.offsetWidth (包括邊線的寬)

          網頁可見區域高:document.body.offsetHeight (包括邊線的寬)

          網頁正文全文寬:document.body.scrollWidth

          網頁正文全文高:document.body.scrollHeight

          網頁被卷去的高:document.body.scrollTop

          網頁被卷去的左:document.body.scrollLeft

          網頁正文部分上:window.screenTop

          網頁正文部分左:window.screenLeft

          屏幕分辨率的高:window.screen.height

          屏幕分辨率的寬:window.screen.width

          屏幕可用工作區高度:window.screen.availHeight

          屏幕可用工作區寬度:window.screen.availWidth

          HTML精確定位:scrollLeft,scrollWidth,clientWidth,offsetWidth

          scrollHeight: 獲取對象的滾動高度。

          scrollLeft:設置或獲取位于對象左邊界和窗口中目前可見內容的最左端之間的距離

          scrollTop:設置或獲取位于對象最頂端和窗口中可見內容的最頂端之間的距離

          scrollWidth:獲取對象的滾動寬度

          offsetHeight:獲取對象相對于版面或由父坐標 offsetParent 屬性指定的父坐標的高度

          offsetLeft:獲取對象相對于版面或由 offsetParent 屬性指定的父坐標的計算左側位置

          offsetTop:獲取對象相對于版面或由 offsetTop 屬性指定的父坐標的計算頂端位置

          event.clientX 相對文檔的水平座標

          event.clientY 相對文檔的垂直座標

          event.offsetX 相對容器的水平坐標

          event.offsetY 相對容器的垂直坐標

          document.documentElement.scrollTop 垂直方向滾動的值

          event.clientX+document.documentElement.scrollTop 相對文檔的水平座標+垂直方向滾動的量

          IE,FireFox 差異如下:

          IE6.0、FF1.06+:

          clientWidth = width + padding

          clientHeight = height + padding

          offsetWidth = width + padding + border

          offsetHeight = height + padding + border

          IE5.0/5.5:

          clientWidth = width - border

          clientHeight = height - border

          offsetWidth = width

          offsetHeight = height

          (需要提一下:CSS中的margin屬性,與clientWidth、offsetWidth、clientHeight、offsetHeight均無關)

          網頁可見區域寬: document.body.clientWidth

          網頁可見區域高: document.body.clientHeight

          網頁可見區域寬: document.body.offsetWidth (包括邊線的寬)

          網頁可見區域高: document.body.offsetHeight (包括邊線的高)

          網頁正文全文寬: document.body.scrollWidth

          網頁正文全文高: document.body.scrollHeight

          網頁被卷去的高: document.body.scrollTop

          網頁被卷去的左: document.body.scrollLeft

          網頁正文部分上: window.screenTop

          網頁正文部分左: window.screenLeft

          屏幕分辨率的高: window.screen.height

          屏幕分辨率的寬: window.screen.width

          屏幕可用工作區高度: window.screen.availHeight

          屏幕可用工作區寬度: window.screen.availWidth

          -------------------

          技術要點

          本節代碼主要使用了Document對象關于窗口的一些屬性,這些屬性的主要功能和用法如下。

          要得到窗口的尺寸,對于不同的瀏覽器,需要使用不同的屬性和方法:若要檢測窗口的真實尺寸,在Netscape下需要使用Window的屬性;在IE下需要 深入Document內部對body進行檢測;在DOM環境下,若要得到窗口的尺寸,需要注意根元素的尺寸,而不是元素。

          Window對象的innerWidth屬性包含當前窗口的內部寬度。Window對象的innerHeight屬性包含當前窗口的內部高度。

          Document對象的body屬性對應HTML文檔的標簽。Document對象的documentElement屬性則表示HTML文檔的根節點。

          document.body.clientHeight表示HTML文檔所在窗口的當前高度。document.body. clientWidth表示HTML文檔所在窗口的當前寬度。

          實現代碼

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

          <html xmlns="http://www.w3.org/1999/xhtml">

          <head>

          <title>請調整瀏覽器窗口</title>

          <meta http-equiv="content-type" content="text/html; charset=gb2312">

          </head>

          <body>

          <h2 align="center">請調整瀏覽器窗口大小</h2><hr>

          <form action="#" method="get" name="form1" id="form1">

          <!--顯示瀏覽器窗口的實際尺寸-->

          瀏覽器窗口 的 實際高度: <input type="text" name="availHeight" size="4"><br>

          瀏覽器窗口 的 實際寬度: <input type="text" name="availWidth" size="4"><br>

          </form>

          <script type="text/javascript">

          <!--

          var winWidth = 0;

          var winHeight = 0;

          function findDimensions() //函數:獲取尺寸

          {

          //獲取窗口寬度

          if (window.innerWidth)

          winWidth = window.innerWidth;

          else if ((document.body) && (document.body.clientWidth))

          winWidth = document.body.clientWidth;

          //獲取窗口高度

          if (window.innerHeight)

          winHeight = window.innerHeight;

          else if ((document.body) && (document.body.clientHeight))

          winHeight = document.body.clientHeight;

          //通過深入Document內部對body進行檢測,獲取窗口大小

          if (document.documentElement && document.documentElement.clientHeight && document.documentElement.clientWidth)

          {

          winHeight = document.documentElement.clientHeight;

          winWidth = document.documentElement.clientWidth;

          }

          //結果輸出至兩個文本框

          document.form1.availHeight.value= winHeight;

          document.form1.availWidth.value= winWidth;

          }

          findDimensions();

          //調用函數,獲取數值

          window.onresize=findDimensions;

          //-->

          </script>

          </body>

          </html>

          源程序解讀

          (1)程序首先建立一個表單,包含兩個文本框,用于顯示窗口當前的寬度和高度,并且,其數值會隨窗口大小的改變而變化。

          (2)在隨后的JavaScript代碼中,首先定義了兩個變量winWidth和winHeight,用于保存窗口的高度值和寬度值。

          (3)然后,在函數findDimensions ( )中,使用window.innerHeight和window.innerWidth得到窗口的高度和寬度,并將二者保存在前述兩個變量中。

          (4)再通過深入Document內部對body進行檢測,獲取窗口大小,并存儲在前述兩個變量中。

          (5)在函數的最后,通過按名稱訪問表單元素,結果輸出至兩個文本框。

          (6)在JavaScript代碼的最后,通過調用findDimensions ( )函數,完成整個操作。

          置對象寬度以百分比計算,隨外級對象寬度變化而自適應按百分比顯示寬度,接下來為大家案例演示百分比寬度樣式。

          假如設置一個css寬度為80%,為了觀察效果設置css border為黑色實線邊框,css高度為100px,對象css命名為“.thinkcss”

          Css代碼如下

          .thinkcss{margin:0 auto;width:80%;height:150px;border:1px solid #000}

          /* css注釋: 設置css margin:0 auto是為了讓此對象居中 */

          Html代碼如下

          <div class="thinkcss">我寬度為百分比80%,高度為150px 1px黑色邊框</div>


          主站蜘蛛池模板: 精品伦精品一区二区三区视频| 国产亚洲自拍一区| 亚洲第一区香蕉_国产a| 精品欧洲av无码一区二区14| 在线播放国产一区二区三区 | 亚洲第一区精品观看| 99久久精品费精品国产一区二区| 精品欧洲av无码一区二区14| 国产一区三区三区| 国产嫖妓一区二区三区无码| 中文字幕一区二区三区久久网站| 国产精品亚洲综合一区| 四虎成人精品一区二区免费网站| 无码少妇一区二区性色AV| 精品人妻少妇一区二区三区在线| 精品国产福利在线观看一区| 日韩爆乳一区二区无码| 亚洲色精品vr一区二区三区| 国产激情一区二区三区 | 无码毛片一区二区三区中文字幕| 国产精品无码一区二区在线| 伊人色综合一区二区三区影院视频 | 日本韩国黄色一区二区三区| 国产成人一区二区三区在线| 人妻无码一区二区视频| 波多野结衣一区二区三区88 | 久久久久一区二区三区| 国产91精品一区二区麻豆亚洲| 日本一区二区三区日本免费| 欧美亚洲精品一区二区| 亚洲高清一区二区三区| 麻豆AV一区二区三区久久| 久久久综合亚洲色一区二区三区 | 色一乱一伦一图一区二区精品| 亚洲国产成人精品久久久国产成人一区二区三区综 | 国产乱码精品一区二区三| 国产成人精品一区二区三在线观看| 精品不卡一区二区| 亚洲性无码一区二区三区| 少妇一晚三次一区二区三区| 欧美日韩综合一区二区三区|