2010-07-05 6 views
4

J'ai trois divs et un principal div:gauche div + droite div + centre div = 100% largeur. Comment réaliser?

<div id="container" style="width:100%;"> 
    <div id="left" style="width:201px; float:left;"> 
    .... 
    </div> 
    <div id="centre" style="float:left;"> 
    .... 
    </div> 
    <div id="right" style="width:135px; float:right;"> 
    .... 
    </div> 
</div> 

Comment il est possible de faire centre div largeur max, de sorte que containerDivWidth = leftDivWidth + rightDivwidth + centreDivWidth;

Répondre

2

Je crois que ce que vous êtes e essayant de réaliser est la disposition «de Saint Graal».

Il y a une grande liste de l'article En plus de cette mise en page, vous devez vérifier:

http://www.alistapart.com/articles/holygrail

-1

Vous ne pouvez pas mélanger la largeur relative et fixe qui est à mon avis une lacune en CSS.

Le mieux que vous pouvez faire est quelque chose comme:

<div id="container" style="width:100%;"> 
    <div id="left" style="width:20%; float:left;"> 
    .... 
    </div> 
    <div id="centre" style="width:65%; float:left;"> 
    ....  
    </div> 
    <div id="right" style="width:15%; float:right;"> 
    .... 
    </div> 
</div> 

Je serai très heureux si je me trompe.

+0

Les divs de droite et de gauche ne sont pas corrigés (j'ai défini leur largeur juste par exemple). Ils contiennent du contenu qui définit automatiquement leur largeur. Mais le problème que le centre div devrait obtenir toute la surface disponible entre la gauche et la droite. – andrii

0

Ce que j'ai déjà fait, est de définir centre pour avoir une marge gauche de 201px, et une marge droite de 135px. Réglez-le sur le positionnement relatif (au lieu de le faire flotter), puis il devrait remplir tout l'espace restant entre les colonnes gauche et droite. Je n'arrive pas à trouver un de mes anciens exemples de code, donc c'est le meilleur que je peux faire pour le moment. J'espère que cela aide!

+0

Cela semble sur la bonne voie, mais je ne vois pas comment faire en sorte que le bon bit "flotte" pour être en ligne, car la largeur du bit milieu est trop large. –

+0

Si vous retirez le flotteur de la div centrale et que vous le définissez pour l'affichage: inline, il doit être inséré entre les deux divs externes. – DHuntrods

-2

avec un peu de javascript, son ajout parfait/ jquery d'abord pour sélecteurs & etc.

<script type="text/javascript" src="js/jquery.js"></script> 

et la partie javascript/

$(document).ready(function(){ 
    $('#centre').css("width",$(window).width()-336) 

    $(window).resize(function() { 
     $('#centre').css("width",$(window).width()-336) 
    }); 
}); 
2

Cela permettra de vous avoir fixé des colonnes à droite et à gauche et une partie centrale souple:

CSS

<style type="text/css"> 
    #left { 
    float: left; 
    width: 201px; 
    border: 1px solid red; 
    } 

    #centre { 
    display: block; 
    overflow: auto; 
    border: 1px solid green; 
    } 

    #right { 
    float: right; 
    width: 135px; 
    border: 1px solid blue; 
    } 
</style> 

HTML

<div id="container" style="width:100%;"> 
    <div id="left">Left</div> 
    <div id="right">Right</div> 
    <div id="centre">Middle</div> 
</div> 
+0

Nice Simple et rapide à appliquer –

Questions connexes