Opacity is used in CSS to control the transparency of elements, with values ??0 to 1, 1 being completely opaque and 0 being completely transparent. It affects the entire element and all its content, including text and child elements. For example, setting opacity: 0.6 will make the overall element 60% transparent. If you only need to adjust the background transparency without affecting the text, you should use rgba or hsla colors. In addition, child elements cannot exceed the transparency limit of the parent element by setting a higher opacity value. Opacity is often used in UI design for fading, masking, dark mode and other effects, such as superimposing translucent layers to improve text readability. Choosing opacity or rgba/hsla depends on whether the visibility of the internal elements is required to be preserved.
Opacity in CSS controls how transparent or see-through an element appears. A value of 1
means the element is fully opaque, while a value of 0
makes it completely transparent — basically invisible, though still taking up space on the page. Values ??in between let you fine-tune the visibility, like 0.5
for 50% transparency.
Opacity affects the whole element
One important thing to understand: when you apply opacity to an element, it doesn't just affect the background or color — it impacts everything inside it , including text, borders, and child elements.
For example:
.box { opacity: 0.6; }
This will make the box background, any images inside it, and even the text all 60% transparent. If you only want part of an element to be transparent (like just the background), opacity might not be the best choice — you could use rgba or hsla colors instead.
It interacts with parent and child elements
If a parent element has opacity set, child elements can't be more opaque than their parent . So if you set a parent's opacity to 0.5
, even if a child has opacity: 1
, it won't override that — it'll still look at most 50% transparent.
This behavior can trip people up when trying to layer semi-transparent backgrounds with solid text or buttons.
Use cases where opacity shines
Opacity is useful in many UI scenarios, especially for subtle effects:
- Fading out inactive elements (like dimming a card when hovered)
- Creating overlays or dark modes with a slight tint
- Showing loading states by reducing opacity of content
A common trick is using a semi-transparent overlay on top of images to improve text readability:
<div class="image-wrapper"> <img src="/static/imghw/default1.png" data-src="photo.jpg" class="lazy" alt="Background image"> <div class="overlay">Some text</div> </div>
.overlay { opacity: 0.7; background-color: #000; color: white; }
Opacity vs rgba/hsla
If you want to control only the background's transparency without affecting text or other content, consider using rgba()
or hsla()
for background colors instead of opacity:
.background-only-transparency { background-color: rgba(0, 0, 0, 0.5); /* Black with 50% transparency */ }
This way, only the background is transparent — the text stays solid.
So when choosing between opacity
and rgba
, think about what exactly needs to be transparent and whether nested elements should remain unaffected.
Basically that's it.
The above is the detailed content of How does the opacity property work?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

CSS blocks page rendering because browsers view inline and external CSS as key resources by default, especially with imported stylesheets, header large amounts of inline CSS, and unoptimized media query styles. 1. Extract critical CSS and embed it into HTML; 2. Delay loading non-critical CSS through JavaScript; 3. Use media attributes to optimize loading such as print styles; 4. Compress and merge CSS to reduce requests. It is recommended to use tools to extract key CSS, combine rel="preload" asynchronous loading, and use media delayed loading reasonably to avoid excessive splitting and complex script control.

ThebestapproachforCSSdependsontheproject'sspecificneeds.Forlargerprojects,externalCSSisbetterduetomaintainabilityandreusability;forsmallerprojectsorsingle-pageapplications,internalCSSmightbemoresuitable.It'scrucialtobalanceprojectsize,performanceneed

Autoprefixer is a tool that automatically adds vendor prefixes to CSS attributes based on the target browser scope. 1. It solves the problem of manually maintaining prefixes with errors; 2. Work through the PostCSS plug-in form, parse CSS, analyze attributes that need to be prefixed, and generate code according to configuration; 3. The usage steps include installing plug-ins, setting browserslist, and enabling them in the build process; 4. Notes include not manually adding prefixes, keeping configuration updates, prefixes not all attributes, and it is recommended to use them with the preprocessor.

Choosing the correct display value in CSS is crucial because it controls the behavior of elements in the layout. 1.inline: Make elements flow like text, without occupying a single line, and cannot directly set width and height, suitable for elements in text, such as; 2.block: Make elements exclusively occupy one line and occupy all width, can set width and height and inner and outer margins, suitable for structured elements, such as; 3.inline-block: has both block characteristics and inline layout, can set size but still display in the same line, suitable for horizontal layouts that require consistent spacing; 4.flex: Modern layout mode, suitable for containers, easy to achieve alignment and distribution through justify-content, align-items and other attributes, yes

AnimatingSVGwithCSSispossibleusingkeyframesforbasicanimationsandtransitionsforinteractiveeffects.1.Use@keyframestodefineanimationstagesforpropertieslikescale,opacity,andcolor.2.ApplytheanimationtoSVGelementssuchas,,orviaCSSclasses.3.Forhoverorstate-b

Theconic-gradient()functioninCSScreatescirculargradientsthatrotatecolorstopsaroundacentralpoint.1.Itisidealforpiecharts,progressindicators,colorwheels,anddecorativebackgrounds.2.Itworksbydefiningcolorstopsatspecificangles,optionallystartingfromadefin

The scope of CSS custom properties depends on the context of their declaration, global variables are usually defined in :root, while local variables are defined within a specific selector for componentization and isolation of styles. For example, variables defined in the .card class are only available for elements that match the class and their children. Best practices include: 1. Use: root to define global variables such as topic color; 2. Define local variables inside the component to implement encapsulation; 3. Avoid repeatedly declaring the same variable; 4. Pay attention to the coverage problems that may be caused by selector specificity. Additionally, CSS variables are case sensitive and should be defined before use to avoid errors. If the variable is undefined or the reference fails, the fallback value or default value initial will be used. Debug can be done through the browser developer

Mobile-firstCSSdesignrequiressettingtheviewportmetatag,usingrelativeunits,stylingfromsmallscreensup,optimizingtypographyandtouchtargets.First,addtocontrolscaling.Second,use%,em,orreminsteadofpixelsforflexiblelayouts.Third,writebasestylesformobile,the
