2013-04-01 26 views
5

Sayfanın başına% 10 altında konumlandırmak istediğim bir div var. Bu CSS kuralını kullanıyorsanız:Sayfa öğesinin yüzdesi kullanılarak HTML öğesinin kenar boşluğu nasıl ayarlanır?

#div-block{ 
    margin-top: 10%; 
} 

div bilgisayarlı margin-top yaklaşık 192px (benim ekran çözünürlüğü 1920 x 1080'dir) Ben hesaplanması için sayfanın genişliğini (ziyade yüksekliğinden daha) kullanıyorsanız test nedenle tüm tarayıcılar değer.

Yalnızca CSS kullanarak yüksekliği (1080px varsayalım) kullanarak hesap yapmak için nasıl yapabilirim?

+1

Neden top yok:% 10? – dfsq

cevap

10

yapardı. Bir kenar boşluğunun yüzdesine göre bir kenar boşluğu ayarlayamazsınız.

Bir olasılık, öğeye position: absolute; top 10%'u ayarlamak veya JavaScript'i kullanmaktır.

http://jsfiddle.net/g8Re6/

+0

.. 'top' kullanılarak üst konumun ayarlanmasının doğal yolundan bahsetmiyoruz. – dfsq

+0

Yanıtladığınız için teşekkür ederiz. Ve bu davranışı değiştirmenin bir yolunu biliyor musun? –

+0

@NicoRodsevich Bu davranış? http://www.w3.org/TR/CSS2/box.html#margin-properties –

3

Yüzdesi, div öğesinin içerdiği öğeden alınmıştır. Bunun yerine, sayfanın yüksekliğini sayfa yüksekliğine göre ayarlamak için javascript veya jQuery kullanabilirsiniz.

$(window).height(); // returns height of browser viewport 

$(document).height(); // returns height of HTML document 

Yani oran doğru davranıştır hesaplamak için genişliği kullanma

var documentHeight = $(document).height(); 
var percentageHeight = documentHeight * .1; 

$("#div-block").height(percentageHeight); 
+0

Çalıştığımız tanklar, ancak bunu yapmak için bir CSS-only yolu olup olmadığını merak ediyorum –

+0

Mutlak konumlandırmayı ayarlamadan - kişisel olarak hor görüyorum :) –

+0

Evet, ben de küçümsemekle kaldım, ama ben sadece değiştim aklımı, bunu yapmanın doğru yolu budur, bu yüzden ... –

İlgili konular