- From: Cameron Booth <cameron@cdbdesign.net>
- Date: Wed, 18 Apr 2001 21:35:37 -0700 (PST)
- To: www-html@w3.org
Hello everyone, Hopefully this email is on topic for this list. I've recently been spending time learning how to build pages in a standards compliant manner, as opposed to the traditional table based layouts and I've run into a problem. Looking into it further, it's highlighted a number of things which I would like to outline here (sorry it's so long). I've been attempting to create a fixed width page, and then centering that content in the browser window. I know that it is much better to build a more "fluid", "stretchable" page, using relative widths, but that isn't always possible. The traditional method would have relied more upon the <CENTER>, or <TABLE ALIGN="center> elements, but both these are now deprecated in favour of style sheets. So, the best solution I've come up with is to surround all my page content in two DIVs: <DIV ALIGN="center"><DIV ID="content">PAGE CONTENT</DIV></DIV> element, and then use CSS to set the width (ie. #content {width: 600px;}). This has not worked entirely though, I've found the following problems, each different, but interesting: 1. Re: Netscape 6/Mac: this method works, but when you resize the browser window to less than 600px, the content is "centered" such that part of it now lies to the left of the browser window. Since you are unable to scroll left, the content is completely inaccessible. Though this might be perfectly "centered", it definitely goes against the idea of content accessibility, even for those of us who don't have a disability! I don't know if this is a browser bug, or a "bug" in the HTML 4.01/CSS-1 specifications. 2. Re: IE 5.0/Mac: the method doesn't (really) work. The content remains aligned to the left of the page. I can make it work by removing the Strict HTML 4.01 DOCTYPE declaration (even the Transitional doesn't work), but this doesn't make much sense to me. Luckily though, when I do remove the declaration, the page does render correctly, and the content doesn't become unaccessible if you resize the browser window smaller than the content. It simply aligns left, and gives you a scroll bar to access the overflow content. 3. Re: HTML 4.01 Specification: I started to read the spec more in depth, to see if I could learn anything. It clearly states, "The CENTER element is exactly equivalent to specifying the DIV element with the align attribute set to "center". The CENTER element is deprecated." So I then looked into the align attribute itself, and found that it is also deprecated for every use except the horizontal alignment of table cell contents. Specifically, it is deprecated for the DIV element. So, is the spec asking us to replace a deprecated element (CENTER) with a deprecated attribute (DIV ALIGN="center")? Furthermore, I can't even find the ALIGN attribute in the Strict DTD itself, only in the Transitional DTD. So why then will Netscape 6/Mac render it with the Strict DTD Doctype declaration? Is that a bug? 4. Re: the concept in general: It makes sense to me that the attribute be deprecated from HTML 4.01, in keeping with the idea that style should be separated from content. So, it then should have a counterpart in CSS-1. Maybe I'm missing something though, but I can't find this counterpart in CSS-1. Sure, it's there to format text, but what about formatting a block-level element of any kind to the center of the available space? Let me know what you think. It's entirely possible that I've gotten myself so worked up about this that there is something really simple that I'm missing, but I obviously haven't found that yet! Thanks for your help. Cameron Booth cameron@cdbdesign.net ps. Another strange, unrelated thing I encountered. Try placing an image in a fixed width DIV, but setting the IMG WIDTH to wider than the width of the DIV, and then viewing it in N6/Mac, or IE5/Mac. I would have assumed the image would force the DIV to stretch wider, but it doesn't, instead, the image "falls" out. Shouldn't a sibling element be completely contained in the parent block level element, or is this not the case with "replaced" elements like IMG?
Received on Thursday, 19 April 2001 00:35:41 UTC