Closed Bug 279425 Opened 20 years ago Closed 18 years ago

Always show vertical scrollbar to prevent movement of table with align="center"

Categories

(Firefox :: General, defect)

defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 72540

People

(Reporter: richardvallee, Assigned: bugzilla)

Details

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:1.7.5) Gecko/20041108 Firefox/1.0 StumbleUpon/1.999
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:1.7.5) Gecko/20041108 Firefox/1.0 StumbleUpon/1.999

A table with align="center" is incorrectly moved when a vertical scrollbar is
displayed. This results in inconsistent display of the table when switching
between pages with the same layout where one has a vertical scrollbar and the
other does not. On the page where a scrollbar is displayed, the table is moved
to the left, relative to the page with no scrollbar, the same width as the
scrollbar itself.

This might be a designed behavior but should be revisited as it creates
inconsistent displays for the same layout depending on whether there is a
vertical scrollbar or not.

Reproducible: Always

Steps to Reproduce:
1. Create 2 html documents with the same layout, one long enough to have a
vertical scrollbar, the other without a vertical scrollbar. The layouts must
display a table with align="center".
2. Switch between the documents and notice the display of the table moving
between the 2 documents.
3. Watch porn (suggested, though superfluous).

Actual Results:  
The table is displayed at different locations depending on whether or not the
document displays a vertical scrollbar.

Expected Results:  
The table should stay at the same location, vertical scrollbar or not.
I agree that this is a poor design decision that needs to be reversed. I have
mocked up a four-page demo that shows exactly what this person is talking about.
Please take a minute to review my work and please reconsider the decision to
make the vertical scrollbar an optional element on the AWESOME Firefox Browser.

