Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PCHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
FREEDOM251

Freedom251 › Blog › CSS

How to Add Custom CSS in Elementor on WordPress

By Freedom251 Team · · 9 min read

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose the narrowest CSS scope that matches the change: select a widget or container for one element, use Page Settings for one page, or use Site Settings for site-wide rules. In-editor Custom CSS is plan-gated. Elementor Free users can add CSS from WordPress Dashboard → Appearance → Customize → Additional CSS.

The practical difference between a rule that works and one that appears broken is usually scope or selector targeting. Elementor places a class on a widget’s outer wrapper, so styling the visible heading, image, or button often requires a descendant selector such as .change-color h2.

As an Amazon Associate I earn from qualifying purchases.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose the right Elementor CSS scope

Elementor supports three in-editor scopes. Start with the smallest area that should change; this limits unintended effects and makes later maintenance easier.

Scope Best for Where to enter it Plan and precedence
Element One widget, container, or element Select the element, then open its CSS controls (normally Advanced → Custom CSS; some current editor views expose the control from the Style tab). Requires an Elementor plan that includes in-editor Custom CSS. Element rules override conflicting page and site rules.
Page Several elements on one landing page or post Page Settings → Advanced, then enter the page CSS. Requires in-editor Custom CSS. Page rules override conflicting site-level rules.
Site Shared typography, components, or utilities used throughout the site Elementor Editor → hamburger menu → Site Settings → Custom CSS. Elementor documents global Custom CSS as an Elementor Pro feature. Site rules are the lowest of the three Elementor scopes when selectors conflict.
WordPress Customizer Custom CSS when you use Elementor Free WordPress Dashboard → Appearance → Customize → Additional CSS. Available in WordPress independently of Elementor’s in-editor Custom CSS panel. Its result still follows normal CSS cascade and specificity.

Elementor describes these levels as an individual widget, a specific page, or the entire site. The exact labels can vary slightly with the editor version and the type of element, but the scope decisions remain the same.

#1 Best Overall
Sale
TOZO A1 Wireless Earbuds Bluetooth 5.3 Light Weight in Ear Headphones | IPX5 Waterproof,2 Mics for AI Calls,Immersive Premium Sound Bass Headset with Charging Case,32 EQ via App Black
  • [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
  • [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
  • [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
  • [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
  • [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.

Prepare before editing CSS

  • Know the target: decide whether the change belongs to one element, one URL, or every page.
  • Use a staging site when possible: a site-wide rule can affect headers, footers, templates, archive pages, and responsive breakpoints you are not currently viewing.
  • Identify the rendered element: a widget may contain a heading, link, image, icon, or form control inside its outer wrapper. The wrapper and the visible child can require different selectors.
  • Keep a rollback copy: copy existing rules before replacing them, especially when editing global CSS or the Customizer.
  • Test desktop and mobile: Elementor can apply different values at device breakpoints, and a rule that looks correct on a wide canvas may create overflow or unreadable contrast on a phone.

Add CSS to one widget or container

Use element-level CSS when the change should not leak to other instances of the same widget.

  1. Open the page in the Elementor Editor.
  2. Click the target widget or container on the canvas, or select it in the Structure window.
  3. Open the element’s CSS controls. In the commonly documented path, expand Advanced → Custom CSS. Depending on the editor interface and element type, the local CSS control may appear under Style.
  4. Enter the rule and update the page.
  5. Preview the page at the relevant device sizes and clear any page or caching layer that is serving an older stylesheet.

For a simple local rule, Elementor’s selector token represents the current widget or container:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
selector {
  border-radius: 12px;
}

Use the local selector when you want the rule tied directly to that element. Elementor’s element-level Custom CSS documentation also covers local classes, hover states, and device-specific rules.

Target a child inside the widget

The local selector identifies the element’s wrapper, not necessarily the piece that displays the text or image. To style a child, append its HTML tag or another descendant selector:

selector h2 {
  letter-spacing: 0.02em;
}

selector img {
  border-radius: 12px;
  display: block;
}

This distinction matters for headings, images, icons, and links. A declaration such as selector { color: green; } may not visibly recolor a heading if the heading has its own color declaration; selector h2 { color: green; } targets the rendered heading directly.

Style hover and other states

Element-level CSS can target interaction states with ordinary pseudo-classes:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Sale
Smart Watch for Men Women Compatible with iPhone Samsung Android Phone 1.69 inch Full Touch Screen IP68 Waterproof Bluetooh Fitness Tracker Heart Rate/Sleep Monitor (Black)
  • 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
  • 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
  • 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
  • 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
  • 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.
selector a {
  transition: background-color 160ms ease, color 160ms ease;
}

selector a:hover {
  background-color: #14532d;
  color: #ffffff;
}

Keep keyboard users in mind. If you define a custom hover treatment, provide a visible focus treatment as well:

selector a:focus-visible {
  outline: 3px solid #f59e0b;
  outline-offset: 3px;
}

Add CSS to one page

Page-level CSS is appropriate when several widgets on one page share a design treatment, or when a campaign page needs styles that should not become global.

  1. Open the page with Elementor.
  2. Open Page Settings.
  3. Choose Advanced.
  4. Enter the CSS in the page-level CSS field.
  5. Update the page, then check every section that uses the affected selectors.

Page-level rules override conflicting site-level rules in Elementor’s scope hierarchy. This makes a page rule useful for a deliberate exception, but it also means a global change may appear ineffective on a page that has an older competing declaration.

Scope page selectors so they cannot affect unrelated markup. For example, assign a class to a section and keep the rule beneath that class:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
.summer-landing .pricing-card h3 {
  color: #0f766e;
}

Add site-wide CSS

Use global CSS for patterns that should be consistent across templates and pages, such as a shared card treatment, a utility class, or a site-wide focus style.

  1. Open any page in the Elementor Editor.
  2. Open the hamburger menu.
  3. Choose Site Settings.
  4. Open Custom CSS.
  5. Add the rule, save or update, and inspect representative pages that use the affected component.

Elementor identifies global Custom CSS as an Elementor Pro feature. If the Custom CSS item is missing, confirm the active plan and that you are editing with the expected Elementor account and license.

Rank #3
New Bee Guitar Cable 10ft Electric Instrument Bass AMP Cord | 6.35mm Jack, Durable Design, Stage and Home Studio Use, Low Noise Shielded Electric Cord for Bass, Keyboard, Amp, Mixer
  • [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
  • [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
  • [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
  • [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
  • [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by

Build reusable site rules with classes

A class is preferable to a long chain of generated Elementor selectors when the same treatment will be reused. Put the class name in the element’s Advanced → CSS Classes field without a leading period:

change-color

Write the period in the CSS selector:

.change-color {
  color: #15803d;
}

Because Elementor places the class on the widget’s outer wrapper, target a descendant when the visible child needs the style:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
.change-color h2 {
  color: #15803d;
}

.change-color img {
  filter: saturate(1.08);
}

Use clear, semantic names such as eyebrow-muted, feature-card, or cta-accent. Avoid names that describe a temporary color if the component may be redesigned later.

Use Elementor Free’s Additional CSS panel

Elementor Free does not include the Custom CSS panel inside the editor. You can still add CSS through WordPress:

  1. Save or update the Elementor page.
  2. From the WordPress dashboard, open Appearance → Customize.
  3. Choose Additional CSS.
  4. Paste the rule, check the live preview, and select Publish.
  5. Reload the public page in a private browser window and verify desktop and mobile layouts.

Use the same class and descendant principles in this panel. For example, if the widget has change-color in its CSS Classes field, the Customizer rule is:

.change-color h2 {
  color: #15803d;
}

Additional CSS is WordPress-level CSS rather than Elementor’s element, page, or site CSS panel. Keep a short comment above groups of rules so a future editor knows which template or component they serve:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
BSIMB 15.6" Digital Family Calendar & Chore Chart, No Subscription Fees
  • Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
  • Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
  • All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
  • Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
  • Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.
/* Pricing cards: shared heading treatment */
.pricing-card h3 {
  margin-bottom: 0.5rem;
}

Understand wrappers, selectors, and specificity

Elementor’s generated HTML normally includes an outer wrapper around each widget. The class entered in Advanced → CSS Classes is applied to that wrapper. The content you see may be nested several levels deeper.

Wrapper versus descendant

Goal Selector pattern Why
Change the wrapper’s layout or border .feature-card The class is on the outer widget wrapper.
Change a heading inside the widget .feature-card h2 The heading is a child element with its own styles.
Change an image inside the widget .feature-card img The image needs a descendant selector.
Change only links in the widget .feature-card a It avoids affecting non-link text in the wrapper.

Elementor’s developer documentation describes scoping selectors through a widget wrapper and using the selector mechanism to turn control values into CSS styles. In practice, inspect the page when you are unsure which node owns the class or declaration.

Keep specificity intentional

When two declarations set the same property, the browser considers origin, importance, specificity, and source order. A narrowly scoped selector can beat a generic global rule without resorting to !important:

/* Broad utility */
.text-green {
  color: #15803d;
}

/* More specific component rule */
.feature-card h2.text-green {
  color: #166534;
}

Reserve !important for a documented exception, such as a third-party inline declaration that cannot otherwise be overridden. Excessive use makes later changes harder to diagnose.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Add responsive and device-specific rules

Elementor’s Custom CSS supports device sizes, and ordinary media queries can handle a precise breakpoint. Keep the base rule readable, then override only what must change:

.feature-card h2 {
  font-size: 2rem;
}

@media (max-width: 600px) {
  .feature-card h2 {
    font-size: 1.5rem;
    line-height: 1.2;
  }
}

A media query with max-width: 600px applies below 600 pixels. Test the actual content at that width rather than relying only on the editor’s device emulation. Check for horizontal scrolling, clipped text, buttons that become difficult to tap, and images whose fixed dimensions overflow their container.

For a rule that should apply only to a particular Elementor device setting, use the responsive controls exposed in the element-level CSS interface. Do not create separate desktop and mobile declarations when a fluid value already solves the problem.

Resolve rules that appear not to work

Check failures in this order so you do not change several variables at once.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Confirm the CSS is in the intended scope. An element rule affects one widget; a page rule affects one page; a site rule affects the site. If the Custom CSS control is absent, the active plan may not include in-editor CSS.
  2. Verify the selector. If you assigned change-color, the stylesheet must use .change-color, not change-color. If the visible node is a heading or image, append h2, img, or the appropriate descendant.
  3. Inspect the rendered HTML. Use the browser’s developer tools to confirm that the class is present, identify the element displaying the property, and see which declaration wins.
  4. Look for scope precedence. A conflicting page rule overrides a site rule, and an element rule overrides both. The winning declaration may be in a more specific selector even when it appears farther away in the editor.
  5. Check the property itself. A parent’s color does not override a child’s explicit color; a margin may be collapsing; an image may have an inline width; and a flex or grid parent may control the layout you are trying to change.
  6. Clear stale output. Update the page, purge any WordPress or CDN cache you control, and hard-refresh the browser. Test an incognito window to separate caching from selector errors.
  7. Disable one experimental rule at a time. A malformed declaration, missing brace, or unsupported value can invalidate the block that follows it. Keep each test small and balanced.

Practical patterns

One button without changing every button

Assign donate-button in the button widget’s CSS Classes field, then target its link:

.donate-button a {
  border-radius: 999px;
  padding-inline: 1.25rem;
}

.donate-button a:hover,
.donate-button a:focus-visible {
  transform: translateY(-1px);
}

The descendant link selector avoids changing unrelated text or controls in the widget wrapper.

A shared card component

Assign feature-card to each card, then define the reusable structure at site or page scope:

.feature-card {
  border: 1px solid #d1d5db;
  border-radius: 16px;
  padding: 1.25rem;
}

.feature-card img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
  width: 100%;
}

.feature-card h2 {
  margin-top: 1rem;
}

This pattern keeps the class stable even if Elementor’s generated wrapper classes change.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A page-only exception

When one landing page needs a different card color, place the exception in Page Settings and scope it to a page class or section class:

.campaign-page .feature-card {
  background: #fffbeb;
  border-color: #f59e0b;
}

The exception stays local while the reusable card definition remains available elsewhere.

Maintain CSS as the site grows

  • Group by component: keep card, navigation, form, and utility rules together rather than scattering one-off declarations across pages.
  • Prefer classes over generated selectors: Elementor’s internal markup can change when a widget or template is rebuilt; a deliberate class documents your intent.
  • Name the scope in comments: note whether a block is global, page-specific, or tied to one component.
  • Remove abandoned overrides: once a design is corrected in Elementor controls, delete the old CSS rule so it cannot conflict later.
  • Check accessibility: preserve visible focus, sufficient text contrast, readable line height, and motion that does not make content difficult to use.
  • Keep declarations efficient: avoid broad selectors such as * or unscoped element rules when a component class is available.

Recommended decision process

  1. Ask how many places should change.
  2. Choose element scope for one widget, page scope for one URL, or site scope for a reusable system.
  3. If you use Elementor Free, put the same class-based rule in Additional CSS.
  4. Assign a semantic class without a period.
  5. Target the wrapper for layout and the descendant for visible text, images, links, or controls.
  6. Test states and breakpoints, then inspect the cascade if the result differs from the rule.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

CSScustom CSSElementorWeb DesignWordPress

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.