Closed Bug 12750 Opened 25 years ago Closed 22 years ago

[BLOCK] enlarging small widths not acting like min-width

Categories

(Core :: Layout, defect, P3)

defect

Tracking

()

RESOLVED FIXED
Future

People

(Reporter: dbaron, Assigned: attinasi)

References

()

Details

(Keywords: css2, testcase)

Attachments

(1 file)

DESCRIPTION: CSS2 says (in 10.4) that: The user agent may define a non-negative minimum value for the 'min-width' property, which may vary from element to element and even depend on other properties. If 'min-width' goes below this limit, either because it was set explicitly, or because it was 'auto' and the rules below would make it too small, the user agent may use the minimum value as the computed value. I think it violates the spirit of this passage (although not the letter) that the value of min-width depends on width. What you are doing right now is increasing the width only if it is zero. I think what you should be doing (by the spirit of the spec) is increasing the width only if it is too small. IMO, too small should be defined in terms of inline content but not block-level content. That is, I think the first two cases should have the box wrap around the word "This" (the largest word) and the latter two should really have zero width. STEPS TO REPRODUCE: Load attached test case. ACTUAL RESULTS: Side borders of second and fourth test cases are touching each other (width is zero), but not so for the first and third cases. EXPECTED RESULTS: First and second cases should look the same. Third and fourth cases should look the same. (Possibly as I described above.) (IMO, the correct layouts are those currently in the first and fourth cases. In the first case there is one word on a line and the green block wraps tightly around the words. In the fourth case, there is a zero-width green block containing a 400px wide red block. Currently, the second case (I think incorrectly) is being shown as a zero-width green block with the four words alone on each line. The third case is currently (I think incorrectly) having the green DIV contain the red P.) DOES NOT WORK CORRECTLY ON: * Linux, viewer, build from source as of 1999-08-28, 12:15 PDT. (marking All/All anyway) ADDITIONAL INFORMATION: The code that's causing this is the following lines in nsBlockFrame::ComputeFinalSize : if ((0 == aReflowState.mComputedWidth) && (aMetrics.width < minWidth)) { aMetrics.width = minWidth; } Ian -- any thoughts on the correct way to deal with this?
David: Your interpretation of the spec seems to me to be spot on. Presumably one could, in a stylesheet, write: * { min-width: 0; } ...which would override the behaviour you describe above. (For the case where the author really doesn't want the "width:0" property to be ignored with inline only content, that is.)
Assignee: troy → kipp
Status: NEW → ASSIGNED
Target Milestone: M13
Target Milestone: M13 → M15
Summary: {css2}enlarging small widths not acting like min-width → {css2} enlarging small widths not acting like min-width
Another test case: http://www.bath.ac.uk/%7Epy8ieh/internet/projects/mozilla/floatwidth.html Note that you are not applying an explicit 'min-width' (last section). (You may need to make sure that the 'initial' value of 'min-width' has an explicit keyword, like 'auto', otherwise you may not be able to tell the difference between UA-dependant-value and explicit-value. David: This is the same as the border-*-color problem; if this is also important for the DOM, you might want to mention it on www-style...)
QA Contact: petersen → chrisd
*** Bug 17318 has been marked as a duplicate of this bug. ***
Updating to default Layout Assignee...kipp no longer with us :-(
Why are you re-reassing layout bugs? Do NOT touch layout bugs. The bugs are assigned to Kipp so they can stay neatly organized until we have a new owner for the block/inline code.
Summary: {css2} enlarging small widths not acting like min-width → {css2} [TEXT] enlarging small widths not acting like min-width
Summary: {css2} [TEXT] enlarging small widths not acting like min-width → {css2} [BLOCK] enlarging small widths not acting like min-width
Keywords: css2
Migrating from {css2} to css2 keyword. The {css1}, {css2}, {css3} and {css-moz} radars should now be considered deprecated in favour of keywords. I am *really* sorry about the spam...
Summary: {css2} [BLOCK] enlarging small widths not acting like min-width → [BLOCK] enlarging small widths not acting like min-width
Assignee: kipp → buster
mine! mine mine mine! all mine! whoo-hoo!
sorry for the spam, marking this one future. outta time
Status: NEW → ASSIGNED
Target Milestone: M17 → Future
Upon managerial request, adding the "testcase" keyword to 84 open layout bugs that do not have the "testcase" keyword and yet have an attachement with the word "test" in the description field. Apologies for any mistakes.
Keywords: testcase
Netscape's standard compliance QA team reorganised itself once again, so taking remaining non-tables style bugs. Sorry about the spam. I tried to get this done directly at the database level, but apparently that is "not easy because of the shadow db", "plus it screws up the audit trail", so no can do...
QA Contact: chrisd → ian
Build reassigning Buster's bugs to Marc.
Assignee: buster → attinasi
Status: ASSIGNED → NEW
The patch in bug 159059 changes the behavior described, and might be considered as a fix for this bug. (I think it probably should be, since the text-only approach would require different min-size computation from the standard min-size, unless we also included the widths of blocks that had specified width.) We also shouldn't even need to compute the min-size in many cases.
So do we want to try to do this "right"? Or just call it fixed?
Fixed. We're not likely to implement this "optional" min-width business.
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: