


Why does my not shrink as expected? It seems to have a non-removable min-width: min-content problem.
issue
I have one
Expected results
Actual result
Workaround
Updated (September 25, 2017)
The Firefox bug described below has been fixed in Firefox 53, and the link to this answer has also been removed from Bootstrap removed from the document.
Also, my sincerest apologies to the Mozilla contributors who had to block removal of support for -moz-document in part due to this answer.
Fix
In WebKit and Firefox 53, you can override the default value of min-content simply by setting min-width: 0; on the fieldset. ¹
Firefox is a little weird when it comes to fieldsets, though. To make this work properly in earlier versions, you must change the fieldset's display property to one of the following values:
- table-cell (recommended)
- table-column
- table-column-group
- table-footer-group
- table-header-group
- table-row
- table-row-group
Among them, I recommend table-cell. Both table-row and table-row-group prevent you from changing the width, while table-column and table-column-group prevent you from changing the height.
This (somewhat legitimately) breaks rendering in IE. Since only Gecko needs to do this, you can legitimately hide this effect from other browsers by using one of Mozilla's proprietary CSS extensions, @-moz-document:
@-moz -document url-prefix() {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">fieldset { display: table-cell; }
}
(This is a jsFiddle Demo. )
Cause
This solves the problem, but if you're like me, your reaction is probably...
What?
It does have a reason, but it’s not easy to understand. The default rendering of the
fieldset element is ridiculous and essentially impossible to specify in CSS. Think about it: the fieldset's border disappears where it overlaps the legend element, but the background is still visible! No other combination of elements can reproduce this effect.
Most importantly, the implementation is rife with concessions to legacy behavior. One of them is that the minimum width of a fieldset is never less than the intrinsic width of its content. WebKit provides a way to override this behavior by specifying it in the default stylesheet, but Gecko² goes a step further and enforces this behavior in the rendering engine.
However, internal table elements constitute a special frame type in Gecko. Calculating the size constraints for elements with these display value settings is in a separate code path, completely bypassing the minimum width enforced on the fieldset.
Again - Firefox 53 has a bug fix for this issue, so you don't need this fix if you're only targeting newer versions.
Is it safe to use @-moz-document?
For this problem, it is safe. @-moz-document works as expected in all versions of Firefox (until 53, where this bug was fixed).
This is no accident. Partly because of this answer, the bug restricting @-moz-document to user/UA stylesheets was set to first rely on the underlying fieldset bug being fixed.
In addition, do not use @-moz-document in CSS to target Firefox , despite other resources doing so. ³
The above is the detailed content of Why does my not shrink as expected? It seems to have a non-removable min-width: min-content problem.. 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











I see Google Fonts rolled out a new design (Tweet). Compared to the last big redesign, this feels much more iterative. I can barely tell the difference

Have you ever needed a countdown timer on a project? For something like that, it might be natural to reach for a plugin, but it’s actually a lot more

Everything you ever wanted to know about data attributes in HTML, CSS, and JavaScript.

At the start of a new project, Sass compilation happens in the blink of an eye. This feels great, especially when it’s paired with Browsersync, which reloads

Tartan is a patterned cloth that’s typically associated with Scotland, particularly their fashionable kilts. On tartanify.com, we gathered over 5,000 tartan

The inline-template directive allows us to build rich Vue components as a progressive enhancement over existing WordPress markup.

PHP templating often gets a bad rap for facilitating subpar code — but that doesn't have to be the case. Let’s look at how PHP projects can enforce a basic

Let’s attempt to coin a term here: "Static Form Provider." You bring your HTML
