Skip to main content
RapidDev - Software Development Agency
webflow-tutorials

Webflow Background Images: Fixed, Parallax, and CMS-Connected

To add a background image in Webflow, select any element, go to Style Panel (S) → Backgrounds → '+' → Image, then choose your uploaded asset. Set Size to Cover to fill the container, and Position to control which part of the image is centered. For parallax, change Attachment to Fixed — note that Fixed attachment does not work on iOS Safari, so always add a fallback static image layer or test on actual devices.

What you'll learn

  • Apply background images using Style Panel → Backgrounds and control Cover/Contain sizing and position
  • Create parallax scrolling effects with Fixed attachment — and understand the iOS Safari limitation
  • Stack multiple background layers (image + gradient overlay) for text-readable hero sections
  • Connect background images to CMS fields using the purple binding icon for dynamic per-page backgrounds
  • Optimize background images for performance by compressing to WebP/AVIF before upload
Book a free consultation
4.9Clutch rating
600+Happy partners
17+Countries served
190+Team members
Intermediate9 min read25-35 minAll Webflow plans (custom code requires Basic plan or above)March 2026RapidDev Engineering Team
TL;DR

To add a background image in Webflow, select any element, go to Style Panel (S) → Backgrounds → '+' → Image, then choose your uploaded asset. Set Size to Cover to fill the container, and Position to control which part of the image is centered. For parallax, change Attachment to Fixed — note that Fixed attachment does not work on iOS Safari, so always add a fallback static image layer or test on actual devices.

Webflow Background Images: Cover, Parallax, and CMS-Connected Backgrounds

Background images in Webflow are set through the Style Panel and applied to any element — sections, divs, hero containers, or individual cards. Unlike inline images, background images are purely decorative CSS and do not generate responsive srcset variants automatically, so file size management matters more. This tutorial covers the complete background image workflow: uploading and applying images, Cover vs. Contain sizing, Fixed-attachment parallax effects, stacking multiple background layers for overlay effects, and connecting backgrounds to CMS fields for dynamic per-page backgrounds. The parallax and CMS-connected techniques make this tutorial distinct from basic image cropping or video backgrounds.

Prerequisites

  • A Webflow project open in the Designer
  • Background images uploaded to the Asset Manager (cloud icon, left toolbar) — recommended max 1MB per background image
  • Familiarity with the Style Panel sections (S shortcut) and Breakpoint Bar at the top of Designer

Step-by-step guide

1

Upload your background image to the Asset Manager

Click the cloud icon in the left toolbar to open the Asset Manager. Click the upload cloud icon or drag and drop your image file. Webflow accepts JPG, PNG, WebP, and AVIF (supported since July 2024). The maximum file size per upload is 4MB, but for background images you should aim for under 500KB. If your image is larger, select it after upload, click Compress, and choose WebP (good compression) or AVIF (best compression, ~30-50% smaller than WebP). Background images do not automatically generate responsive srcset variants like inline images do, so a single optimized file is critical.

Expected result: Your background image appears in the Asset Manager panel, ready to assign to any element.

2

Assign the background image to your element

Select the element you want to give a background — usually a Section, Div Block, or Container. Open the Style Panel (S) and scroll to the Backgrounds section. Click the '+' icon to add a background layer. Choose 'Image' from the background type options. A file picker appears — click the folder icon or search your assets by name and select your uploaded image. The image immediately appears as a background on the element.

Expected result: The background image fills the element area. By default it tiles if the element is larger than the image.

3

Set Size to Cover and control Position

With the element selected and the background layer active in Style Panel → Backgrounds, find the Size dropdown. Change it from 'Auto' (default, which can cause tiling) to Cover. Cover scales the image to fill the entire element without distortion, cropping the overflow edges. Alternatively, set to Contain to show the full image without cropping — useful for logos or charts used as backgrounds. Below Size, set Position using the grid of 9 position presets (top-left, top-center, top-right, middle-left, center, etc.) or enter custom X/Y percentage values. Center (50% 50%) is the most common starting point.

Expected result: The background image fills the section completely at Cover size with no tiling. The image repositions to show the key focal area based on your Position setting.

4

Stack a gradient overlay for text legibility

