Why Do Transparent Borders Distort Gradient Backgrounds in CSS?
Transparent Border Distortion with Gradient Backgrounds
In CSS, applying a transparent border to an element with a linear-gradient background can cause an unusual effect where the left and right edges of the element exhibit distorted or flattened coloration.
This occurs because the gradient's start and end points reside at the edges of the padding-box, while the border is rendered outside it. Consequently, the border appears visually distorted as the background is repeated on either side of the padding-box to fill the border-box.
Cause of the Distortion
The reason for this distortion lies in the way the browser interprets the CSS box model. The padding-box determines the area within which the element's content is placed, while the border-box encompasses the padding-box and the border. In the given scenario, the gradient background is contained within the padding-box, but the transparent border extends beyond its boundaries.
Solution
To resolve this issue, one can use a CSS property known as "box-shadow: inset." Unlike a border, an inset box shadow is rendered within the padding-box, providing a visually similar effect to a border without causing the distortion.
By replacing the border with the following box-shadow property, the desired appearance can be achieved:
box-shadow: inset 0 0 0 10px rgba(0,0,0,0.2);
Furthermore, since a box shadow does not occupy space like a border, it is necessary to increase the padding accordingly.
Illustration
The following diagram illustrates the difference between the padding-box and border-box:
[Image of padding-box and border-box]
Demonstration
An interactive demonstration of the solution can be found at: http://jsfiddle.net/ilpo/fzndodgx/5/
The above is the detailed content of Why Do Transparent Borders Distort Gradient Backgrounds in CSS?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

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

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

Undress AI Tool
Undress images for free

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

It's out! Congrats to the Vue team for getting it done, I know it was a massive effort and a long time coming. All new docs, as well.

With the recent climb of Bitcoin’s price over 20k $USD, and to it recently breaking 30k, I thought it’s worth taking a deep dive back into creating Ethereum

I had someone write in with this very legit question. Lea just blogged about how you can get valid CSS properties themselves from the browser. That's like this.

The other day, I spotted this particularly lovely bit from Corey Ginnivan’s website where a collection of cards stack on top of one another as you scroll.

I'd say "website" fits better than "mobile app" but I like this framing from Max Lynch:

If we need to show documentation to the user directly in the WordPress editor, what is the best way to do it?

There are a number of these desktop apps where the goal is showing your site at different dimensions all at the same time. So you can, for example, be writing

Questions about purple slash areas in Flex layouts When using Flex layouts, you may encounter some confusing phenomena, such as in the developer tools (d...
