J'ai un problème que je tente de résoudre depuis quelques heures maintenant et je ne trouve pas la solution. Mon code HTML contient deux paragraphes distincts <p2> et <p3> contenant chacun une phrase et tous deux contenus dans une div "footer". Je souhaiterais que <p2> soit sur la gauche et <p3> sur la droite, tout cela en étant sur une même ligne.
Voici mon CSS, je suis débutant donc je ne sais pas du tout si j'ai mis ce qu'il faut:
Si je comprends bien : un élément footer contient deux paragraphes (ayant du contenu).
Par défaut, le W3C préfere que l'élément paragraphe soit affiché en display block.
A ma connaissance, tous les navigateurs du marché appliquent ce style par défaut.
Or, display block implique par définition un retour-chariot avant et après l'élémznt auquel il s'applique.
Cela explique pourquoi tes éléments p ne sont pas sur la même ligne.
Si tu leur applique (à chacun) un display inline ou un display inline-block, tu n'auras plus ce problème.
En effet, par définition, inline retire les retours-chariot et ne permet pas le redimenssionnement de l'élément auquel il est appliqué. En revanche, par définition, inline-block permet de redimenssionner l'élément auquel il est appliqué et retire lui aussi les retours-chariot.
Avec ça, ça devrait le faire !
Bonne continuation mon ami,
Ensuite, utiliser un float sur chacun d'eux peut permettre de les placer aux extrémités du footer.
Edit important : il faudra penser à leur renseigner une largeur maximale afin d'éviter qu'ils ne se télescopent (à cause du float) non ?
Edit 2 : en général, il faut éviter d'avoir recours à du float si ce n'est pas pour gérer l'affichage d'une image. Si quelqu'un a une autre solution, je pense qu'elle sera la bienvenue.
Finalement, le flottant ne permet pas du tout de régler le problème. En effet, il va forcer les paragraphes à sortir du flux (et donc du footer). Rah, ça fait du bien de se remettre à l'intégration Web
Visiblement le message de lucky13 est transparent.
Et si on reprend la question (mais on a pas toutes les infos) :
josueschultz a écrit:
Mon code HTML contient deux paragraphes distincts <p2> et <p3> contenant chacun une phrase et tous deux contenus dans une div "footer". Je souhaiterais que <p2> soit sur la gauche et <p3> sur la droite, tout cela en étant sur une même ligne.
Ici je comprends qu'il veut que ses 2 paragraphes soient chacun a un côté opposé du contenant. Si c'est ça, alors la solution "float" me semble plus appropriée.
Edit : d'autre post avant que j'ai fini celui-la. grrr....
Nohak_ a écrit:
Ensuite, utiliser un float sur chacun d'eux peut permettre de les placer aux extrémités du footer.
Non sur un seul.
Ensuite, même si float fait sortir du flux, il est simple de le faire rester dans le "footer".
"Ici je comprends qu'il veut que ses 2 paragraphes soient chacun a un côté opposé du contenant. Si c'est ça, alors la solution "float" me semble plus appropriée."
Non, le float fait sortir l'élément auquel il est appliqué du flux. Donc les deux paragraphes sortiront du footer. Donc ça ne va pas du tout.
Par ailleurs, avoir recours à un div en plus du footer ça sert à rien.
Nohak_ > et empêcher le dépassement des flottants c'est impossible dans ton monde ? Tu traites tout le monde d'incompétents mais tu dis "te remettre à l'intégration". Tu fais bien. Comprenons-nous bien : tu as raison, les flottants vont sortir du flux, mais on peut les en empêcher.
Au vu de la demande de l'OP, soit on fait deux éléments en display: table-cell, l'un en text-align: left, l'autre en : right ; soit on donne un contexte de formatage au conteneur des dites phrases, le footer.
Non, l'élément HTML5 footer apporte une information sémantique, pas l'utilisation d'un élément div.
Au-delà de cette raison, il y a toute la philosophie du W3C depuis ces dernières années (directement liée à la sémantique) qui incite à donner un maximum de sens, de valeur humaine aux éléments HTML. L'utilisation de l'élément footer à la place de la div #footer est primordial. Sans compter qu'il s'agit-là d'une bonne habitude à prendre.
Sinon, merci pour ton lien, je vais pouvoir relire cet article
@AkaiKen : puisque tu as pris l'initiative de me lancer un petit pic tout-à-l'heure, je vais en faire tout autant : pourrais-tu m'expliquer pourquoi la hauteur du footer n'est pas nulle en utilisant overflow, qui induit un contexte de formatage et donc un non-dépassement des flottants ? J'ai du mal à voir pourquoi ce non-dépassement permet de donner une hauteur au footer.
@AkaiKen : puisque tu as pris l'initiative de me lancer un petit pic tout-à-l'heure, je vais en faire tout autant : pourrais-tu m'expliquer pourquoi la hauteur du footer n'est pas nulle en utilisant overflow, qui induit un contexte de formatage et donc un non-dépassement des flottants ? J'ai du mal à voir pourquoi ce non-dépassement permet de donner une hauteur au footer.
Merci
- Edité par Nohak_ il y a moins de 30s
Tu as du mal a comprendre on dirait, un seul float suffit et qui t'a parlé de overflow hidden ? (c'est auto qu'il faut utiliser.
Le footer avait 0px de hauteur car comme comme tous ses enfants sortaient du flux, il est considéré comme virtuellement vide (essaie de mettre un flottant et un bout de texte dans un élément sans contexte de formatage de bloc, l'élément-père aura bien une hauteur, celle du bout de texte). En empêchant le dépassement des flottants, on les réintègre "à l'intérieur" de leur parent, qui regagne sa hauteur méritée.
Comment le navigateur l'interprète, ça, je ne sais pas, en revanche, cela dépasse mes compétences.
Ensuite, oui, c'est vrai, <footer> a une notion sémantique non négligeable, et oui il est préférable de l'utiliser, mais là, dans le contexte précis de ce problème il n'était pas en cause (d'où mon "ici" qui, trop petit, est passé inaperçu).
rigs > overflow: hidden fonctionne aussi, car ce qu'il faut c'est n'importe quelle valeur d'overflow sauf visible
- Edité par Lamecarlate 23 juillet 2013 à 12:03:26
Pas d'aide concernant le code par MP, le forum est là pour ça :)
"Appliqué un float sur un élément et il devient de type block, alors lui appliquer "inlin" avant et sans intérêt."
Tu as sans doute fait un lapsus ? Tu voulais dire "un float change le display en inline" (pas en "block" comme tu l'as écrit) non ? Mais je ne pense pas que ce soit le cas (merci de donner ta source). Pour moi, float permet simplement de faire sortir du flux l'élément auquel il est appliqué, ce qui explique l'inutilité du display inline.
"Ou as-tu vu son doctype ?"
Voyons, voyons, pas de petite contradiction pour contredire. Le tutoriel de Mathieu Nebra est un tutoriel sur le HTML5, et l'auteur fait énormément la promotion de ce langage (à juste titre selon moi), comme la grande majorité des informaticiens. La grande mode (même pour les médias), c'est le HTML5. En outre, l'image qui illustre ce forum est le logo du langage HTML5.
Avec tout ça, je pense pouvoir affirmer qu'il est légitime de penser par défaut que le HTML5 a été choisi par les OP qui postent des topics pour qu'on les aide. Si ce n'est pas le cas, c'est à eux de le préciser.
Donc on utilise footer et pas div #footer. Si toutefois l'auteur voulait absolument ne pas utiliser ça parce qu'il code en une autre version du langage, il n'avait qu'à le préciser.
" Tu as du mal a comprendre on dirait, un seul float suffit et qui t'a parlé de overflow hidden ? (c'est auto qu'il faut utiliser."
Un seul float ne suffit pas (au lieu d'insister lourdement, je te prie d'essayer). Moi quand je poste une solution, je teste toujours sous Wamp et ensuite je la publie si elle marche (ou je la publie en montrant ce qui ne va pas si ma solution est bancale).
Le overflow hidden permet le contexte de formatage comme l'a très justement dit AkaiKen. L'utilisation de la valeur "auto" n'est pas obligatoire contrairement à ce que tu penses. Ça marcherait également ceci dit.
"Ensuite, oui, c'est vrai, <footer> a une notion sémantique non négligeable, et oui il est préférable de l'utiliser, mais là, dans le contexte précis de ce problème il n'était pas en cause (d'où mon "ici" qui, trop petit, est passé inaperçu)."
Autant donner de bonnes habitudes aux OP (ce que tout le monde devrait faire ici).
"En empêchant le dépassement des flottants, on les réintègre "à l'intérieur" de leur parent, qui regagne sa hauteur méritée."
Parce qu'ils sortaient du flux (et donc du footer) non ? Le overflow : hidden ou auto permet de les réintégrer de force dedans ? (juste pour être sûr d'avoir bien compris ).
Ce que je t'ai dit ? Faut arrêter de remettre la faute sur moi. Vu le ramassis de conneries qu'il y avait, c'était très dur de ne pas perdre son sang-froid. En outre, ce n'est qu'une simple expression pour montrer que je ne suis pas un enfoiré comme tu sembles le penser.
Sinon, alors, est-ce que j'avais bien compris ?
Edit : je t'envoie un MP histoire d'expliquer plus en détails mes propos et de ne pas rester bêtement en froid avec toi.
Voyons, voyons, pas de petite contradiction pour contredire. Le tutoriel de Mathieu Nebra est un tutoriel sur le HTML5, et l'auteur fait énormément la promotion de ce langage (à juste titre selon moi), comme la grande majorité des informaticiens. La grande mode (même pour les médias), c'est le HTML5. En outre, l'image qui illustre ce forum est le logo du langage HTML5.
Avec tout ça, je pense pouvoir affirmer qu'il est légitime de penser par défaut que le HTML5 a été choisi par les OP qui postent des topics pour qu'on les aide. Si ce n'est pas le cas, c'est à eux de le préciser.
TU pense ainsi donc Tu viens avec TES réponses et c'est aux autres de s'adapter.
Un seul float ne suffit pas (au lieu d'insister lourdement, je te prie d'essayer). Moi quand je poste une solution, je teste toujours sous Wamp et ensuite je la publie si elle marche (ou je la publie en montrant ce qui ne va pas si ma solution est bancale).
Au lieu d'insister lourdement tu devrais essayer, Car toi quand tu poste une solution tu es incapable de voir ce qui est bancale, tu poste juste un code souvent truffée de faute uniquement pour appuyer tes dires.
rigs, je peux savoir quelles sont les raisons d'un tel acharnement ?
Je ne vais pas tomber dans ton petit jeu.
Je disais qu'un seul float ne suffisait pas pour les solutions qui jusqu'alors avaient été proposées. Alors en effet, avec la solution que tu présentes-là, ça marche.
SAUF QUE, si on se limite à ce que désire obtenir l'OP, tu as recours à de trop nombreux éléments HTML pour ce qu'il faut faire, et c'est redondant. En HTML, il FAUT avoir recours au moins d'éléments possibles. Question de lisibilité, de maintenance, de performance (bon, cet argument est passable je te l'accorde).
Déjà, rien que pour ça, ta solution est moins adaptée que les autres.
Bon sinon, je ne vais pas répondre à tes provocations :
"Au lieu d'insister lourdement tu devrais essayer, Car toi quand tu poste une solution tu es incapable de voir ce qui est bancale, tu poste juste un code souvent truffée de faute uniquement pour appuyer tes dires."
"TU pense ainsi donc Tu viens avec TES réponses et c'est aux autres de s'adapter."
Ah, et ne t'attends pas à ce que je réponde à tes futurs coups de gueules totalement injustifiés et hors de propos dans ce topic. Je te demanderais de me contacter par MP si tu veux me harceler. Merci
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)