Text on top of background images is often hard to read. Webflow supports multiple stacked background layers. With the element selected, click '+' in the Backgrounds section again to add a second layer. Choose 'Gradient' and select 'Linear'. Set the gradient from a semi-transparent dark color at the bottom (rgba(0,0,0,0.7)) to transparent at the top. Background layers stack in the order they appear — the top layer in the list renders on top visually. Drag the gradient layer above the image layer so the gradient sits over the image. The result is a dark fade at the bottom of your hero section that makes white text readable.

Expected result: The section shows the background image with a gradient overlay. Text elements placed over the section are now legible against the dark gradient base.

5

Enable parallax scrolling with Fixed attachment

Parallax in Webflow is achieved by setting the background image attachment to Fixed. This makes the background image stay in place while the page scrolls, creating a depth illusion as the container moves over the static background. With the element selected, find the background image layer in Style Panel → Backgrounds. Look for the Tile/Attachment setting — it has options: No-repeat, Repeat, Repeat-x, Repeat-y. Click the attachment icon (scroll icon) to toggle between Scroll (default) and Fixed. Set it to Fixed. Make the section tall enough (min-height: 60-80vh) to see the parallax effect as the user scrolls.

Expected result: As you scroll the published site (preview via top-right Play button), the background image stays fixed while the section container scrolls over it.

6

Connect a background image to a CMS field

To use different background images per CMS item (e.g., a blog post background, a portfolio project hero), use a CMS-connected background. First, ensure your Collection has an Image field (CMS Panel → your collection → Edit Fields → add Image field). Inside a Collection List item or Collection Template page, select the element that needs a background. Go to Style Panel → Backgrounds → '+' → Image. In the image source field, you will see a purple icon (the CMS binding icon). Click it and select your Image CMS field from the dropdown. Now each collection item renders its own background image dynamically.

Expected result: Each collection item in the list renders a different background image drawn from its CMS Image field.

7

Set a fallback background color and test across breakpoints

If a CMS image field is empty, or if the background image fails to load, you need a fallback. In Style Panel → Backgrounds, add an additional background layer ('+' → Color) and place it below the image layer in the stack. Set a brand color or neutral dark color. This color shows through if the image fails. Next, switch through breakpoints in the Breakpoint Bar and check that the background image looks correct on Tablet and Mobile. You may need to adjust the Position value per breakpoint if the focal area of the image shifts.

Expected result: The element has a solid color fallback visible if the image layer is removed or fails. The background positions correctly at all breakpoints.

Complete working example

Visual Steps Summary
1WEBFLOW BACKGROUND IMAGES VISUAL STEPS SUMMARY
2
31. UPLOAD IMAGE
4 Asset Manager (cloud icon) Upload Compress to WebP/AVIF
5 Target: under 500KB for background images
6
72. ASSIGN BACKGROUND
8 Select element (Section / Div Block) Style Panel (S) Backgrounds '+' Image
9 Select your asset from the picker
10
113. SIZE AND POSITION
12 Style Panel Backgrounds Size: Cover
13 Position: 9-point grid or custom X/Y % values (e.g., center center = 50% 50%)
14
154. GRADIENT OVERLAY
16 Backgrounds '+' Gradient Linear
17 Drag gradient layer ABOVE image layer in the list
18 Set: bottom color rgba(0,0,0,0.7) top color transparent
19
205. PARALLAX (Fixed attachment)
21 Style Panel Backgrounds attachment icon Fixed
22 Does NOT work on iOS Safari
23 Alternative: Interactions 2.0 While Scrolling In View + Move Y on element
24
256. CMS-CONNECTED BACKGROUND
26 Must be inside Collection List or Template Page
27 Style Panel Backgrounds '+' Image purple icon select CMS field
28
297. FALLBACK + BREAKPOINTS
30 Backgrounds '+' Color set brand/neutral color, place BELOW image layer
31 Check Position at Tablet and Mobile breakpoints

Common mistakes

Why it's a problem: Background image tiles or shows small instead of filling the section

How to avoid: The Size setting defaults to 'Auto', which renders the image at its natural size and tiles it. Go to Style Panel → Backgrounds → the image layer → Size → Cover. This scales the image to fill the container completely.

Why it's a problem: Fixed attachment parallax works on desktop but is broken on iPhone

How to avoid: This is a known iOS Safari limitation — fixed background attachment is not supported on mobile iOS and renders statically. Use Webflow Interactions 2.0 instead: Interactions panel (H) → Element triggers → While Scrolling In View → Move Y action as a cross-browser parallax replacement.

