J'en ai deux <div>
éléments sur ce site . C'est un site que je suis en train de développer et c'est un travail en cours, mais certains des choix de conception que je voudrais finaliser ce soir. En ce moment, mon .css simplifié est donc:
#leftdiv {
/*this is the navigation pane*/
min-height: 600px;
max-height: 600px;
}
#rightdiv {
/*this is the primary pane*/
min-height: 600px;
max-height: 600px;
overflow-y: auto;
}
J'ai défini une hauteur minimale et maximale pour les deux afin qu'ils conservent la même hauteur, et si le contenu déborde du #rightdiv
, une barre de défilement apparaît. J'aimerais que cette barre de défilement disparaisse et que le #rightdiv
et #leftdiv
étirer pour s'adapter au contenu du #rightdiv
. Vous pouvez voir dans la page que j'ai liée qu'il y a du contenu qui dépasse les limites du #rightdiv
et la barre de défilement. Je souhaite que l'ensemble du site s'étire en hauteur pour s'adapter au contenu, mais si je supprime le overflow-y: auto;
de mon .css et supprimer les hauteurs maximales, le #rightdiv
s'étire, mais le #leftdiv
non, ce qui donne un design vraiment moche.
J'aimerais quelque chose comme ci-dessous:
#leftdiv {
min-height: equal to #rightdiv height if #rightdiv is taller, else 600px;
}
#rightdiv {
min-height: equal to #leftdiv height if #leftdiv is taller, else 600px;
}
Comment pourrais-je régler la hauteur minimale des deux comme ceci?
Je suppose que vous avez utilisé l'attribut de hauteur aux deux, donc je le compare avec une hauteur à gauche, faites-le avec javasript
var right=document.getElementById('rightdiv').style.height;
var left=document.getElementById('leftdiv').style.height;
if(left>right)
{
document.getElementById('rightdiv').style.height=left;
}
else
{
document.getElementById('leftdiv').style.height=right;
}
Une autre idée peut être trouvée ici HTML/CSS: Faire deux divs flottants de la même hauteur
notez que ce code n'est pas testé
Merci j'espère que cela vous aiderait ...... salutations ... :)
Si vous ne vous souciez pas des utilisateurs IE6 et IE7, utilisez simplement display: table-cell
pour vos divs:
Notez l'utilisation de wrapper avec display: table
.
Pour les utilisateurs d'IE6/IE7 - si vous les avez - vous devrez probablement recourir à Javascript.
Si vous êtes prêt à utiliser javascript, vous pouvez obtenir la propriété sur un élément comme celui-ci: document.GetElementByID('rightdiv').style.getPropertyValue('max-height');
Et vous pouvez définir l'attribut sur un élément comme celui-ci: .setAttribute('style','max-height:'+heightVariable+';');
Remarque: si vous cherchez simplement à définir les deux éléments max-height
propriété sur une seule ligne, vous pouvez le faire comme ceci:
#leftdiv,#rightdiv
{
min-height: 600px;
}
Vous bénéficierez certainement d'utiliser un cadre réactif pour votre projet. Cela vous éviterait une bonne quantité de maux de tête. Cependant, en voyant la structure de votre HTML, je ferais ce qui suit:
Veuillez vérifier l'exemple: http://jsfiddle.net/xLA4q/
HTML:
<div class="nav-content-wrapper">
<div class="left-nav">asdasdasd ads asd ads asd ad asdasd ad ad a ad</div>
<div class="content">asd as dad ads ads ads ad ads das ad sad</div>
</div>
CSS:
.nav-content-wrapper{position:relative; overflow:auto; display:block;height:300px;}
.left-nav{float:left;width:30%;height:inherit;}
.content{float:left;width:70%;height:inherit;}
Il semble que ce que vous recherchez soit une variante de la CSS Holy Graal Layout , mais en deux colonnes. Consultez les ressources à cette réponse pour plus d'informations.