自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

實(shí)現(xiàn)DIV居中布局三種途徑

開發(fā) 前端
現(xiàn)在DIV+CSS布局越來越流行了,怎么實(shí)現(xiàn)div居中好像是個(gè)難題,這里給出關(guān)于DIV居中布局的幾種實(shí)現(xiàn)方法,相信會(huì)對(duì)大家有所幫助. 第一種方法:

DIV+CSS布局有很多值得學(xué)習(xí)的地方,這里和大家描述一下關(guān)于DIV居中布局的實(shí)現(xiàn)方法,主要有三種方法,每種方法都有各自的特點(diǎn),請(qǐng)看下文詳細(xì)介紹,相信通過本文描述你對(duì)DIV居中布局一定會(huì)有深刻的認(rèn)識(shí)。

關(guān)于DIV居中布局的幾種實(shí)現(xiàn)方法

現(xiàn)在DIV+CSS布局越來越流行了,怎么實(shí)現(xiàn)div居中好像是個(gè)難題。本文給出關(guān)于DIV居中布局的幾種實(shí)現(xiàn)方法,相信會(huì)對(duì)大家有所幫助.

第一種方法:

  1. body{  
  2. margin:0pxauto;  
  3. text-align:center;  
  4. }  

但是如果沒申明下面這句解析方法,頁面就會(huì)出錯(cuò).不能居中對(duì)齊!
 

  1. <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.1//EN"  
  2.  
  3. "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
  4.  
  5.  

但是有時(shí)候頁面并不能全部按上面規(guī)定的代碼格式來編寫,比如說要改多彩滾動(dòng)條.

第二種方法:

  1.   margin-left:50%;  
  2.   left:-width/2;  
  3.  

  這里的width不是CSS中的Width,而是你的DIV的寬度例如你的div是768px寬,那么你就應(yīng)該設(shè)置left:-384px。

第三種方法:使用JS來控制div居中.

在頁面之中添加了下面的一小段代碼.

  1. <scriptlanguagescriptlanguage="javascript" 
  2.  
  3. type="text/javascript"src="function.js"></script> 

function.js內(nèi)容:

  1. if(window.screen.width>800)  
  2. {document.write("<styletypestyletype=\"text/css\"> 
  3.  
  4. body{margin-left:"+(window.screen.width-800)/2+"px}</style>");}  

經(jīng)過測(cè)試.可以正常實(shí)現(xiàn)DIV居中

補(bǔ)充一點(diǎn):上面這段JS必須放在你的最后一個(gè)CSS連接或</style>的后面.

◆下面是這種方法的詳細(xì)講解:

首先解釋一下JS中窗口和網(wǎng)頁的幾種尺寸屬性的含義

document.body.clientWidth(網(wǎng)頁可見區(qū)域?qū)挘菏侵笧g覽器顯示網(wǎng)頁的區(qū)域?qū)挾?,不包括瀏覽器的邊框?qū)挾群痛怪睗L動(dòng)條的寬度。大小隨著瀏覽器的窗口大小而改變。

document.body.clientHeight(網(wǎng)頁可見區(qū)域高):是指瀏覽器顯示網(wǎng)頁的區(qū)域所能看到的高度,不包括瀏覽器的邊框?qū)挾群退綕L動(dòng)條的高度。大小隨著瀏覽器的窗口大小而改變。

document.body.scrollTop(網(wǎng)頁被卷去的高):是指拉動(dòng)垂直滾動(dòng)條時(shí)網(wǎng)頁上面被地址欄及菜單欄遮蓋著的部分的高。

document.body.scrollLeft(網(wǎng)頁被卷去的左):是指拉動(dòng)水平滾動(dòng)條時(shí)網(wǎng)頁左面被左邊線遮蓋著的部分的寬。#p#

現(xiàn)在我們來分析一下程序該如何實(shí)現(xiàn):

第一步我們要實(shí)現(xiàn)的是使層在彈出時(shí)絕對(duì)DIV居中不去考慮是否有滾動(dòng)條的情況。

1.計(jì)算出層距離顯示區(qū)域左邊和上邊的位置

注意:divId指的是所要居中的層,divId.clientWidth為其寬度?。?br />  

  1. vardivId=document.getElementById("xxx");  
  2. varv_left=(document.body.clientWidth-divId.clientWidth)/2;  
  3. varv_top=(document.body.clientHeight-divId.clientHeight)/2;  
  4.  