Why it's a problem: Text on the background image is unreadable (low contrast)

How to avoid: Add a gradient overlay layer in Style Panel → Backgrounds → '+' → Gradient. Place it above the image layer. Set the bottom stop to rgba(0,0,0,0.65) and the top to transparent. Alternatively, add a solid semi-transparent color layer (rgba(0,0,0,0.4)) at the top of the stack.

Why it's a problem: The purple CMS binding icon does not appear for background images

How to avoid: CMS binding is only available inside Collection List items or Collection Template pages. If you are on a regular static page, the purple icon will not appear. Drag a Collection List element onto the page first, or navigate to your collection's template page via Pages panel (P) → CMS Collection Pages.

Best practices

  • Always compress background images to WebP or AVIF in the Asset Manager before assigning them — background images do not get Webflow's automatic responsive srcset treatment.
  • Set a fallback background color below the image layer in Style Panel → Backgrounds so elements still look intentional if the image fails to load.
  • Never rely solely on Fixed attachment for parallax — test on iOS Safari where it renders as static. Use Webflow Interactions as a cross-platform alternative.
  • For CMS-connected backgrounds, add a conditional visibility check: if the Image field is empty, the background image layer should fall back to the color layer gracefully.
  • Use Style Panel → Size → Min Height: 100vh for full-screen background image sections rather than a fixed pixel height — this adapts to all viewport sizes.
  • Keep the gradient overlay layer above the image layer in the Backgrounds stack, not below — the layer order in Webflow's panel maps directly to CSS z-order within the background property.
  • For retina/HiDPI screens, upload background images at 2x your display size (e.g., 2560px wide for a full-width desktop background).

Still stuck?

Copy one of these prompts to get a personalized, step-by-step explanation.

ChatGPT Prompt

I'm building a Webflow hero section with a full-width background image that should scroll with a parallax effect. I also want a gradient overlay so text stays readable. Can you give me the exact Webflow Style Panel steps to: 1) assign a background image with Cover sizing, 2) add a dark gradient overlay on top of it, and 3) enable Fixed attachment parallax. Also explain the iOS Safari issue with fixed attachment and what to do instead.

Webflow Prompt

In my Webflow project, I have a blog collection with an Image field called 'Hero Background'. I want each blog post template page to display that image as a full-width background on the hero section. Walk me through connecting the CMS Image field to the section's background using Webflow's Style Panel binding, and explain where the purple binding icon appears and when it doesn't.

Frequently asked questions

How do I change a background image on a specific breakpoint in Webflow?

Switch to the target breakpoint using the Breakpoint Bar at the top of the Designer. Select the element and go to Style Panel → Backgrounds. Remove the existing image layer and add a new one with a different, smaller image optimized for that screen size. Webflow's breakpoint cascade means the new image applies at that breakpoint and below. This is useful for swapping a large desktop hero image with a mobile-cropped version.

Do background images in Webflow get lazy-loaded automatically?

No. Lazy loading (the HTML loading='lazy' attribute) only applies to inline Image elements, not CSS background images. Background images set via Style Panel → Backgrounds always load as part of the CSS. To defer non-critical background images, you can add a custom attribute or use JavaScript to add the background image class after page load, but this requires the Basic plan for custom code.

Can I use a video file as a background image in Webflow?

Not through the Backgrounds panel. For video backgrounds, use the dedicated Background Video element: Add Elements (A) → Media → Background Video. This element is purpose-built with autoplay, mute, loop, and poster image settings. The Backgrounds panel only accepts image files (JPG, PNG, WebP, AVIF, GIF).

Why does my CMS background image show a broken state on some items?

If the CMS Image field is empty for some items, the background layer has nothing to display and shows transparent (or your fallback color). Add a conditional visibility check on the element: Element Settings (D) → Conditional visibility → Image field is set. You can also use a Switch field to toggle between a CMS background and a default brand background image for items without an image.

RapidDev

Talk to an Expert

Our team has built 600+ apps. Get personalized help with your project.

Book a free consultation

Need help with your project?

Our experts have built 600+ apps and can accelerate your development. Book a free consultation — no strings attached.

Book a free consultation

We put the rapid in RapidDev

Need a dedicated strategic tech and growth partner? Discover what RapidDev can do for your business! Book a call with our team to schedule a free, no-obligation consultation. We'll discuss your project and provide a custom quote at no cost.