Aller au contenu

Div contenant d'autres div


Guest bobdeo

Sujets conseillés

Salut,

J'ai ce code :

<html> 
<body>
<div style="background-color:#CCCCCC;width:80%;">
<div style="float:left;text-align:left;width:20%;border:1px solid red;">allo</div>
<div style="float:right;text-align:right;width:20%;border:1px solid black;">OUIIIIII!!!</div>
</div>
</body>
</html>

La première Div contient donc les 2 autres... par contre, je suis obligé de spécifier le Height pour la voir sous Firefox... Ai-je fait une erreur qq part ?

merci

Lien vers le commentaire
Partager sur d’autres sites

La première Div contient donc les 2 autres... par contre, je suis obligé de spécifier le Height pour la voir sous Firefox...

<{POST_SNAPBACK}>

Salut,

Je comprend pas bien ce que tu veux dire par là?

Peux-tu reprendre ta question, stp?

"la voir" pourquoi, comment :huh:

Lien vers le commentaire
Partager sur d’autres sites

ok ;)

La première Div contient les deux autres. Elle me sert à faire une barre colorée (le fond)...

Si je prends le code tel qu'il est ci-dessus, cette barre ne s'affiche pas sous Firefox... pour quelle s'affiche, je suis obligé de lui spécifier un Height...

Idéalement, j'aimerai que la première Div prennent automatiquement la hauteur des Div qu'elle contient !

Lien vers le commentaire
Partager sur d’autres sites

C'est le problème des flottant, il faut "regonfler" la divsion, parceque les flottant sortent du flux et ta div conteneuse est considérée comme vide, en rajoutant un element (p par exemple) sous tes 2 div et en lui donnant le style clear: both ; tu retabli la hauteur voulue, c'est une petite bidouille peu recommandée mais parfois indispensable

<html>
<body>
<div style="background-color:#CCCCCC;width:80%;">
<div style="float:left;text-align:left;width:20%;border:1px solid red;">allo</div>
<div style="float:right;text-align:right;width:20%;border:1px solid black;">OUIIIIII!!!</div>
<p style="clear: both"> </p>
</div>
</body>
</html>

A part ça, préfère utiliser des styles dans un fichier css externe (*.css) ca decharge un peu (beaucoup) le poids de tes pages.

Modifié par ElMoustiko
Lien vers le commentaire
Partager sur d’autres sites

Merci pour vos réponses.

Que j'ajoute :

<p style="clear: both"> </p>

ou

<hr style="clear:both;width:0;height:0;border:0;" />

après les Div contenues (et avant fermeture Div Conteneuse), j'ai une ligne vide qui apparait dasn la Div conteneuse sous IE...

Avant, j'utilisais les TABLEs pour ma mise en page, et je suis en train de traduire en CSS pour alléger mes pages... Existe-il un moyen simple pour faire l'équivalent du code ci-dessous en CSS ?

<table width="100%" border="0" cellspacing="0" cellpadding="0">
 <tr>
   <td>Allo</td>
   <td><div align="right">Oui</div></td>
 </tr>
</table>

Lien vers le commentaire
Partager sur d’autres sites

Guest narcisse

Je ne suis pas sur que la propriété border puisse prendre la valeur 0, d'aillerus ni que l'élément HR puisse pour l'instant être défini en CSS.

A confirmer....

Lien vers le commentaire
Partager sur d’autres sites

Tu peux faire ceci :

Allo ? <span style="float: right">Oui</span>

Ca devrait fonctionner. Tout dépend de ce que tu cherches à faire au final.

Si tu pouvais nous dire pour quoi c'est faire exactement... parcequ'ensuite tout dépend de ce pour quoi c'est faire. Certaines choses sont plus adaptées que d'autres.

Lien vers le commentaire
Partager sur d’autres sites

Merci pour ton aide...

En fait, c'est pour une barre qui apparait dans mon header et mon footer.

Elle fait 100% de largeur et a du texte justifié à droite et à gauche sur une même ligne (the pb !)

Lien vers le commentaire
Partager sur d’autres sites

Bah mon exemple avec le p et le span semble indiqué alors.

Il faut que tu te demandes ensuite si c'est sémantiquement correcte suivant l'utilisation que tu en fait. C'est à dire, les balises utilisées correspondent elles à l'usage que tu en fait. Un paragraphe sert par exemple à mettre du texte, un hN à faire un titre, ...

Lien vers le commentaire
Partager sur d’autres sites

J'utilise:

<hr style="clear:both;width:0;height:0;border:0;" />

Sur ce site, et ça marche très bien sur IE et Mozilla!!!

Je ne suis pas sur que la propriété border puisse prendre la valeur 0, d'aillerus ni que l'élément HR puisse pour l'instant être défini en CSS.

A confirmer....

Je confirme que l'on peut mettre border:0

Je confirme également que l'on peut définir hr dans une css. ;)

Lien vers le commentaire
Partager sur d’autres sites

Pour le hr et le clear: both ; ... hmm je sais pas comment je me suis debrouillé, ca ne marchait pas chez moi... enfin bref ^^

Je confirme on peut mettre en forme hr dans les css comme N'IMPORTE QUEL élément html.

Par ailleur sous IE la bordure persiste même si on la met à 0 je crois. a verifier.

Lien vers le commentaire
Partager sur d’autres sites

Elmousitko, si je prends ton code

Allo ? <span style="float: right">Oui</span>

le "oui" apparait à la ligne en dessous de celle qui contient "allo"...

Lien vers le commentaire
Partager sur d’autres sites

Pour être tout à fait honnête, ce n'est pas si simple : tout va bien tant qu'on s'abstient de réclamer un padding et/ou des arrières-plans de couleurs différentes et/ou des bordures, et tant que les contenus du <p> et du <span> restent sagement chacun sur une seule ligne...

Sinon, le problème devient nettement plus amusant. Essayons de styler les 3 cas de figures suivants, avec:

- le span à gauche et le reste du paragraphe à droite (Eh non, pas le droit de mettre un span aussi pour le contenu de droite ;) )

- une bordure autour du tout et une bordure verticale séparant les contenus gauche et droite.

- deux couleurs différentes d'arière-plan

- un padding pour chacun

<p>
  <span>gauche</span>
  droite
</p>

<p>
  <span>gauche Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipitlobortis nisl ut aliquip ex ea commodo consequat.</span>
   droite
</p>

<p>
  <span>gauche</span>
  droite Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
</p>

Comme souvent, les navigateurs les plus respectueux de CSS2 s'en tirent facilement, mais il reste à gérer la dégradation dans IE.

J'ai une solution (imparfaite), mais je ne voudrais pas vous orienter a priori. Que proposez-vous ?

:P

Modifié par LaurentDenis
Lien vers le commentaire
Partager sur d’autres sites

On s'approche en effet... ;)

Par contre en utilisant la <p> j'ai une ligne blanche au-dessus et en dessous de la "barre"... et j'ai besoin de coller ça au contenu... :blush:

Lien vers le commentaire
Partager sur d’autres sites

J'AI ! :D

<p style="background-color:#CCCCCC; padding:3px; margin-top:0px; margin-bottom:0px">
<span style="float:right; text-align:right; padding-right:3px">droite</span>
gauche
</p>

Lien vers le commentaire
Partager sur d’autres sites

enfin j'ai... c'est vite dit...

Impossible de régler la hauteur de ligne (vides) au-dessus et en-dessous... Je crois que je vais garder mes tableaux... :(

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...