En 3 mots: inline-block
c'est mieux.
Bloc en ligne
Le seul inconvénient de l' display: inline-block
approche est que dans IE7 et au-dessous, un élément ne peut être affiché que inline-block
s'il l'était déjà inline
par défaut. Cela signifie qu'au lieu d'utiliser un <div>
élément, vous devez utiliser un <span>
élément. Ce n'est pas vraiment un énorme inconvénient car sémantiquement a <div>
sert à diviser la page tandis que a <span>
sert uniquement à couvrir une étendue de page, il n'y a donc pas une énorme différence sémantique. Un énorme avantage de display:inline-block
est que lorsque d'autres développeurs maintiennent votre code ultérieurement, il est beaucoup plus évident ce que display:inline-block
et text-align:right
essaie d'accomplir qu'une instruction float:left
or float:right
. Mon avantage favori de l' inline-block
approche est qu'il est facile à utiliser vertical-align: middle
, line-height
ettext-align: center
pour centrer parfaitement les éléments, de manière intuitive. J'ai trouvé un excellent article de blog sur la façon d'implémenter le blocage en ligne inter-navigateurs, sur le blog Mozilla . Voici la compatibilité du navigateur .
Flotte
La raison pour laquelle l'utilisation de la float
méthode n'est pas adaptée à la mise en page de votre page est que la float
propriété CSS était à l'origine uniquement destinée à avoir du texte autour d'une image (style magazine) et n'est, de par sa conception, pas la mieux adaptée à des fins de mise en page générale. Lorsque vous modifiez ultérieurement des éléments flottants, vous aurez parfois des problèmes de positionnement car ils ne sont pas dans le flux de la page . Un autre inconvénient est qu'il nécessite généralement un clearfix sinon il peut casser des aspects de la page. Le clearfix nécessite d'ajouter un élément après les éléments flottants pour empêcher leur parent de s'effondrer autour d'eux, ce qui traverse la ligne sémantique entre le style de séparation et le contenu et constitue donc un anti-modèle dans le développement Web .
Tous les problèmes d'espaces blancs mentionnés dans le lien ci-dessus pourraient facilement être résolus avec la white-space
propriété CSS.
Éditer:
SitePoint est une source très crédible de conseils en conception Web et ils semblent avoir le même avis que moi:
Si vous êtes nouveau dans les mises en page CSS, vous seriez pardonné de penser que l'utilisation de flotteurs CSS de manière imaginative est le summum de la compétence. Si vous avez utilisé autant de didacticiels de mise en page CSS que vous pouvez en trouver, vous pourriez supposer que la maîtrise des flotteurs est un rite de passage. Vous serez ébloui par l'ingéniosité, étonné par la complexité, et vous aurez un sentiment d'accomplissement lorsque vous comprendrez enfin le fonctionnement des flotteurs.
Ne soyez pas dupe. Vous subissez un lavage de cerveau.
http://www.sitepoint.com/give-floats-the-flick-in-css-layouts/
Mise à jour 2015 - Flexbox est une bonne alternative pour les navigateurs modernes :
.container {
display: flex; /* or inline-flex */
}
.item {
flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
}
Plus d'informations
Mise à jour du 21 décembre 2016
Bootstrap 4 supprime le support pour IE9, et se débarrasse ainsi des flotteurs des lignes et devient Flexbox complet.
Demande de tirage # 21389
inline
, noninline-block
. Mais le premier en relation est bon: stackoverflow.com/a/11823622/918414