Quelle est la différence entre alignez-le contenu et alignez-les éléments?
Quelqu'un peut me montrer la différence entre align-items
et align-content
?
- aligner les éléments et aligner le contenu
- J'ai déjà creusé de Chris Almanach, mais n'a toujours pas clair
- Les noms de choix ici est si confus! semble téméraire de nommage des choses comme ça!
- stackoverflow.com/q/42613359/3597276
Vous devez vous connecter pour publier un commentaire.
La
align-items
propriété de flex-zone aligne les éléments à l'intérieur d'un conteneur flex le long de l'axe transversal commejustify-content
long de l'axe principal. (Par défautflex-direction: row
la croix de l'axe correspond à l'axe vertical et l'axe principal correspond à l'horizontale. Avecflex-direction: column
ces deux sont interchangeables, respectivement).Voici un exemple de la façon dont
align-items:center
ressemble:Mais
align-content
est pour le multi ligne flexible boîtes. Il n'a pas d'effet lorsque les éléments sont dans une seule ligne. Il aligne l'ensemble de la structure en fonction de sa valeur. Voici un exemple pouralign-content: space-around;
:Et voici comment
align-content: space-around;
avecalign-items:center
ressemble:Note la 3ème case et toutes les autres cases de la première ligne de changement centrée verticalement sur la ligne.
Voici quelques codepen liens pour jouer avec:
http://codepen.io/asim-coder/pen/MKQWbb
http://codepen.io/asim-coder/pen/WrMNWR
Voici vraiment un super stylo qui montre et vous permet de jouer avec presque tout dans flexbox.
align-*
propriétés peuvent également changer de flex éléments horizontalement. Il dépend de laflex-direction
. stackoverflow.com/q/32551291/3597276D'abord,
align-items
est des éléments dans une seule ligne. Donc pour une seule rangée d'éléments sur axe principal,align-items
permettra d'aligner ces éléments respectifs des uns et des autres et il va commencer avec un nouveau point de vue à partir de la ligne suivante.Maintenant,
align-content
ne pas interférer avec les éléments dans une rangée, mais avec des lignes lui-même. Par conséquent,align-content
essaye d'aligner des lignes par rapport à l'autre et flex conteneur.Vérifier ce violon : https://jsfiddle.net/htym5zkn/8/
Je trouve l'exemple http://flexboxfroggy.com/ très utile.
Il va vous prendre 10 à 20 minutes et au niveau 21, vous trouverez la réponse à votre question. Il a mentionné:
Bien j'ai vérifié sur mon navigateur.
align-content
peut changer une ligne de hauteur de colonne de direction ou de largeur de colonne lorsque sa valeur est de tendre, ou ajouter un espace vide entre ou autour des lignes despace-between
,space-around
,flex-start
,flex-end values
.align-items
pouvez modifier les éléments de la hauteur ou la position à l'intérieur de la ligne de la zone. Lorsque les éléments ne sont pas enveloppés ils n'ont qu'une ligne de la zone est toujours tendue à la flex-zone de la boîte (même si les éléments de débordement), etalign-content
n'a aucun effet sur une seule ligne. Donc, il n'a aucun effet sur les éléments qui ne sont pas emballés et seulementalign-items
pouvez modifier les éléments de position ou de s'étirer quand ils sont tous sur une seule ligne.Cependant, s'ils sont emballés, vous avez plusieurs lignes et les éléments à l'intérieur de chaque ligne. Et si tous les éléments de chaque ligne ont la même hauteur (pour l'orientation des rangs) que la ligne de hauteur sera égale à ceux des éléments de la hauteur et vous ne voyez aucun effet en changeant
align-items
valeur.Donc, si vous voulez affecter des articles par
align-items
si vos articles sont emballés et ont la même hauteur (pour l'orientation des rangs) d'abord, vous devez utiliseralign-content
avec le bout de valeur afin de développer les lignes de la zone.alignez-le contenu
align-content
contrôles de la croix-axe (c'est à dire à la verticale si leflex-direction
estrow
, et horizontal si leflex-direction
estcolumn
) de positionnement de plusieurs lignes les uns par rapport aux autres.(Pensez à des lignes d'un paragraphe à la verticale étalé, empilés vers le haut, empilés vers le bas. C'est sous un
flex-direction
ligne paradigme).alignez-les éléments
align-items
contrôles de la croix-axe d'une ligne individuelle de flex éléments.(Pensez à la façon dont un individu de ligne d'un paragraphe est aligné, si elle contient du texte normal et certains plus grands de texte comme des équations mathématiques. Dans ce cas, il devrait être en haut, en bas ou au centre de chaque type de texte dans une ligne qui sera aligné?)
J'ai eu la même confusion. Après quelques retouches, basée sur de nombreuses réponses ci-dessus, je peux enfin voir les différences. À mon humble avis, la distinction est le mieux démontré avec un conteneur flex qui satisfait aux deux conditions suivantes:
min-height: 60rem
) et peut donc devenir trop grand pour son contenuCondition 1 m'aide à comprendre ce que
content
signifie par rapport à son conteneur parent. Lorsque le contenu est aligné avec le conteneur, nous ne serons pas en mesure de voir tout le positionnement des effets à venir dealign-content
. C'est seulement lorsque nous avons de l'espace supplémentaire, le long de l'axe transversal, nous commençons à voir son effet: Il aligne le contenu par rapport à la limites du conteneur parent.La Condition 2 m'aide à visualiser les effets de la
align-items
: il aligne les éléments les uns par rapport aux autres.Voici un exemple de code. Les matières premières proviennent de Wes Bos Grille CSS tutoriel (21. Flexbox vs CSS Grid)
Exemple 1: Laissez étroites de la fenêtre d'affichage de sorte que le contenu est aligné avec le conteneur. C'est quand
align-content: flex-start;
n'a pas d'effets puisque l'ensemble du bloc de contenu est étroitement ajustement à l'intérieur du conteneur (pas de place supplémentaire pour le repositionnement!)Aussi, la note de la 2ème rangée--voir comment les éléments sont au centre de la harmonisés entre eux.
Exemple 2: Comme nous l'avons élargir la fenêtre d'affichage, nous n'avons plus assez de contenu pour remplir l'ensemble du conteneur. Maintenant nous commençons à voir les effets de
align-content: flex-start;
--il aligne le contenu par rapport au bord supérieur du récipient.Ces exemples sont basés sur flexbox, mais les mêmes principes sont applicables à la grille CSS. Espérons que cela aide 🙂
La principale différence est que la hauteur des éléments qui ne sont pas les mêmes!
Ensuite, vous pouvez voir comment, dans la ligne, ils sont tous center\fin\start
selon ce que j'ai compris de ici:
lorsque vous utilisez alignez-élément ou justifier-point, vous êtes en train d'ajuster le contenu à l'intérieur d'une grille de point le long de la de l'axe de la colonne ou de la ligne axe, respectivement.
Mais:
si vous utilisez alignez-le contenu ou justifier de contenu, vous définissez la position de la grille le long de l'axe des colonnes ou des le ligne axe. il se produit lorsque vous avez une grille dans un récipient plus grand et la largeur ou la hauteur sont rigides (à l'aide de px).