http://www.danclem.com/firefox/279425/page1.shtm
(In reply to comment #1)
> I agree that this is a poor design decision that needs to be reversed. I have
> mocked up a four-page demo that shows exactly what this person is talking about.
> Please take a minute to review my work and please reconsider the decision to
> make the vertical scrollbar an optional element on the AWESOME Firefox Browser.
> 
> http://www.danclem.com/firefox/279425/page1.shtm

Well if displaying the scroll bar shifts display, it would seem to me that
position is based on the right-side. What if it were reversed, using the side
that is sure to remain consistant? No idea how much it would affect other
components but it could be an easy fix...
This issue affects every Web page that uses any type of alignment technique to
put the Web page in the center of the browser window. The original author
mentions table align="center", the classic HTML techniqe. I'm using this
technique from Christopher Schmitt's CSS Cookbook by O'Reilly.

body {
	margin-left: 5%;
	margin-right: 5%;
}

Regardless of the technique used, I believe that a centered Web page must be
computed by the rendering engine by first calculating the available horizontal
space inside the browser window. If this total space changes because of a
vertical scrollbar appearing, then the entire page shifts by the number of
pixels equal to half the width of the vertical scrollbar element.

Make sense?
> Well if displaying the scroll bar shifts display, it would seem to me that
> position is based on the right-side. What if it were reversed, using the side
> that is sure to remain consistant?

You are correct - the only way to eliminate the "Firefox Page Shift" defect is
align our websites based on the left side of the browser window. Center or
right-aligned pages will always shift 5 or 10 pixels when the vertical scrollbar
appears.

If all of our users were running the same resolution (and maximized windows),
our pages would appear centered as we intended. But if someone is running higher
or lower resolution, then it looks horrible.

I suppose we could use JavaScript to capture the usable width of the browser
window, then position the page manually, but that's a bit much.
(In reply to comment #4)
> > Well if displaying the scroll bar shifts display, it would seem to me that
> > position is based on the right-side. What if it were reversed, using the side
> > that is sure to remain consistant?
> 
> You are correct - the only way to eliminate the "Firefox Page Shift" defect is
> align our websites based on the left side of the browser window. Center or
> right-aligned pages will always shift 5 or 10 pixels when the vertical scrollbar
> appears.
> 
> If all of our users were running the same resolution (and maximized windows),
> our pages would appear centered as we intended. But if someone is running higher
> or lower resolution, then it looks horrible.
> 
> I suppose we could use JavaScript to capture the usable width of the browser
> window, then position the page manually, but that's a bit much.


The simple fix is in the browswer.  Hacking web code to get consistent display
results makes no sense.  As was said, "if someone is running higher or lower
resolution, then it looks horrible."  All that results from this are websites
that jiggle and don't display properly.  Creating a hack will not take away the
jiggle, it will only allow your site to display properly under specific
resolutions and not be very maintainable.

This may be a sin, but look at how IE handled this problem.  The scroll bar is
always there, just discretely shaded out so you don't even notice it if you
don't need it.  The same site will render correctly centered in IE and jiggle in
firefox.
(In reply to comment #5)
> This may be a sin, but look at how IE handled this problem.  The scroll bar 
is
> always there, just discretely shaded out so you don't even notice it if you
> don't need it.  The same site will render correctly centered in IE and 
jiggle in
> firefox.

Exactly. Microsoft recognized the problem and designed their browser 
accordingly. What I'd like to know is:

- Does the Firefox team not understand the problem?
- Or does the Firefox team feel that their optional vertical scrollbar feature 
is more important than preventing this page shift defect?

I'm disappointed that this bug has been out there for about two months without 
any official commentary as to whether this will be reviewed.
It hit me yesterday too... The difference is that in IE vertical scrollbar is
always visible, althought not always enabled, but in Firefox it appears only if
page length exceeds available window. It results in content shifting left-right
when it is centered.

The fun is that at first I've blamed the company that designs new website for
the company I work for. I said they have to repair some subpages because of a
nasty display behavior, and they replied "hey, what's the problem, we can't see
any shifting..." :))

Please do something about it as it looks that this fix is trivial, both in
design and programmaticaly...

Regards,
Andrzej Kukula
This bug is invalid. I've seen other bugs on this subject that got resolved ->
INVALID.
(In reply to comment #8)
> This bug is invalid. I've seen other bugs on this subject that got resolved ->
> INVALID.

So causing a page to wiggle is a feature of the browser then?  Maybe bug isn't
the right term for it, becuase it very well may be the case that firefox is
fully compliant with specs.  How about a feature request?  I request that my
pages not shift off center in firefox when content is sufficiently long enough
to use a vertical scrollbar resulting in an undesired wiggle effect when moving
between pages of varying lenghts.
Something like body {overflow-y:scroll;} allways gives a vertical scrollbar
(only works for trunk builds), but I don't think this is something that is
considered standard for every page.
I found it doesn't matter if there is a table or not for this to happen. I use 
css and the same thing occurs on the shorter pages. 
(In reply to comment #10)
> Something like body {overflow-y:scroll;} allways gives a vertical scrollbar
> (only works for trunk builds), but I don't think this is something that is
> considered standard for every page.

This does not solve the problem. It has some odd behavior in IE and does 
nothing to help the problem in Firefox. Anyone still interested in this issue, 
please visit my demo pages to see the evidence.

http://www.danclem.com/firefox/279425/page1.shtm
(In reply to comment #9)
> How about a feature request?  I request that my
> pages not shift off center in firefox when content is 
> sufficiently long enough to use a vertical scrollbar 
> resulting in an undesired wiggle effect when moving between 
> pages of varying lenghts.

I second that request. I'm glad I'm not the only one still paying attention to 
this one. I've given up on Firefox due to this very bug.
> I second that request. I'm glad I'm not the only one still paying attention to 
> this one. I've given up on Firefox due to this very bug.

Unfortunately, approximately 4%-20% of web surfers (depending on who you talk
to) use Firefox, so web designers still have to worry about how their page will
render for their target audience.  A shifting page is not only anoying but
unproffesional, and if a user isn't aware of the problem, the blame comes down
on the company/developer of the page.  The last thing a company wants is for
their audience to think they're a bunch of shlubs becuase their own logo bounces
around: "Check this out, these guys can't even get their website to work right..."

On a side note, rendering the "offending" pages in opera has the same results. 
That browser seems to impliment the side scroll bar the same way Firefox does. 
Interesting...
(In reply to comment #14)
> Unfortunately, approximately 4%-20% of web surfers (depending on who you talk
> to) use Firefox, so web designers still have to worry about how their page 
will
> render for their target audience.  A shifting page is not only anoying but
> unproffesional, and if a user isn't aware of the problem, the blame comes 
down
> on the company/developer of the page.

I'm just getting a little frustrated I guess. You and I have gone to great 
lengths all year to bring attention to this problem and no one else seems to 
care, nor do they acknowledge the problem.

*** This design decision on Firefox's part effectively prohibits the use of 
centered Web pages. Doesn't anyone understand how important this is? ***
I've got similar problems. It is becoming worst using a centered <div> with
style="border: 1px solid black" on such a page. 

If the vertical scrollbar is invisible everything is alright. After it appears
the right border of the div disappears and won't come back since the scrollbar
disappears.

I've changed from table layout to css based and that's why this problem isn't
very funny to me!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8) Gecko/20051111 Firefox/1.5 ID:2005111116
Still valid in Firefox 1.5. Ironically it can be seen at http://www.mozilla.com, when changing from the Support page to any other page.
Modifying summary to include proposed solution (that implemented by IE)
OS: Windows XP → All
Hardware: PC → All
Summary: Vertical scrollbar causes movement of table with align="center" → Always show vertical scrollbar to prevent movement of table with align="center"
I've used this to fix it for the past year. This would go in the stylesheet and makes the vertical scrollbar appear all the time:

html { 
  min-height: 100%; 
  margin-bottom: 1px; 
}

Try it - it works!
(In reply to comment #19)
> I've used this to fix it for the past year. This would go in the stylesheet and
> makes the vertical scrollbar appear all the time:
> 
> html { 
>   min-height: 100%; 
>   margin-bottom: 1px; 
> }
> 
> Try it - it works!
> 

Sorry I cannot modify CSS of web pages I visit, I only can observe this weird behaviour, or use browser that doesn't exhibit it.
Sure you can - you can put it in your user css - it works as well. 
Go to your Application Data under your user profile, then Go to Mozilla...Firefox...Profiles...someweirdnumber.default/chrome/userContent-example.css
Rename this file to userContent.css and add the code to that page. You will need to close and reopen Firefox for it to take effect. 
While I don't agree with the resolution of the bug that this is a dupe of, it is a dupe and a decision has been made. Sorry.

*** This bug has been marked as a duplicate of 72540 ***
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.