J'ai une div enveloppe principale qui est définie à 100% de largeur. À l'intérieur, j'aimerais avoir deux divisions, une à largeur fixe et l'autre qui remplit le reste de l'espace. Comment faire flotter le deuxième div pour remplir le reste de l'espace. Merci pour toute aide.
241
Réponses:
Il y a plusieurs façons de faire ce que vous demandez:
Utilisation de la propriété CSS
float
:Utilisation de la propriété CSS
display
- qui peut être utilisée pour fairediv
s agir comme untable
:Il existe plus de méthodes, mais ces deux-là sont les plus populaires.
la source
CSS3 a introduit des boîtes flexibles (alias. Boîte flexible) qui peuvent également obtenir ce comportement.
Définissez simplement la largeur du premier div, puis donnez au second une
flex-grow
valeur1
qui lui permettra de remplir la largeur restante du parent.Démo jsFiddle
Notez que les boîtes flexibles ne sont pas rétrocompatibles avec les anciens navigateurs, mais sont une excellente option pour cibler les navigateurs modernes (voir également Caniuse et MDN ). Un excellent guide complet sur la façon d'utiliser les boîtes flexibles est disponible sur CSS Tricks .
la source
Je ne sais pas grand-chose sur les stratégies de conception HTML et CSS, mais si vous cherchez quelque chose de simple et qui s'adaptera automatiquement à l'écran (comme je le suis), je pense que la solution la plus simple consiste à faire en sorte que les divs se comportent comme des mots dans un paragraphe. Essayez de spécifier
display: inline-block
Vous pourriez ou non avoir besoin de spécifier la largeur des DIVs
la source
display:flex
la meilleure solution, mais je pense qu'elleinline-block
est également excellente car elle fonctionne sur plus de navigateurs. Soit dit en passant, vous devrez peut-être envelopper les deux div avec un<div style="white-space:nowrap">
pour éviter la rupture lors du redimensionnement.inline-block
code.Vous pouvez utiliser la grille CSS pour y parvenir, ceci est la version longue à des fins d'illustration:
Ou la méthode plus traditionnelle utilisant le flottant et la marge.
J'ai inclus une couleur d'arrière-plan dans cet exemple pour aider à montrer où les choses se trouvent - et aussi quoi faire avec le contenu sous la zone flottante.
Ne mettez pas vos styles en ligne dans la vraie vie, extrayez-les dans une feuille de style.
la source
Donnez au premier div un flotteur à gauche et fixe avec, le deuxième div à 100% de largeur un flotteur à gauche. Cela devrait faire l'affaire. Si vous souhaitez placer des éléments en dessous, vous avez besoin d'un clair: à la fois sur l'élément que vous souhaitez placer en dessous
la source
Ce sera compatible avec tous les navigateurs. Sans la marge de gauche, vous rencontrerez des problèmes avec le contenu s'exécutant complètement à gauche si votre contenu est plus long que votre barre latérale.
la source
Si vous ne taggez pas IE6, faites flotter le second
<div>
et donnez-lui une marge égale (ou peut-être un peu plus grande) à la<div>
largeur fixe du premier .HTML:
CSS:
La marge tient compte de la possibilité que le «reste d'espace»
<div>
puisse contenir plus de contenu que la «largeur fixe»<div>
.Ne donnez pas de fond à la largeur fixe; si vous avez besoin de les voir visiblement comme des «colonnes» différentes, utilisez l' astuce Faux colonnes .
la source