2012-03-03 20 views
0

中心顯示的div我有一個顯示「請稍候」一個div。對於DIV標記是在網頁

<div id="pleaseWait" class="divOuterPleaseWait" style="left:expression((documentElement.clientWidth-this.offsetWidth)/2);top:expression(documentElement.scrollTop+((documentElement.clientHeight-this.clientHeight)/2));">Please Wait...</div>

這是工作的罰款與IE7。在IE7中,div顯示在頁面的中心。但在其他瀏覽器(例如IE8,IE9,FireFox,Google Chrome等)中不包括例外行爲。我應該如何讓所有瀏覽器都能正常工作?我也可以將內聯樣式移動到我的CSS?

+1

保證金:0汽車???? – Jack 2012-03-03 09:57:31

+0

@Pankaj保證金:0汽車;作品寬度定義寬度 – sandeep 2012-03-03 09:59:24

+0

爲什麼寬度是一個問題,如果你只顯示該消息? – yoda 2012-03-03 10:01:46

回答

1

參見this SO answer,或this jsfiddle(按下 '確認' 按鈕)。您在問題中顯示的CSS是瀏覽器特定的(特別是:IE)。在JavaScript中,您可以通過確定「視口」尺寸(可用屏幕的高度/寬度)來定位元素,並將元素相對於這些尺寸進行定位。這裏的鏈接展示了一種方法來做到這一點。

0

它不會在「其他瀏覽器」工作,因爲你正在使用你的CSS表達式這是1)非常糟糕的,適用於各種原因(慢,不推薦使用,非標)和2)是不必要的。

您可以使用純CSS定位(百分比和切緣陰性)或一些JavaScript(jQuery讓這很容易),以實現在所有的瀏覽器同樣的事情。

+0

問題不在於爲什麼這不起作用?這是什麼使其工作。你有解決方案嗎? – 2012-03-03 10:01:48

+0

@AshBurlaczenko - 請參閱我的回答:「百分比和負利潤率」。 – 2012-03-03 10:03:57

3

的一個好方法居中一個div是使用固定定位,頂部和左側設定爲50%和左,上邊距一半的寬度/高度的負:

http://jsfiddle.net/fLa4S/

+0

恰好,雖然固定定位在IE 7一些特質(不尊重z索引,我已經注意到附圖錯誤)。 – 2012-03-03 10:02:14

0

另一個的方法:

<div style="text-align:center;width=200px;margin-left:auto;margin-right:auto">Please wait...</div> 
0

CSS表達式只能在IE工作。但是,使用它們通常不是一個好主意,因爲它們不符合W3C標準,而且當你大量使用它們時,它們可能會非常慢。

的CSS屬性的位置是:固定可以幫助你在這裏:

#pleaseWait { 
    width: 400px; 
    height: 200px; 
    position: fixed; /* IE8+ */ 
    left: 50%; 
    top: 50%; 
    margin-left: -200px; /* half of width*/ 
    margin-top: -100px; /* half of height*/ 
} 

如果你仍然支持< = IE7,你必須使用JavaScript(但不是CSS定義中!)

0

使用汽車邊距和定義寬和高應該足夠

<div style="width:200px;height:50px;margin:auto;text-align:center">Please wait ...</div> 

如果你只是想中心VERTI caly,使用margin:0 auto;

PS:如果你想更XHTML-正確的,把你的CSS的CSS文件,並使用一類或ID來定義的CSS-造型

之前我已經回答了這個:How to set the div in center of the page