2013-02-13 7 views
0

Je donne les résultats suivants:Comment ajuster la largeur d'un élément enfant sans ajuster la largeur du parent en CSS?

<div class="parent"> 
    <div class="sizer" /> 
    <div class="child" /> 
</div> 

.sizer { 
width: 200px; 
} 

.child { 
position: relative; 
width: 400px; 
} 

Je ne suis pas autorisé à définir explicitement la largeur du parent, et je ne suis pas autorisé à mettre l'enfant à position:absolute. En utilisant CSS, existe-t-il un autre moyen de définir la largeur de .child à 400 sans que la largeur de .parent ne soit élargie de 200 à 400?

+0

Si vous ne pouvez pas définir une largeur sur le parent, comment obtient-il sa largeur pour commencer? –

+0

Demandez-vous si la largeur de l'enfant peut dépasser la largeur du parent? – JSW189

+0

@ JSW189 - oui, sans définir la largeur sur le parent et sans mettre l'enfant à la position: absolue – user1031947

Répondre

2

Si le parent a une largeur définie, il ne s'étendra pas avec la largeur de l'enfant, même si la largeur de l'enfant dépasse celle du parent. Voir this JS Fiddle example.

.parent { 
    width: 300px; 
    height: 50px; 
} 

.child { 
    width: 400px; 
    height: 50px; 
    position: relative; 

} 

enter image description here


MISE À JOUR

Je me demande s'il y a le parent

est une sorte de hack qui me permet de le faire sans réglage de la largeur

Il y a n o manière d'accomplir ceci sans que le parent ait une sorte de propriété de largeur ou de largeur. Si vous êtes seulement opposé à l'utilisation de la propriété width sur le parent, vous pouvez utiliser plusieurs alternatives de type largeur. Comme cimmanon expliqué dans un commentaire ci-dessous, vous pouvez définir .parent pour avoir un max-width. Il ne doit pas nécessairement être 100%; tout max-width fera, tant qu'il est inférieur à la largeur de l'enfant. See this JS Fiddle example ou consultez ce code:

.parent { 
    max-width: 200px; 
} 

.child { 
    width: 400px; 
} 

Sinon, vous pouvez utiliser position:absolute et définir les left et right propriétés. See this JS Fiddle example ou vérifier ce code:

.parent { 
    position:absolute; 
    left:0; 
    right:0; 
} 

Mais rappelez-vous, ce ne sont que deux des nombreuses alternatives possibles. J'espère que cela t'aides!

+0

Je me demande s'il y a une sorte de hack qui me permet de le faire sans définir la largeur sur le parent – user1031947

Questions connexes