2.把得到的值重新賦給DIV的left和top屬性

  1. divId.style.left=v_left;  
  2. divId.style.top=v_top;  
  3.  

說明:divId為DIV標(biāo)簽的id值,這樣這個(gè)層就是DIV居中顯示的了。

第二步我們要實(shí)現(xiàn)的是使在拖動(dòng)滾動(dòng)條的情況下彈出的層也能居中。

1.其實(shí)很簡(jiǎn)單我們只要把拖動(dòng)的寬度和高度加到前面計(jì)算出來的左邊距和上邊距中就OK了。

  1. v_left+=document.body.scrollLeft;  
  2. v_top+=document.body.scrollTop;  
  3.  

2.把得到的值重新賦給DIV的left和top屬性

  1. divId.style.left=v_left;  
  2. divId.style.top=v_top;  
  3.  

這樣顯示出來就是DIV居中的了。

完整代碼如下:

  1. <!doctypehtmlpublic“-//w3c//dtdhtml4.0transitional//en"> 
  2. <html> 
  3. <head> 
  4. <title>彈出的層居中顯示</title> 
  5. <metanamemetaname="generator"content="editplus"> 
  6. <metanamemetaname="author"content=""> 
  7. <metanamemetaname="keywords"content=""> 
  8. <metanamemetaname="description"content=""> 
  9.  
  10. </head> 
  11. <body> 
  12. <tablewidthtablewidth=100%> 
  13. <tr><td><spanonclickspanonclick="divcenter()">test</span></td></tr> 
  14. <tr><td><spanonclickspanonclick="divcenter()">test</span></td></tr> 
  15. <tr><td><spanonclickspanonclick="divcenter()">test</span></td></tr> 
  16. <tr><td><spanonclickspanonclick="divcenter()">test</span></td></tr> 
  17. <tr><td><spanonclickspanonclick="divcenter()">test</span></td></tr> 
  18. <tr><td><spanonclickspanonclick="divcenter()">test</span></td></tr> 
  19. </table> 
  20. <dividdivid=mxhstyle="position:absolute;  
  21. left:200px;top:30px;width:200px;height:200px;  
  22. background-color:navy;border:2px">我是居中顯示的了。</div> 
  23. </body> 
  24. </html> 
  25.  

 總結(jié)一下:

主要是這句代碼起的作用:(window.screen.width-800)/2//計(jì)算頁面應(yīng)該留出的邊距數(shù)值.800為我的DIV寬度+滾動(dòng)條寬度.實(shí)際應(yīng)用改為你自己的大小.
 

【編輯推薦】

  1. DIV居中布局的三大實(shí)現(xiàn)方法
  2. JavaScript動(dòng)態(tài)創(chuàng)建div屬性和樣式
  3. 14大CSS工具提高網(wǎng)頁設(shè)計(jì)效率
  4. 五大CSS3新技術(shù)用法指導(dǎo)
  5. 解讀DIV CSS網(wǎng)頁布局中CSS無效十個(gè)原因

 

 

責(zé)任編輯:佚名 來源: w3.org
相關(guān)推薦

2010-08-16 15:46:16

DIV居中

2010-09-10 13:40:09

DIV背景

2010-08-24 14:47:48

CSS居中

2022-06-20 15:08:42

數(shù)據(jù)貨幣數(shù)字化轉(zhuǎn)型數(shù)據(jù)

2013-04-28 10:19:33

軟件即服務(wù)SaaSSaaS應(yīng)用

2010-09-26 13:04:06

JVM內(nèi)存查看

2010-08-24 15:54:52

divfloat

2010-09-06 09:16:04

floatDIV

2010-08-26 16:19:41

DIV圓角

2012-06-20 13:46:23

CSS

2010-09-09 10:37:39

CSSdiv列高度

2011-06-21 15:27:01

SEO外鏈

2010-08-30 09:15:15

DIV高度自適應(yīng)

2014-12-31 17:42:47

LBSAndroid地圖

2021-06-24 08:52:19

單點(diǎn)登錄代碼前端

2021-11-05 21:33:28

Redis數(shù)據(jù)高并發(fā)

2012-03-18 21:10:07

2012-03-21 17:18:41

2010-09-10 13:58:38

DIV圖片居中

2010-08-16 16:39:48

DIV內(nèi)容居中
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)