J'ai une structure de page similaire à celle-ci:
<body>
<div id="parent">
<div id="childRightCol">
/*Content*/
</div>
<div id="childLeftCol">
/*Content*/
</div>
</div>
</body>
Je voudrais que le parent div
se développe height
lorsque l div
' intérieur height
augmente.
Edit:
Un problème est que si le width
contenu enfant s'étend au-delà width
de la fenêtre du navigateur, mon CSS actuel place une barre de défilement horizontale sur le parent div
. Je voudrais que la barre de défilement soit au niveau de la page. Actuellement, ma div parent est définie suroverflow: auto;
Pouvez-vous s'il vous plaît m'aider avec le CSS pour cela?
Réponses:
Essayez ceci pour le parent, cela a fonctionné pour moi.
METTRE À JOUR:
Une autre solution qui a fonctionné:
Parent :
Enfant :
la source
overflow:auto
signifie que le navigateur doit décider de la valeur à appliquer. Ce qui fait vraiment l'affaire, c'estoverflow: overlay
.overflow:hidden
.overlay
ne pas être prise en charge en dehors de Webkit. Un autre complètement différent est de dire qu'il n'existe pas du tout. S'il vous plaît, RTFM d'abord . ;)display:inline-block
. Ce qui a très bien fonctionné pour moi.ajouter un
clear:both
. en supposant que vos colonnes flottent. Selon la façon dont votre taille est spécifiée, vous pourriez avoir besoin d'un débordement: auto;la source
Comme l'a dit Jens en commentaire
Cela fonctionne beaucoup mieux pour moi dans tous les navigateurs.
la source
Essayez de donner
max-content
à la taille des parents.https://jsfiddle.net/FreeS/so4L83wu/5/
la source
Pour ceux qui ne peuvent pas comprendre cela dans les instructions de cette réponse :
Essayez de mettre padding valeur plus alors 0 , si divs enfants ont la marge supérieure ou la marge inférieure , vous pouvez le remplacer par un rembourrage
Par exemple, si vous avez
il vaudra mieux le remplacer par:
la source
Utiliser quelque chose comme l'auto-compensation
div
est parfait pour une situation comme celle-ci . Ensuite, vous allez simplement utiliser une classe sur le parent ... comme:la source
Ajouter
Pour le CSS du div parent, ou ajoutez un div au bas du div parent qui efface: les deux;
C'est la bonne réponse, car débordement: auto; peut fonctionner pour des mises en page Web simples, mais gâchera avec des éléments qui commencent à utiliser des choses comme la marge négative, etc.
la source
Est-ce que cela fait ce que vous voulez?
la source
Recherchez-vous une mise en page CSS à 2 colonnes ?
Si c'est le cas, jetez un œil aux instructions , c'est assez simple pour commencer.
la source
J'ai fait un div parent étendre autour du contenu d'un div enfant en ayant le div enfant comme une seule colonne qui n'a aucun attribut de positionnement tel que absolu spécifié.
Exemple:
En se basant sur la division principale qui est la division enfant la plus profonde de #wrap, cela définit la profondeur de la division #wrap et le remplissage de 200 pixels de chaque côté crée deux grandes colonnes vides pour que vous puissiez placer des divisions absolument positionnées à votre guise. Vous pouvez même changer le rembourrage en haut et en bas pour placer les divs d'en-tête et les divs de pied de page en utilisant position: absolue.
la source
Vous devez appliquer la solution clearfix sur le conteneur parent. Voici un bel article expliquant le lien de correction
la source
Si votre contenu dans #childRightCol et #childRightCol est flottant à gauche ou à droite, ajoutez simplement ceci dans css:
la source
Cela fonctionne comme décrit par la spécification - plusieurs réponses ici sont valides et cohérentes avec les suivantes:
à partir d'ici: https://www.w3.org/TR/css3-box/#blockwidth
la source
Le code ci-dessous a fonctionné pour moi.
css
html
la source
la source
D'où nous partons
Voici du HTML et du CSS standard. Dans notre exemple, nous avons un élément parent avec deux éléments enfants flottants.
Solution # 1: débordement: auto
Une solution qui fonctionne dans tous les navigateurs modernes et dans Internet Explorer vers IE8 consiste à ajouter
overflow: auto
à l'élément parent. Cela fonctionne également dans IE7, avec des barres de défilement ajoutées.Solution n ° 2: conteneur parent flottant
Une autre solution qui fonctionne dans tous les navigateurs modernes et revient à IE7 consiste à faire flotter le conteneur parent.
Cela peut ne pas toujours être pratique, car flotter votre div parent peut affecter d'autres parties de la mise en page.
Méthode n ° 3: Ajouter une division de compensation sous les éléments flottants
Méthode n ° 4: ajouter la division de suppression à l'élément parent Cette solution est assez à l'épreuve des balles pour les navigateurs plus anciens et les navigateurs plus récents.
depuis https://www.lockedownseo.com/parent-div-100-height-child-floated-elements/
la source
J'utilise ce CSS pour parent et cela fonctionne:
la source
vous gérez en utilisant la
overflow:hidden;
propriété dans cssla source