Home Web Front-end CSS Tutorial Why does my not shrink as expected? It seems to have a non-removable min-width: min-content problem.

Why does my not shrink as expected? It seems to have a non-removable min-width: min-content problem.

Nov 09, 2024 pm 10:44 PM

Why does my  not shrink as expected? It seems to have a non-removable min-width: min-content problem.

does not shrink as expected; there appears to be an unremovable min-width: min-content

issue

I have one to shrink to never be wider than its parent, even if it has to truncate its display text. max-width: 100% should do the trick.

Expected results

What I want after resizing Page where <code>select</code> Its content has been cut

Actual result

My current page after resizing, with a scrollbar

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;
}
Copy after login

}

(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!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1663
14
PHP Tutorial
1266
29
C# Tutorial
1239
24
Google Fonts   Variable Fonts Google Fonts Variable Fonts Apr 09, 2025 am 10:42 AM

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

How to Create an Animated Countdown Timer With HTML, CSS and JavaScript How to Create an Animated Countdown Timer With HTML, CSS and JavaScript Apr 11, 2025 am 11:29 AM

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

HTML Data Attributes Guide HTML Data Attributes Guide Apr 11, 2025 am 11:50 AM

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

A Proof of Concept for Making Sass Faster A Proof of Concept for Making Sass Faster Apr 16, 2025 am 10:38 AM

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

How We Created a Static Site That Generates Tartan Patterns in SVG How We Created a Static Site That Generates Tartan Patterns in SVG Apr 09, 2025 am 11:29 AM

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

How to Build Vue Components in a WordPress Theme How to Build Vue Components in a WordPress Theme Apr 11, 2025 am 11:03 AM

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

PHP is A-OK for Templating PHP is A-OK for Templating Apr 11, 2025 am 11:04 AM

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

A Comparison of Static Form Providers A Comparison of Static Form Providers Apr 16, 2025 am 11:20 AM

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

See all articles