Table des matières
✅ 使用 CSS Grid 实现类 Masonry 布局
HTML 结构
CSS 样式
? 效果说明
⚠️ 注意事项
✅ 替代方案:使用 CSS 多列(column-count
Maison interface Web tutoriel CSS Exemple de mise en page de la maçonnerie CSS

Exemple de mise en page de la maçonnerie CSS

Aug 05, 2025 am 02:16 AM
css

可以使用CSS Grid或CSS多列布局实现类瀑布流效果,但原生display: masonry尚未被广泛支持。1. 使用CSS Grid:通过设置display: grid、grid-template-columns定义列数、grid-auto-rows定义行高并结合gap间距,使不同高度的项目自动排列成近似瀑布流的布局,配合break-inside: avoid防止内容断行,适用于现代浏览器且支持响应式调整列数。2. 使用CSS多列布局(column-count):适用于文本或简单元素,通过column-count划分列数,item设为inline-block并避免分页断开,优点是天然支持垂直堆叠,缺点是控制性弱、仅适合顺序排列。3. 注意事项:当前(2025年初)原生display: masonry仍处于提案阶段,主流浏览器不支持,如需精准填空排列(如Pinterest风格),应使用JavaScript库如Masonry.js或Isotope。综上,对一般项目推荐使用CSS Grid模拟瀑布流,兼顾兼容性与维护性;复杂场景建议采用JS方案以获得更优布局效果。

css masonry layout example

CSS Masonry Layout(瀑布流布局)是一种常见的网页布局方式,特别适合展示图片、卡片等内容不等高的场景。虽然传统的“masonry”效果多用 JavaScript 实现(如 Masonry.js),但现在可以通过 CSS 的 column-count + inline-blockdisplay: grid 来实现简易的纯 CSS 瀑布流效果。

css masonry layout example

下面是一个使用 纯 CSS Grid 模拟 Masonry 布局 的实用示例(目前原生 display: masonry 尚未广泛支持,但可以用 Grid 折中实现):


✅ 使用 CSS Grid 实现类 Masonry 布局

HTML 结构

<div class="masonry-grid">
  <div class="item">Item 1<br>Some content here.</div>
  <div class="item">Item 2<br>Short</div>
  <div class="item">Item 3<br>A longer item with more text.</div>
  <div class="item">Item 4<br>Image or card</div>
  <div class="item">Item 5<br>Another one</div>
  <div class="item">Item 6<br>Very tall content<br>Line<br>Line<br>Line</div>
</div>

CSS 样式

.masonry-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 3列 */
  grid-auto-rows: minmax(100px, auto);  /* 最小高度,避免太扁 */
  gap: 12px;                            /* 间距 */
  padding: 16px;
}

.item {
  background: #f0f0f0;
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 16px;
  /* 关键:让项目自动“堆叠”而不强制对齐行 */
  break-inside: avoid; /* 避免在打印或分页时断开 */
  word-wrap: break-word;
}

/* 响应式:在小屏幕上变为2列或1列 */
@media (max-width: 768px) {
  .masonry-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .masonry-grid {
    grid-template-columns: 1fr;
  }
}

? 效果说明

  • 这种方法利用了 CSS Grid 自动行生成(grid-auto-rows内容高度自适应 的特性。
  • 每个 .item 高度不同,Grid 会自动排列成类似“瀑布流”的视觉效果。
  • 虽然不是严格意义上的 Masonry(比如无法像 JS 那样精确填空),但在大多数现代浏览器中表现良好。

⚠️ 注意事项

  • 原生 display: masonry 还未支持:目前(截至 2025 年初)主流浏览器尚未支持 display: masonry(属于 CSSWG 提案阶段),所以不能直接使用。
  • 更真实的 Masonry?用 JS:如果需要更精确的布局(如 Pinterest 风格),推荐使用 JavaScript 库:

✅ 替代方案:使用 CSS 多列(column-count

适合文本类或简单元素的瀑布流:

css masonry layout example
.masonry-columns {
  column-count: 3;
  column-gap: 16px;
}

.item {
  display: inline-block;
  width: 100%;
  margin-bottom: 12px;
  break-inside: avoid; /* 防止元素被切断 */
}

优点:天然支持瀑布流排列;缺点:只适合从上到下顺序流式布局,控制性差。


基本上就这些。对于大多数现代项目,用 Grid 模拟 + 响应式处理 是最简单、兼容性好的方案。真正复杂的 Masonry 排列还是交给 JS 更稳妥。

css masonry layout example

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1544
276
Comment utiliser les unités VW et VH dans CSS Comment utiliser les unités VW et VH dans CSS Aug 07, 2025 pm 11:44 PM

Les unités VW et VH obtiennent une conception réactive en associant des tailles d'élément avec la largeur et la hauteur de la fenêtre; 1VW est égal à 1% de la largeur de la fenêtre et 1VH est égal à 1% de la hauteur de la fenêtre; couramment utilisé dans la zone pleine écran, les polices réactives et l'espacement élastique; 1. Utilisez 100VH ou mieux 100dvh dans la zone en plein écran pour éviter l'influence de la barre d'adresse du navigateur mobile; 2. 3. Espacement élastique comme la largeur: 80vw, marge: 5Vhauto, rembourrage: 2VH3VW, peut rendre la disposition adaptable; Faites attention à la compatibilité des appareils mobiles, à l'accessibilité et aux conflits de contenu de largeur fixe, et il est recommandé de donner la priorité à l'utilisation d'abord de DVH;

Quelles sont les applications de trading de devises virtuel Quelles sont les applications de trading de devises virtuel Aug 08, 2025 pm 06:42 PM

1. Binance est connue pour son énorme volume de transactions et ses paires de trading riches. Il fournit des modèles de trading diversifiés et des écosystèmes parfaits. Il garantit également la sécurité des actifs des utilisateurs via les fonds SAFU et les technologies de sécurité multiples et attache une grande importance aux opérations conformes; 2. OKX OUYI fournit un large éventail de services de trading d'actifs numériques et de modèles de comptes de trading unifiés, déploie activement le domaine Web3 et améliore la sécurité et l'expérience des transactions grâce à un contrôle des risques strict et à l'éducation des utilisateurs; 3. Gate.io Sesame ouvre la porte et a une bonne vitesse de devise et une monnaie riche, fournit des outils de trading diversifiés et des services à valeur ajoutée, adopte plusieurs mécanismes de vérification de sécurité et adhère à la transparence des réserves d'actifs pour améliorer la confiance des utilisateurs; 4. Huobi fournit des services d'actifs numériques à guichet unique avec une accumulation profonde de l'industrie, avec une forte profondeur de transaction et

Comment utiliser la propriété Filtre dans CSS Comment utiliser la propriété Filtre dans CSS Aug 11, 2025 pm 05:29 PM

ThecsssfilterPropertyAllowsVisualEffectslikeBlur, Brightness et GrayscaletobeAppliedDirectlyToHtMlelements.1) usethesyntaxfilter: filter-function (valeur) toapplyeffects.2) combinemultipleFilterSwithSpacesparation, e.g., Blur (2px) Brightness (70%).

Comment utiliser efficacement les sélecteurs CSS Comment utiliser efficacement les sélecteurs CSS Aug 11, 2025 am 11:12 AM

Lorsque vous utilisez des sélecteurs CSS, les sélecteurs à faible spécifiquement spécifique doivent être utilisés en premier pour éviter les limitations excessives; 1. Comprendre le niveau de spécificité et les utiliser raisonnablement dans l'ordre de type, de classe et d'ID; 2. Utilisez des noms de classe polyvalents pour améliorer la réutilisabilité et la maintenabilité; 3. Utilisez des attributs et des sélecteurs de classe pseudo pour éviter les problèmes de performances; 4. Gardez le sélecteur court et clair; 5. Utiliser BEM et d'autres spécifications de dénomination pour améliorer la clarté structurelle; 6. Évitez les abus de sélecteurs de balises et: nième-enfant, et donnez la priorité à l'utilisation de classes d'outils ou de CSS modulaires pour s'assurer que le style est contrôlable pendant longtemps.

Comment créer une ligne verticale avec CSS Comment créer une ligne verticale avec CSS Aug 11, 2025 pm 12:49 PM

Utilisez une div avec bordure pour créer rapidement des lignes verticales et définissez des styles et des hauteurs en fixant la bordure-gauche et la hauteur; 2. Utiliser :: avant ou :: après des pseudo-éléments pour ajouter des lignes verticales sans étiquettes HTML supplémentaires, adaptées à la séparation décorative; 3. Dans la disposition de Flexbox, en réglant la largeur et la couleur d'arrière-plan de la classe de diviseur, les séparateurs verticaux adaptatifs entre les conteneurs élastiques peuvent être obtenus; 4. Dans CSSGrid, insérez les lignes verticales sous forme de colonnes indépendantes (telles que les colonnes auto-idgeth) en disposition de la grille, qui convient à la conception réactive; La méthode la plus appropriée doit être sélectionnée en fonction de la mise en page spécifique pour s'assurer que la structure est simple et facile à entretenir.

Comment créer une bordure en pointillé en CSS Comment créer une bordure en pointillé en CSS Aug 15, 2025 am 04:56 AM

Utilisez CSS pour créer des bordures pointillées, il suffit de définir l'attribut de bordure aux pointillés. Par exemple, "Border: 3pxdotted # 000" peut ajouter une bordure à point noir de 3 pixels à l'élément. En ajustant la largeur des frontières, la taille du point peut être modifiée. Les frontières plus larges produisent des points plus importants. Vous pouvez définir des bordures pointillées pour un certain côté, comme "Border-top: 2pxdottedDred". Les bordures en pointillés conviennent aux éléments au niveau du bloc tels que Div et Entrée. Ils sont souvent utilisés dans les états d'intérêt ou les domaines modifiables pour améliorer l'accessibilité. Faites attention au contraste des couleurs. Dans le même temps, différent du style courte de la ligne courte, en pointillés présente une forme de point circulaire. Cette fonction est largement utilisée dans tous les navigateurs traditionnels.

Comment changer le style de liste dans CSS Comment changer le style de liste dans CSS Aug 17, 2025 am 10:04 AM

Pour modifier le style de liste CSS, utilisez d'abord le type de style liste pour modifier la balle ou le style de numérotation. 1. Utilisez du type de style liste pour régler la balle de UL à disque, cercle ou carré, et le nombre d'OL est décimal, inférieur alpha, haut-alpha, inférieur-romain ou haut-romain. 2. Supprimez complètement la balise avec la liste: aucun. 3. Utilisez la liste-image: URL ('Bullet.png') pour la remplacer par une image personnalisée. 4. Utilisez la position de style liste: dans

Exemple de mode mélange de mélange CSS Exemple de mode mélange de mélange CSS Aug 08, 2025 pm 12:59 PM

L'attribut en mode mélange de mélange est utilisé pour contrôler l'effet de mélange de la teneur en élément et de l'arrière-plan. 1. Multiply peut réaliser le chevauchement des images de texte et d'arrière-plan; 2. L'écran éclaire l'image et convient aux arrière-plans sombres; 3. La superposition améliore le contraste, combinant les fonctionnalités multipliées et écran; 4. La différence crée un contraste fort, qui convient au design créatif; Il est nécessaire de s'assurer que les éléments se chevauchent et l'ordre d'empilement de l'indice Z

See all articles