I have a whole website that I am required to convert from IE to FF in working order.

Problem #1:
Vertically aligning the html tables so the page's content is centered within the page.

Thanks for the help in advance, Regards X.

PS: im using
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

Recommended Answers

All 17 Replies

Not wanting to sound funny... but we could do with a little more detail.

Okay, so you want to vertically align it...
what size is it?
Is it a fixed height or will it vary?

Can you not supply a link to the IE version of it?
(By the way, do you mean "I have a whole website that I am required to change so it works in FF as wel las IE" ???)

Sorry half asleep last night when I wrote it.

(By the way, do you mean "I have a whole website that I am required to change so it works in FF as well as IE" ???) yes

It is everything in general all the pages are all left aligned in FF and in IE they are centered.
What i mean by this all the content in the page is either top left aligned or middle left aligned with ALL content no matter what it is when it is presented in FF but in IE it is middle middle (middle of the page vertically and horizontally - thats how I want all my pages in FF to be done).

I am using CSS and I would like a solution prefably just using a few simple css commands.
I have been searching the internet and they say to but 3 css tags within each other, I really do not plan on doing this as its alot of extra code for nothing.

Thanks, Regards X

You have little choice.
Vertical alignment isn't really something that can be easily done.

If the pages are 'tall' or 'long' (ie. they won't fit in the viewport and you have to scroll), then you could apply padding or margin to an outer container.

If the pages area fixed height (say 400px or someting), then it can be done... usually by trickery (suchas positioning it down by 50%, then pulling it up by 25%)... but this can get a little out of shape in some browsers (some don't like negative margins, others don't like applying padding/margins to the bottom if certain styles are applied etc.).

Can you supply a URL?
(If you don't want to list your real one, pop over to tinyurl.com and get a 'fake' one for the time being ;))

Its not that im worried its that i dont have one, its on localhost apache :P (nice link though)

I have searched the internet and this seems to be a problem always cropping up.

Because the website was working fine but now that I also need to make it FF compliant its being a real pain. I googled and the usually scenario is "my table is centered in IE but in FF it is left aligned".

Well can you tell me your best suggestion on what to do (to get my table centered vertically/horzontially)?

Thanks Regards, X

If you have a common style sheet that's used throughout the site, it's not hard to center your pages. Absolute position the body. Add the following attributes to the body:

body{
position:absolute;
left:25%;
top:5px;
}

You'll have to play around with the left amount until things look like you want them to. I used a percentage instead of a fixed amount because of the wide variety of monitor resolutions used these days. The top is optional but, you may find that you'd like a little more or less space from the top than what the browser gives by default.
Hope this helps.

Tried it not a solution, like you said it changes with each web page =(

There should be some global decleration for getting content smack bang in the middle

Any ideas, Thanks

Well, is the table a fixed width?
Or if percentile, how much of a gap is left?

Dare I say it... you could paste it all in here
(last resort).
I'll grab a copy and work it over.

Its nothing special really.
You can make an example and post it here?
My code is simple at the moment:

<table>
 <tr>
  <td>
   1 Heading
  </td>
 </tr>
 <tr>
  <td>
   2 PHP Code
  </td>
 </tr>
 <tr>
  <td>
   3 PHP Code
  </td>
 </tr>
</table>

There is my code now very simple really.

But I cannot get it to be "DEAD CENTER" in both FF and IE. At the moment best I have come up with is "DEAD CENTER" in FF using the container method (not very nice but usable :( ).

I would like a solution which works on different page sizes as I change frequently from frames(30% of my page height) to no frames.

Hope that helps, Regards X

Okay... not wanting to come across as critivcal... but does this have to be tables?

You have 3 content zones... and not more than 1 item per row?
That would be 3 divs... thats it!
Maybe 1 outer wrapper if you like... 4 divs... thats 8 lines (open/close) - compared to the Tables 14?


Still, ignoring that... what styling have you tried to apply to the table?
Have you tried...

<table style="width: 600px; margin: 0 auto;">

???
Or applied an outer div and done it to that (along with text-align: center;) ???

Give those a try.

Several facts:

- The viewport height is not normally something the page rendering engine takes into account. It is expected to place things against the top, and then add them on downward until it runs out of material. The emphasis is in fitting things to the page horizontally. If it won't fit, the page expands downward.

- Vertical centering is not generally provided, because of the above, and because different computers have different screen resolutions.

- It is almost impossible to make something exactly fit a page in all browsers, screen resolutions, font size settings, opened window sizes, and browser defaults.

- You can define styles for the td and th tags setting the text-align and vertical-align styles to what you want. This overrides the browser defaults.

- To keep stuff from rendering different between IE and FF, do not put size styles (height and width) and nonzero surrounding styles (margin, border, and padding) in the same tags or styles. IE and FF render them in the opposite nesting order. Use two nested tag pairs to specify the order they will be applied.

I suggest that you center things horizontally, and let the vertical parts end up where they do. Busting your buttons over trying to center stuff on the page vertically in all browsers and window sizes is a waste of time.

is

<table align="center">

Not standard anymore? Because thats always worked in both browsers for me. Assuming all the content is inside one main table.

Use styles instead of center or align=center.

Its a pain I have been searching on the internet, like midimagic said "there is no solution".

So just do your best I guess :(

Thanks anyways, people.

is

<table align="center">

Not standard anymore? Because thats always worked in both browsers for me. Assuming all the content is inside one main table.

This code would indeed center the contents horizontally, but I use

<table width=100% height=100%> [line was previously: <table align="center" valign="center">]
  <tr>
    <td align="center" valign="center">
    ...
    </td>
  </tr>
</table>

to center both horizontally and vertically. When the window changes size, the content adjusts to remain centered. It works in IE and FF :icon_smile:, but not sure if this is the way you would go about properly aligning multiple-celled tables though...

Ya thats sorta cheating as I was hoping to find a css solution but pretty much thats what I have had to end up resorting to, but thanks :)

You've tried:

table{
 position:absolute;
 left:25%;
    }

right?

Horizontal centering is easy, if you don't have size styles (height, width) and nonzero surrounding styles (margin, border, padding) applied to the same tag. Nest two tags if you need both.

The Internet is not designed for vertical centering. Web pages are designed to expand downward when they need more room. Add in different screen resolutions and window sizes (The browser might be restored down - and don't forget Web TV's 320x192 pixel screen), and the impossibility of vertical centering is quite evident.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.