2017-01-03 1 views
2

En appliquant the Golden Mean à la hauteur de mon élément, afin que la page soit divisée harmoniquement. Je l'ai fait dans jQuery:Utiliser la méthode Golden Mean pour dimensionner la hauteur de l'élément

var $win = $(window); 
    var $height = parseInt($win.height()); 
    var $golden = ($height - ($height/1.618)); 
    $("#split-div").height($golden + "px");  

Cette tailles la hauteur de #split-div de sorte que l'écran semble être divisée en deux zones par proportionnés le nombre d'or (ici simplifié à 1,618). Cependant, cela dans un script n'est pas très efficace.

Est-il possible de définir cela directement en CSS, en utilisant peut-être calc()?

#split-div {height: calc(....something....);} 

bien sûr mon problème avec ce qui précède est que je dois la hauteur de la fenêtre pour obtenir mon calcul a commencé ...

+1

Vous pouvez utiliser 'calc()' pour cela, mais sachez qu'il n'est pas pris en charge dans

+0

comment puis-je passer la hauteur de la fenêtre dans 'calc()'? – nico

+0

Vous pouvez utiliser '100vh' –

Répondre

1

Oui, il est très possible en utilisant calc():

.golden-mean { 
 
    height: calc(100vh - (100vh/1.618)); 
 
    background: red; 
 
}
<div class="golden-mean"></div>

Il suffit d'utiliser vh (V iewport H huit) pour obtenir la hauteur de la page.

1VH = 1/100ème de la hauteur de la fenêtre.

Note: comme mentionné par @Rory McCrossan dans the comments, calc() est pas pris en charge dans IE8 ou au-dessous. See support tables.

+0

Merci, c'est ce que je cherchais. J'avais oublié l'unité 'vh'. Que faire si je garde le jScript ci-dessus uniquement pour les navigateurs nico

+0

@nico Si vous avez besoin du support IE 8, alors oui, vous devez simplement régler la hauteur avec JS. Cependant, en fonction de ce que vous faites/du public cible, vous pouvez envisager de supprimer le support IE 8. –