2017-10-28 284 views
1

由於4k顯示器是新生的,我需要對齊顯示器所有四面的小頁面。它由絕對定位的div組成,放置在一個容器內。 身體:CSS整頁垂直和水平對齊

<div id="mainArea"> 
    div elements containing text, images, links go here. 


    </div> 

的CSS:

body { 

background-image: url(); 


} 

.mainArea {

position: absolute; 

width: 882px; 

height: 420px; 

left: 50%; top: 50%; 
transform: translate(-50%, -50%); 

我已經嘗試了一些互聯網上的建議,但他們基本上解決了水平和垂直簡單內容的對齊,如文字或圖像,而不是整個網站。這些不知何故在我的情況下不起作用,也許是由於我的經驗不足。任何援助讚賞。

+0

你的CSS看起來應該只要沒有其他定位的元素是mainArea'的'祖先工作。也許問題在於你已經在你的CSS中編寫了'.mainArea',它將選擇具有* class * mainArea的元素,但是你的HTML具有mainArea作爲* ID *。你的CSS應該說'#mainArea'來引用具有該ID的元素。 – cjl750

+0

最初的psot應該有#而不是。我在這裏改變了它在stackoverflow,因爲它顯示在一個大的字體相對於其餘的代碼。這就是我決定改變的原因。 現在,這給我以下看看 - http://alsem.lv/index_de2.php –

+1

看看這個:) https://philipwalton.github.io/solved-by-flexbox/demos/vertical-centering /(垂直居中 - 由Flexbox解決 - 清理,免費CSS) – helb

回答

0

使用calc

position: absolute; 

width: 882px; 

height: 420px; 

left: calc((100vw - 882px)/2); 
top: calc((100vh - 420px)/2); 

transform: translate(-50%, -50%); 
+0

不這樣做。結果 - http://alsem.lv/index_de3.php –

+1

更新。以下似乎工作: .CN { display:flex; justify-content:center; align-items:center; } .inner { \t position:absolute; \t top:50%; \t left:50%; \t transform:translate(-50%, - 50%); \t width:1246px; \t height:810px; } 輸出 - http://alsem.lv/index_de4.php 我在http://quirktools.com/screenfly/#u=http%3A//alsem.lv/上檢查了使用不同分辨率的視圖index_de4.php&w = 1920&h = 1080&a = 4 它在大屏幕上顯示效果很好,但此方法在智能手機和平板電腦上無法使用,因此無法在頂部空間使用。有什麼建議麼? –