Stop floating divs from wrapping
The display: inline-block; on child divs combined with white-space: nowrap; on the parent container is your solution to prevent divs from wrapping:
The accompanying HTML might resemble this:
Tip: Switch your wardrobe from float to inline-block, they are cooler. Turn on overflow-x: auto; for horizontal scrolling on narrow screens.
Get inline-block on your side
The superpower of display: inline-block lies in mixing traits of both inline and block elements. Elements sit snugly side-by-side while retaining block-level features:
Inline-block rules:
.child-divare individual blocks that can be resized.- Adjacent
.child-divwill stay in line, like well-behaved children. - Margins? They won't collapse. Guaranteed! 😎
- Beware of the notorious HTML whitespaces, they may create unwanted gaps.
Get an in-depth understanding of the inline-block and its quirks here.
Going beyond simple: Flexibility and browser compatibility
Crafting a flexible layout
While you fix your wrapping problem, let's not commit to rigid layouts. Welcome adaptability:
- Use percentages or viewport units for resizable child divs.
min-widthcan prevent your.child-divfrom becoming too skinny.- Ditch hard-coded widths. They are layout spoilers.
Doing a compatibility check
Yes, display: inline-block is popular, but always cross-verify on caniuse.com, because "better safe than sorry"!
More on the story: Overflow and rendering rules
Taking over overflow
When child divs decide to go overboard from the container:
- Set
overflow: autoon.containerto roll out the scrollbars
Ensuring consistent rendering
Start your HTML with <!DOCTYPE html> to guarantee consistent rendering across browsers. That's just good manners!
Dispelling unrelated myth properties
While fixing non-wrapping layouts, know that properties like position, z-index, transition, or float are like spectators, unrelated to the action:
Position: absolute;can throw elements off from the normal layout flow.Z-indexis only concerned about the stacking order, not your layout.Overflow-x: hidden;onbodycan keep horizontal scrolling under check.
Polishing techniques
Once you've tackled the initial problem, here are ways to enhance your layout:
- Use borders to inspect your layout. They serve as excellent layout guides.
- Media queries can be handy for different viewport widths.
- Eradicate arbitrary widths like
20000px. They are "layout Voldemort", the ones not to be chosen!
Was this article helpful?