世界地圖(無接縫)

讓你的頁面在ie6也能玩position:fixed

測試通過ie6、ie7、ff2、Opera9、Safari3

原理

在瀏覽器中固定位置(懸停),是不是很酷啊,可惜我們的ie6卻不支持,怎麼辦?寫hack?寫js(如果我只是一個css代碼工人呢)?是不是太麻煩了呢?如果你這樣想想…(為什麼會懸停呢?在瀏覽器外面不就可以了嗎?),那我們是不是把html,body元素隱藏掉了,再用div(比如<div id=body>)元素偽裝成body元素,再把要懸停的元素(比如div)寫在id=body元素的外層,是不是留可以了呢?^_^』

實例

我們可以先新建一個頁面,命名為fixed.html,下面寫開始寫CSS
程序代碼 程序代碼
/*隱藏htmml,body*/
html,body{height:100%; width:100%; overflow:hidden; margin:0}  
/*用div偽裝body*/
div#body{
  position:relative;
  width:100%;
  height:100%;
  overflow-x:auto;
  overflow-y:scroll;
  background:#fff;
  cursor:default
}  
/*懸停的元素 id=fixed*/
div#fixed{
  position:absolute;
  z-index:10;
  left:100px;
  top:100px;
  width:400px;
  height:300px;
  background:#000;
  color:#fff;
  text-align:center;  
  line-height:300px
}

html
程序代碼 程序代碼
<div id="fixed">
    討厭,我怎麼不會動了啊?
</div>
<!-div id=body 為body--->
<div id="body">
  <p>test1</p>
  <p>test1</p>
  <p>test1</p>
  <p>test1</p>
  <p>test1</p>
  <p>test1</p>
  <p>test1</p>
  <p>test1</p>
  <p>test1</p>
  <p>test1</p>
  <p>test1</p>
  <p>test1</p>
  <p>test1</p>
  <p>test1</p>
  <p>test1</p>
  <p>test1</p>
  <p>test1</p>
  <p>test1</p>
  <p>test1</p>
  <p>test1</p>
  <p>test1</p>
  <p>test1</p>
  <p>test1</p>
</div>

上面不購標準哦?
標準的,實用的(實在找不到形容詞了!)…
我們給寫個小小的hack,使它兼容各個瀏覽器吧?好!請看下面!
程序代碼 程序代碼
/*隱藏htmml,body===//我們在這裡只給ie6隱藏body,其他瀏覽器使用position:fixed*/
/*html,body{height:100%; width:100%; overflow:hidden; margin:0}*/  
/*簡簡單單...*/
html,body{height:100%; width:100%; overflow:visible!important; overflow:hidden}
/*用div偽裝body*/
div#body{
  position:relative;
  width:100%;
  height:100%;
  overflow-x:auto;
  overflow-y:scroll;
  background:#fff;
  cursor:default
}
/*懸停的元素 id=fixed*/
div#fixed{
  position:fixed!important;
  position:absolute;
  z-index:10;
  right:100px;
  bottom:100px;
  width:400px;
  height:300px;
  background:#000;
  color:#fff;
  text-align:center;
  line-height:300px
}

HTML代碼


[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]


div#fixed不在div#body裡面,如何會建立相對和絕對定位的關係.. 它在在相對誰 絕對定位?
還有 body裡的單個div可以分塊下載,如果用一個大div當body用那會不會造成內容複雜效率不佳,先是一片空白,等內容加載完了才突然顯示??

相對的是父容器,內容複雜效率不佳?那要看你如何架構你的佈局了,如果你不是亂嵌套的話,瀏覽器呈現是不會慢的!


[本日誌由 hanher 於 2007-12-12 04:57 AM 編輯]
文章來自: 麥雞的博客
引用通告: 查看所有引用 | 我要引用此文章
Tags:
評論: 0 | 引用: 0 | 查看次數: 3772
發表評論
昵 稱:
密 碼: 游客發言不需要密碼.
內 容:
驗證碼: 驗證碼
選 項:
雖然發表評論不用注冊,但是為了保護您的發言權,建議您注冊帳號.
字數限制 1000 字 | UBB代碼 開啟 | [img]標簽 關閉