| As far as I can tell, the only way the source-whitespace will appear is when both of the following are true: 1. The parent has `display-inside: flow` or `display-inside: flow-root` (ie, the "original", pre-flexbox, formatting contexts) eg `display: block`, `display: inline`, `display: inside-block`
2. The children have `display-outside: inline` eg, `display: inline`, `display: inline-block`, `display: inline-flex`
In any other combination, the source-whitespace disappears, in some way or other.---- What I think you want, a horizontal row disregarding source-whitespace, could be achieved with `display-inside: flex` (eg, `display: flex`, `display: inline-flex`) on the parent (with `flex-direction: row` being the default). So: img-row {
display: flex;
}
aka img-row {
display: block flex;
}
aka (though this syntax has been temporarily removed) img-row {
display-outside: block;
display-inside: flex;
}
aka img-row {
display-outside: block;
display-inside: flex;
flex-direction: row; /* the default */
}
----Note that this longhand syntax doesn't seem to be implemented in Chrome, at least, yet. So if you want to check it out, you'll have to work in the shorthand (still translatable from the longhand as specified in the draft spec https://drafts.csswg.org/css-display/#propdef-display). |
But suddenly all children that have display:block will be a) replaced on new row each and b) with spaces between them ignored.
Such a dichotomy is the source of weird hacks, like advices to remove spaces between blocks at all, etc.