Positionner des éléments "inline-block"
Utilisateur anonyme
-
tryan44 Messages postés 1288 Date d'inscription Statut Membre Dernière intervention -
tryan44 Messages postés 1288 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Il se trouve que je tente de nettoyer et mettre à jour mon site web.
Au cours de ce nettoyage, je suis retomber sur des façons de coder que je n'aimais pas mais que je n'avais jamais réussi à résoudre... J'espère que vous me permettrez d'enfin être clair dans mon esprit :D
Le problème commence ici :
Dans la barre du haut de ma page, une balise HEADER, j'ai trois autres balises NAV de type "inline-block" qui sont : #domains, #pages et #accounts.
Pour les besoins de mon site, il fallait que la balise NAV#domains soit alignée à gauche et les deux autres à droites.
|--- Header --------------------------------------------------------------------------------|
| |---NAV#domains------|...........|---NAV#pages------||---NAV#accounts-------||
| |_________________|...........|_______________||_________________||
|___________________________________________________________|
Pour ce faire, j'avais utilisé plusieurs techniques qui étaient :
- Position: absolute; right: 0; sur les deux dernières balises; ce qui n'est pas forcement propre pour mon cas (en plus les balises se superposaient).
- Float: right; sur les deux dernières balises; mais ça n'allait toujours pas, en inversant alors le sens de mes balises.
Au final, j'avais fais deux blocs; et dans le deuxième, qui était aligné à droite grâce à "float: right;", j'avais posé mes deux autres blocs...
Cela marche, mais ne me convient pas au niveau de la forme. On m'a appris à ne pas me contenter du fais que ça marche mais aussi de rester cohérent, alors, auriez-vous une meilleure solution ?
Merci à tous ceux qui ont pris le temps de lire mon sujet et à tous ceux qui prennent le temps d'aider d'autres personnes grâce à CÇM...
Il se trouve que je tente de nettoyer et mettre à jour mon site web.
Au cours de ce nettoyage, je suis retomber sur des façons de coder que je n'aimais pas mais que je n'avais jamais réussi à résoudre... J'espère que vous me permettrez d'enfin être clair dans mon esprit :D
Le problème commence ici :
Dans la barre du haut de ma page, une balise HEADER, j'ai trois autres balises NAV de type "inline-block" qui sont : #domains, #pages et #accounts.
Pour les besoins de mon site, il fallait que la balise NAV#domains soit alignée à gauche et les deux autres à droites.
|--- Header --------------------------------------------------------------------------------|
| |---NAV#domains------|...........|---NAV#pages------||---NAV#accounts-------||
| |_________________|...........|_______________||_________________||
|___________________________________________________________|
Pour ce faire, j'avais utilisé plusieurs techniques qui étaient :
- Position: absolute; right: 0; sur les deux dernières balises; ce qui n'est pas forcement propre pour mon cas (en plus les balises se superposaient).
- Float: right; sur les deux dernières balises; mais ça n'allait toujours pas, en inversant alors le sens de mes balises.
Au final, j'avais fais deux blocs; et dans le deuxième, qui était aligné à droite grâce à "float: right;", j'avais posé mes deux autres blocs...
Cela marche, mais ne me convient pas au niveau de la forme. On m'a appris à ne pas me contenter du fais que ça marche mais aussi de rester cohérent, alors, auriez-vous une meilleure solution ?
Merci à tous ceux qui ont pris le temps de lire mon sujet et à tous ceux qui prennent le temps d'aider d'autres personnes grâce à CÇM...
A voir également:
- Positionner des éléments "inline-block"
- Block breaker - Accueil - Services en ligne
- Code block - Télécharger - Langages
- Photoshop elements gratuit - Télécharger - Retouche d'image
- Peer block - Télécharger - Pare-feu
- Positionner des points sur une carte - Guide
1 réponse
Salut,
Je ne sais pas si ce qui suit est la meilleurs solution mais c'est ce que je ferais :
Pour créer les onglets de navigations, j'utilise une liste qui est "enveloppé" dans un conteneur :
Dans un 1er temps je définis les dimensions de mon conteneur :
Ensuite je supprime les espaces :
Et pour finir je transformes l'élément "li" qui est une balise de type "block" pour la faire passer en ligne (inline) plus quelques misent en forme :
Un exemple concret :
Je ne sais pas si ce qui suit est la meilleurs solution mais c'est ce que je ferais :
Pour créer les onglets de navigations, j'utilise une liste qui est "enveloppé" dans un conteneur :
<div id="menu"> <ul> <li><a href="#">teste</a></li> <li><a href="#">teste</a></li> <li><a href="#">teste</a></li> </ul> </div>
Dans un 1er temps je définis les dimensions de mon conteneur :
#menu{ border:1px solid blue; height:50px; }
Ensuite je supprime les espaces :
#menu ul{ margin:0; padding:0; }
Et pour finir je transformes l'élément "li" qui est une balise de type "block" pour la faire passer en ligne (inline) plus quelques misent en forme :
#menu li{ display:inline; line-height:50px; padding:10px; background:yellow; }
Un exemple concret :
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> <title>Teste</title> <style type="text/css"> #conteneur{ margin:0 auto; width:800px; height:auto; overflow:auto; border : 1px solid black; } #entete{ background:purple; height:200px; } #menu{ background:green; height:50px; } #menu ul{ margin:0; padding:0; } #menu li{ display:inline; line-height:50px; padding:10px; margin: 5px; background:yellow; } #corps{ background:red; padding:5px; margin:5px; } </style> </head> <body> <div id="conteneur"> <div id="entete">#entete</div> <div id="menu"> <ul> <li><a href="#">teste</a></li> <li><a href="#">teste</a></li> <li><a href="#">teste</a></li> </ul> </div> <div id="corps"> <p>#corps</p> </div> </div> </body> </html>