Closed Bug 18445 Opened 25 years ago Closed 24 years ago

Text input confused by floating element [FLOAT]

Categories

(Core :: Layout: Form Controls, defect, P1)

defect

Tracking

()

VERIFIED FIXED

People

(Reporter: ian, Assigned: buster)

References

()

Details

(Keywords: css1, helpwanted, Whiteboard: [nsbeta3+][PDTP3] [fix in hand])

Attachments

(2 files)

An <input> element that is given 'display:block' is not acting as it should according to the CSS specs. See http://www.bath.ac.uk/%7Epy8ieh/internet/projects/mozilla/widgets/11.html for some simple test cases. For example, if an input that is styled as "display:block" is preceeded by a float, the input element will not go under the float as it should.
Assignee: karnaze → kmcclusk
Reassigning to Kevin.
Assignee: kmcclusk → rods
This may be a duplicate of the problem of placing input elements which are area frames.
Assignee: rods → buster
I think this is because of the embedded webshell has its own window. Should work fine once we move to a lightweight webshell. reassigning to steve.
Depends on: 16272
Target Milestone: M20
probably a dup of 16272. Marked M20 which means we'll look at it after beta 1 entry. 16272 is marked M13, so this might get addressed much sooner if it really is just a duplicate.
Severity: minor → normal
Note that the bugs visible here are not so much that the input goes over the float, as it does due to bug 16272, but that they are incorrectly positioned. For example, in the second test on the page, the input control is centered in the space left due to the float rather than the space of the containing block. It should be centered just like when there is no float at all (as in the first test). I'm going to increase the severity which I had set to "minor" up to "normal" since this is really a standards-compliance issue.
QA Contact update.
This bug is basically the same as bug 23412, but I am not marking this as a DUP since this bug uses form fields and bug 23412 uses images.
Keywords: css1
Migrating from {css1} to css1 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: {css1} Text input confused by floating element → Text input confused by floating element
redistributing bugs across future milestones, sorry for the spam
Target Milestone: M20 → M22
This bug is marked "future" because it is not critical for RTM (Release To Manufacturing). If anyone believes it is critical, please explain why in this bug.
Target Milestone: M22 → Future
One reason not to move this to Future is that it is a serious CSS1 standards compliance error. Cc'ing Eric Krock for standards compliance judgement call. Cc'ing David in case he hasn't come across this floater bug before.
Ian, could you explain for us the practical impact on content designers if this bug is not fixed? Is there a workaround? What effect becomes impossible? What features of the standards (if any) are left unusable for the future because of this? Starting now, we need to do this for all standards compliance bugs in order to assess relative severity vs. other standards compliance bugs as well as other bugs unrelated to compliance. Thanks for your help!
The main problem with this is that if we don't fix it, then when we _do_ fix it, any pages relying on our current broken behaviour will end up having text fields and images overlapping. For example, go to the test page: http://www.bath.ac.uk/%7Epy8ieh/internet/projects/mozilla/widgets/11.html ...and look at the bottom test. At the moment, the input sits next to the float. This is actually incorrect -- and once we correct it, anyone who is depending on this behaviour will end up having the input and the green box overlapping. Hence, I would say that this destroys this feature of CSS1. (Floating block level elements that happen to be widgets.)
Based on my last comment, removing Future milestone.
Target Milestone: Future → ---
Has this changed at all since Ender-lite landed? I wouldn't think so, but there's a chance...
No, we are still buggy in Win32 2000061520.
Blocks: 23412
Depends on: 23412
No longer blocks: 23412
No longer depends on: 23412
As per meeting with ChrisD today, taking QA.
QA Contact: ckritzer → py8ieh=bugzilla
correctness. Whenever the engineering resources exist, we do want to avoid creating future issues where if we fix a compatibility bug in a future release, we break content written to the first release. Ian -- Would there be any way that a developer could code in a correct way (maybe with some add'l settings) so that they'd get the same result both on an initial release *with* this bug and a later release without it?
Keywords: correctness
Ummm...... I can't think of any, no. The bigger problem is not that authors cannot get the correct result, though, but that authors are likely to get the current, buggy rendering, think it's good, and design their sites with it this way... then when we fix it, boom go their text inputs, sliding under the images. This isn't exactly likely to become a top100-type problem, but with our improved standards support it is likely to happen enough for us to end up having to deal with a b.c. issue in the next release.
Taking a stab at prioritizing buster's nsbeta3 bugs...
Whiteboard: [nsbeta3+]
Priority: P3 → P1
I'm on this.
Status: NEW → ASSIGNED
If buster can get it done..awesome, but PDT is downgrading to a P3. Would not hold if time got short. Putting on [PDTP3]
Priority: P1 → P3
Whiteboard: [nsbeta3+] → [nsbeta3+][PDTP3]
Summary: Text input confused by floating element → Text input confused by floating element [FLOAT]
The problem is in nsBlockReflowState::ComputeBlockAvailSpace() http://lxr.mozilla.org/seamonkey/source/layout/html/base/src/nsBlockFrame.cpp#76 8 This method computes the amount of space available to a block that is about to be reflowed. In the case of a block frame, aSplitType will be NS_FRAME_SPLITTABLE_NON_RECTANGULAR, and we take floaters into account. In the case of a text control mapped to display:block, aSplitType will be NS_FRAME_NOT_SPLITTABLE, and we blindly return the previously computed mAvailSpaceRect.width. I don't have a clue why we do different computations based on whether the frame is splittable or not. Researching....
I've got a potential fix for this. Testing now... I could really use a very detailed, focused test case for this sort of thing. I'm running through all the test suites I know, and writing some of my own. But if I could get some help with more detailed test cases, that would be great.
Severity: normal → major
OS: Windows 98 → All
Priority: P3 → P1
Hardware: PC → All
Whiteboard: [nsbeta3+][PDTP3] → [nsbeta3+][PDTP3] [fix in hand]
Target Milestone: --- → M18
I've got a potential fix for this. Testing now... I could really use a very detailed, focused test case for this sort of thing. I'm running through all the test suites I know, and writing some of my own. But if I could get some help with more detailed test cases, that would be great.
Test cases: http://www.bath.ac.uk/%7Epy8ieh/internet/projects/mozilla/widgets/11.html http://bugzilla.mozilla.org/showattachment.cgi?attach_id=4065 Buster: If you want more tests, mail me or call me (MV, x6593) and I'll build whatever you need.
*** Bug 23412 has been marked as a duplicate of this bug. ***
fixed, checked in 9/14/00
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
VERIFIED FIXED using Windows 2000 and Linux Commercial builds 200009180[56].
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: