Although not as popular as container query, CSS natively supports "masonry" layouts have always been a feature that CSS developers strongly expect. Masonry layout refers to elements of varying sizes and arranged in uneven rows, which is a bit like a brick wall placed on the side.
CSS itself can implement this layout, but there is a big limitation: the items are not arranged by row, but by column, which is often difficult to meet the needs.
<code>/* 通常人们不想要这种排列方式*/ 1 4 6 8 2 7 3 5 9</code>
<code>/* 他们想要这种排列方式* 1 2 3 4 5 6 7 8 9</code>
If you want to arrange both uneven rows and maintain the horizontal source code order, you can only use JavaScript. But things have changed now, Firefox introduced this feature with feature flags in the Night Edition as part of the CSS Grid.
Mats Palmgren said:
Implementation of this proposal is now available in Firefox Nightly. It is disabled by default, so you need to load about:config and set the preference layout.css.grid-template-masonry-value.enabled to true to enable it (type "masonry" in the search box on this page and it will show that preference).
Jen Simmons has created some demos:
Is this really a grid layout?
Rachel Andrew raised some questions about this...
Grid layout is not a masonry layout because it is a grid with strict rows and columns. If you look at the layout created by the masonry layout again, we will find that it does not have strict rows and columns. Usually we have defined rows, but the column behaves more like flex layout or multicol. The key difference between Multicol layout and masonry layout is that in Multicol, items are displayed in columns. In masonry layouts, they are usually desired to be displayed by row.
[…]
Personally, I don't really like it as part of the grid specification. It does look attractive at first glance, but I think it's a relatively professional layout pattern, which is actually not a grid layout at all. It's more similar to flex layout than grid layout.
By putting this layout method into the grid specification, I'm worried that we will then need to support the masonry function when making any other additions to the grid.
All of this has not yet been finalized and is being actively discussed by the CSS Working Group.
As Jen said:
This is an experimental implementation – being discussed as possible CSS specifications. It's not official yet and may change. Don't write a blog post saying it's definitely a thing. It's not yet. Not yet. It is an experiment. A prototype. If you have an idea, please post your comment on CSSWG.
Houdini?
Last time I discussed native masonry layout, it was mixed with the idea that the CSS layout API (as part of Houdini) could achieve this. As you can see when you open this demo (repository) in Chrome Canary, this is a feature.
I don't fully understand whether Houdini is intended to be a feature so that ideas like this can be prototyped in the browser and eventually removed from Houdini, or whether those ideas should stay in Houdini, or what.
The above is the detailed content of First Steps into a Possible CSS Masonry Layout. For more information, please follow other related articles on the PHP Chinese website!

If you've ever had to display an interactive animation during a live talk or a class, then you may know that it's not always easy to interact with your slides

With Astro, we can generate most of our site during our build, but have a small bit of server-side code that can handle search functionality using something like Fuse.js. In this demo, we’ll use Fuse to search through a set of personal “bookmarks” th

I wanted to implement a notification message in one of my projects, similar to what you’d see in Google Docs while a document is saving. In other words, a

Some months ago I was on Hacker News (as one does) and I ran across a (now deleted) article about not using if statements. If you’re new to this idea (like I

Since the early days of science fiction, we have fantasized about machines that talk to us. Today it is commonplace. Even so, the technology for making

I remember when Gutenberg was released into core, because I was at WordCamp US that day. A number of months have gone by now, so I imagine more and more of us

The idea behind most of web applications is to fetch data from the database and present it to the user in the best possible way. When we deal with data there

Let's do a little step-by-step of a situation where you can't quite do what seems to make sense, but you can still get it done with CSS trickery. In this


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

SublimeText3 English version
Recommended: Win version, supports code prompts!

Atom editor mac version download
The most popular open source editor