You're trying to show different layouts for mobile and desktop, but hiding elements affects all breakpoints unless done correctly. In Webflow, visibility must be set per breakpoint, using the proper display settings.
1. Use Display Settings by Breakpoint
- Webflow allows you to set display settings (e.g., Block, Flex, None) individually at each breakpoint.
- Select the element you want to hide on a specific viewport.
- In the Style panel, scroll to the Layout (Display) section and set it to Display: None on the unwanted breakpoints.
2. Start from the Desktop Down
- Webflow uses a mobile-first structure visually in the Designer, but styles cascade from larger to smaller breakpoints.
- So, if you hide an element on Desktop, it will be hidden by default on Tablet, Mobile Landscape, and Mobile Portrait unless you explicitly override it.
3. Show or Hide Elements Correctly
- Let's say you want to show Layout A on Desktop and Layout B on Mobile:
- Select Layout A, go to Tablet, Mobile views, and set Display: None.
- Select Layout B, go back up to Desktop and Tablet, and set Display: None there.
- Then go to the Mobile view, and change Layout B to Display: Block (or Flex/Grid).
4. Use the Visual Breakpoint Controls
- Use the navigation bar at the top of the Designer (Desktop, Tablet, Mobile Landscape, Mobile Portrait) to switch between views.
- Make sure you're setting visibility per device using these tools.
5. Use Custom Classes If Needed
- You can also create duplicate elements with custom class names like
desktop-header
and mobile-header
and then control their visibility per breakpoint using the Display setting. - Do not rely on the Eye icon in the Navigator—that hides elements entirely, not responsively.
Summary
Set visibility using the Display property (none/block/flex) on a per-breakpoint basis in Webflow's Style panel. If you set an element to display “None” on Desktop, be sure to override it at smaller breakpoints if you want it to appear there. This is how you create different layouts per device.