Break up Heading or not?

My opinion time! : )

Ok, actually seeing the code in question, from the top…

Four stylesheets and no media types? Ouch. Way too many handshakes for little return.

I agree, unless your site were something like my husband’s where they have a base stylesheet and then each of their newspaper clients (who each have their own house style) has a unique stylesheet… doesn’t look like you have something like that going on.

I’d hide the H1 text UNDER the image using gilder-levin image replacement, that way images off you don’t get the ugly box and uglier alt text.

I’ve been bitten by text peeking out in all my browsers when I use G-L on anything with a smallish logo, because my default fonts are large and only IE wouldn’t let it grow if I set in px.
I also can no longer find a UA who does not consider the alt text of an image sitting in an H1 as anything other than plain h1 text… I’m moving towards alt text with two exceptions/problems:
-With Gilder-Levin, you can style that text that sits under the image, for people with CSS on but images off (or the image just doesn’t load for some reason).
-If the logo image is small, Mozilla is the only browser who correctly allows the image element to remain inline and act inline. All other browsers will keep the image dimensions if they know it and therefore can cut off alt text. What are vendors thinking???

For all the above I’ve started liking Make The Logo Bigger Cream more and more. It works better with Gilder-Levin and if I go the alt text route, browsers aren’t cutting alt text off.

H1 should be unique, doesn’t need an ID unless you’re planning on targeting it with javascript.

Or using it as a destination for a skip link, agreed.

Your use of a span to force line-break is broken on large font machines, you have that issue in a number of places where you’ve got dynamic content inside tiny little fixed size boxes. Both sidebars are WAY too tiny to have such large dynamic fonts inside them… I’d either fix the font size on the offending elements, or set the sidebar widths in EM.

My fonts aren’t set anywhere near as big as Crusty’s, but I’m getting this in FF7/Debian:


I can make the % fit with one font-reduction and lose half the word “corporation” with a single increase.

If you choose to set the font size in px, I’d only do it on the large header words and still let the little English words be able to grow and wrap (to a point).

I’d also put serious consideration into changing it to a middle column first code-order, as having the sidebar before the content is a bit annoying CSS off.

This will help you follow good header structure where WCAG2 strongly suggests keeping heading levels in order when possible… so, your h4 at least wouldn’t be right after your header, but your main content could come first. You can do this and still choose to set your sidebar widths in ems if you want.

Not sold on the definition list either, those look more like subsection headings than terms and definitions. I think people dive for DL’s way too quickly these days – they have their place, but really that looks to me like it should be a bunch of H3 and P, no extra tags/structure needed.

I love definition lists, and I use them all over the place (especially anywhere I might otherwise have a 2-column table… and I use them for FAQs, legal text, insurance terms (course that is terms and defintions), even price listings sometimes…), but I agree with Crusty here. A heading tag followed by any number of P’s will give you the same relationship without the extra dl.

The universal reset is also gonna bite you when/if you add forms to the page.

He means specifically the padding: 0. Browsers will let you strip the default padding off form controls, inputs… but they don’t all let you add them back in, and with the submit button for example, you’d be adding in quite a lot of code you wouldn’t otherwise need to (browser-padding gives the submit the “button” look and at least in versions of Firefox the “depressed” action of hitting a button would vanish too).
Elements with padding who you’d want to remove it from:
maybe html if and body if someone still puts padding on them
ol, ul, dd
th and th if you’re making very tiny tables, Firefox adds 1px padding to those cells
form, fieldset and legend if you’re actually going to style those
p

Nobody else I can think of who we care about has padding by default (except form controls who we want). Inlines don’t usually have padding (legend is exception), and blocks like divs and headings don’t either.

But just choose whatever you’re using for stripping padding just because specifically we want to protect form controls. It’s the main reason Eric Meyer’s insane (insane, as in not sane) reset is so huge: he started out trying to avoid hitting form controls with the *. Later, he also just tried to avoid using * since it’s a “heavy” selector to use, parsing-wise. I don’t worry about it on sites that aren’t ginormous though.

I hope more visual feedback is given to both mouseover and focus on the main menu. I like your highlight for “current page”.

I would try to avoid using the same colours for links as you do for highlighted text (however you said you weren’t done, maybe links will get a different colour). Now, the facts headings and the links are blue.

To read more about this small-business sucess story, and to learn how Pamela went from Homemaker to Business Owner click here.

Click here is a link who only has meaning when it’s within its context, which is why we try to avoid it.
Google’s search results for “click here bad” where they tell you why.

I’d rewrite that last sentence so the important meaning of the link in the link text. Like “learn how Pamela went from homemaker to business owner” as the link text, and expand the rest of the sentence as you want.

Whereas if people turn off the default zoom behavior and use the outdated half-assed text-only resize that resizes fonts only like some sweetly retarded cousin of netscape 4, I say they get what’s coming to them. I never liked that behavior, and I’m REALLY glad it’s no longer the default in ANY browser, and only exists for the handful of holdouts who by now should be used to EVERY website being broken with that type of ‘text-zoom’ since I’ve never seen a single site behave in a desirable manner with it…

As these pics from five years ago shows:

FF’s text resize at the time (nyetscape 4 style)
http://battletech.hopto.org/images/firefux/FF_Zoom.jpg

Opera’s PROPER resize:
http://battletech.hopto.org/images/firefux/Opera_Zoom.jpg

There’s a reason most browsers have adopted Opera style resize as the default (even if everyone else’s implementation is half-assed junk by comparison). It was idiotic to resize PX metric text in the first place, without resizing everything else declared in PX.

Running out of time tonight, so may have to respond to DeathShadow and Stomme tomorrow evening…

Wow! Lots of interesting and insightful comments. (Trying to make me a “Jedi” in one post?!)

Won’t back down on this one.

It is much easier for me to debug and conceptualize my code with the different “buckets”. (If I even make it to “Go Live”, I’ll consider cramming things into one or two style-sheets.)

I’d hide the H1 text UNDER the image using gilder-levin image replacement, that way images off you don’t get the ugly box and uglier alt text.

I Googled that term, but didn’t find anything really helpful.

Care to explain or provide a link to a useful tutorial?

H1 should be unique, doesn’t need an ID unless you’re planning on targeting it with javascript.

Not true.

My strategy is to have <h1> be my Company Name (e.g. “Debbie’s Small-Business Central”) on the Home Page, however, every other page will have a different <h1> which will most likely be the title of the article.

For example…

Page 2
<h1>Postage Meters can Save You Money</h1>

<h2>Some Paragraph Heading</h2>
<p>copy here</p>
<p>copy here</p>

<h2>Some Paragraph Heading</h2>
<p>copy here</p>
<p>copy here</p>

Page 3
<h1>Incorporating Your Business Without an Attorney</h1>

<h2>Some Paragraph Heading</h2>
<p>copy here</p>
<p>copy here</p>

<h2>Some Paragraph Heading</h2>
<p>copy here</p>
<p>copy here</p>

Clearfix, this isn’t 2001.

Had a thread going with Paul O’ and others about this a week or two ago. (Never got the answers I really wanted.)

If you can look at my 3-column layout and tell me how to remove ClearFix and not break things I am here to listen…

Extra DIV around elements that could be styled directly.

Okay.

Your use of a span to force line-break is broken on large font machines, you have that issue in a number of places where you’ve got dynamic content inside tiny little fixed size boxes. Both sidebars are WAY too tiny to have such large dynamic fonts inside them… I’d either fix the font size on the offending elements, or set the sidebar widths in EM.

You lost me here…

1.) Won’t using em’s on my page layout break Paul O’s “masterpiece”?! :eek:

2.) I am on a MacBook with FF8 and I can hit command + until things are as big as they get and nothing breaks in my layout…

3.) “Both sidebars are WAY too tiny to have such large dynamic fonts inside them…”

I don’t understand what you mean?! :-/

I’m concerned about these comments… I spent AGES getting my base page “template” exactly like it needs to be to work, and I thought that Paul O’ all but blessed it…

I’m not entirely sold that everything you have ID’s on… well… needs ID’s. The unique ones sure, but you’ve got a lot of them that could inherit off of body.

Examples?

I’d also put serious consideration into changing it to a middle column first code-order, as having the sidebar before the content is a bit annoying CSS off.

Using position: relative or something?

Again, won’t that break my page layout?

What is the ROI on doing that?

It will just please people like you and your reading style?

It will take me to #1 of Google?

Other?

Also, you are assuming that I want the Middle Column first…

I sorta thought “Featured Article” was a 1st choice?

And if I wanted to make money by giving Small-Business Workshops, then that might be 1st?

Not sold on the definition list either, those look more like subsection headings than terms and definitions. I think people dive for DL’s way too quickly these days – they have their place, but really that looks to me like it should be a bunch of H3 and P, no extra tags/structure needed.

I think Paul O’ recommended that. Sounds like Stomme poes likes it. But I can see your point, too…

The universal reset is also gonna bite you when/if you add forms to the page.

I guess you address this later.

Some of the comments are also kind of funny:


<!-- PAGE HEADER -->
<div id="pageHeader">

Really? Opening a div with the pageheader Id is the page header?

Well smarty pants, I use NetBeans and it shades all comments gray. As such, I add a comment before all logical sections so I can scan my code for the color gray and easily read my code…

Others though…


</div>

        <!-- Display Welcome -->
        <p id="welcome">

could trip rendering bugs cross browser…

What is a “rendering bug”???

in addition to the comedy of saying it’s the welcome text twice.

See above.

You’re using nice verbose names with a indenting scheme, don’t waste time on redundant comments. Only time where comments of that nature are really helpful is on closings, and so as to avoid tripping rendering bugs it’s why in my code you’ll often see this:
<!-- .subSection –></div>

instead of the more common:
</div><!-- end .subSection –>

I could switch to that, but tell me more about these “rendering bugs”…

Not sure I’d keep the footer div either… but that really hinges on what’s going there for content and if you’re going to have more than just the UL… Funny that, I almost never put things in lists in my own footers.

Then what do you use?

From what you have, my approach to the same page wouldn’t be THAT different, but I’d only have Id’s on the more… unique ones, my heading placement would be a bit different, and I’d probably have a wee bit different a use of DIV and P. (or should I say lack of P around some things)… and some HR to indicate changes in topic… Something like this:

Looks nice in straight up HTML.

I have time later I’ll toss together the CSS I’d use with that.

Would love to see how you re-work/re-style things!!

Thanks for your feedback!

Sincerely,

Debbie

Boy, you guys sure are dishing out the “tough love” tonight!!!

I agree, unless your site were something like my husband’s where they have a base stylesheet and then each of their newspaper clients (who each have their own house style) has a unique stylesheet… doesn’t look like you have something like that going on.

Sorry, again, organization and filing versus one style-sheet. (Especially in development.)

Besides, I highly doubt that 5 sheets at 2k is any different than 1 sheet at 10k from a performance standpoint?!

I’ve been bitten by text peeking out in all my browsers when I use G-L on anything with a smallish logo, because my default fonts are large and only IE wouldn’t let it grow if I set in px. I also can no longer find a UA who does not consider the alt text of an image sitting in an H1 as anything other than plain h1 text… I’m moving towards alt text with two exceptions/problems:
-With Gilder-Levin, you can style that text that sits under the image, for people with CSS on but images off (or the image just doesn’t load for some reason).
-If the logo image is small, Mozilla is the only browser who correctly allows the image element to remain inline and act inline. All other browsers will keep the image dimensions if they know it and therefore can cut off alt text. What are vendors thinking???

For all the above I’ve started liking Make The Logo Bigger Cream more and more. It works better with Gilder-Levin and if I go the alt text route, browsers aren’t cutting alt text off.

So I’m not getting why what I have is so bad. (It did come from you, Stomme…) And not sure what better alternative you are suggesting?!

My fonts aren’t set anywhere near as big as Crusty’s, but I’m getting this in FF7/Debian:

Again, not following you. My layout has worked fine in FF3.5 and FF8 for me.

If you choose to set the font size in px, I’d only do it on the large header words and still let the little English words be able to grow and wrap (to a point).

I’m using em’s all the way through. :-/

This will help you follow good header structure where WCAG2 strongly suggests keeping heading levels in order when possible… so, your h4 at least wouldn’t be right after your header, but your main content could come first. You can do this and still choose to set your sidebar widths in ems if you want.

I don’t see how changing from fixed-width Left & Right Columns using pixels to em’s would blow up Paul o’s layout?!

I love definition lists, and I use them all over the place (especially anywhere I might otherwise have a 2-column table… and I use them for FAQs, legal text, insurance terms (course that is terms and defintions), even price listings sometimes…), but I agree with Crusty here. A heading tag followed by any number of P’s will give you the same relationship without the extra dl.

Okay. (Think the Search Engines would like that better too?)

He means specifically the padding: 0. Browsers will let you strip the default padding off form controls, inputs… but they don’t all let you add them back in, and with the submit button for example, you’d be adding in quite a lot of code you wouldn’t otherwise need to (browser-padding gives the submit the “button” look and at least in versions of Firefox the “depressed” action of hitting a button would vanish too).
Elements with padding who you’d want to remove it from:
maybe html if and body if someone still puts padding on them
ol, ul, dd
th and th if you’re making very tiny tables, Firefox adds 1px padding to those cells
form, fieldset and legend if you’re actually going to style those
p

Nobody else I can think of who we care about has padding by default (except form controls who we want). Inlines don’t usually have padding (legend is exception), and blocks like divs and headings don’t either.

Sure I won’t blow up all of my work thusfar? (Sounds pretty risky to me…)

But just choose whatever you’re using for stripping padding just because specifically we want to protect form controls. It’s the main reason Eric Meyer’s insane (insane, as in not sane) reset is so huge: he started out trying to avoid hitting form controls with the *. Later, he also just tried to avoid using * since it’s a “heavy” selector to use, parsing-wise. I don’t worry about it on sites that aren’t ginormous though.

So I’m not getting how I should change my code…

I hope more visual feedback is given to both mouseover and focus on the main menu.

I used to have that when I had drop-down menus, but lost it for simplicity.

I like your highlight for “current page”.

Why so?

I would try to avoid using the same colours for links as you do for highlighted text (however you said you weren’t done, maybe links will get a different colour). Now, the facts headings and the links are blue.

What color would use use assuming hyperlinks stay blue?

I was using red for Facts, but wondered if that was too “loud”?!

Click here is a link who only has meaning when it’s within its context, which is why we try to avoid it.
Google’s search results for “click here bad” where they tell you why.

I’d rewrite that last sentence so the important meaning of the link in the link text. Like “learn how Pamela went from homemaker to business owner” as the link text, and expand the rest of the sentence as you want.

Good point.

Thanks for the comments.

Am concerned about what you say about scaling and about not breaking Paul O’s magnificent layout that I adapted…

Sincerely,

Debbie

Haha, poor Deb… look, if you use versioning software, you can dare to try some stuff out and if everything totally horribly dies in a fire, you always have your older, “working” version to go back to : )

Re multiple stylesheets:

Won’t back down on this one.

It is much easier for me to debug and conceptualize my code with the different “buckets”. (If I even make it to “Go Live”, I’ll consider cramming things into one or two style-sheets.)

Sorry, again, organization and filing versus one style-sheet. (Especially in development.)

Besides, I highly doubt that 5 sheets at 2k is any different than 1 sheet at 10k from a performance standpoint?!

Oh, there’s a performance difference, but dunno if it would matter enough for you to be bothered. Here’s how it works (and it’s the same reason people use image sprites instead of lots of separate little images):
Each stylesheet is a separate request, and each request to the server has a minimum amount of latency. That is, no matter how fast your browser, your internet connection, or the site’s, it always takes a certain minimum of time to have the client (browser) ask for a resource and the server to determine if it has that resource, has permissions to send it, and then to do so. Crusty usually says about 200ms; I have little idea (other than, when I measure it with wget, it’s never instantaneous).

So 5 stylesheets each has a asking-checking-sending thing from the server going on.

All that said you are not alone in finding development a lot easier with separate stylesheets! Drupal does this all the time, as does most CMSes.

So, keep them all separate for ease-of-development on your local copy, but when you upload to “live”, smoosh them all together (in the same order you have now). If they stay in order then they’ll act the same as they act now. This means, one request for styles, your site gets loaded on the user’s machine a bit faster.

Frankly the difference is more measureable when the site is huge. I looked at a site done by a company I was interviewing at and they had, I kid you not, 30 separate stylesheets, plus 5 more stylesheets that came with various jQuery plugins… and almost 30 separate javascript calls.

Later they fixed this so I’m sure it really was that someone was stupid enough to upload the dev version… IE won’t even bother loading stylesheets after the 31st or 32nd one (IE has a limit).

Re: Gilder-Levin image replacement

I Googled that term, but didn’t find anything really helpful.

Care to explain or provide a link to a useful tutorial?

http://www.mezzoblue.com/tests/revised-image-replacement/
the last one.

Gilder-Levin image replacement is what we use to place an image on top of text. If the image doesn’t load, the text is sitting right there and styled however you like. If the image does load, it sits right on top of the text and covers it. It’s nice. You see he mentions it’s not going to work if the image is semi-transparent. It also won’t work if the image is way smaller than your text.
Frankly, I don’t see anything wrong with
<h1><img src=“debbie.png” width=“whatever” height=“whatever” alt=“Debbie”></h1> if on the main page that is your h1. Any user agent who doesn’t load the image basically gets
<h1>Debbie</h1>
since that’s how alt text is supposed to work. However, you won’t really be able to style that text for those with CSS on but images off (except in Mozilla) and Gilder-Levin lets you do that.

Re id on the h1:

Not true.

My strategy is to have <h1> be my Company Name (e.g. “Debbie’s Small-Business Central”) on the Home Page, however, every other page will have a different <h1> which will most likely be the title of the article.

Okay, if you have an id on this h1 because it will be styled different from all other h1s throughought the site, then yeah, it does make sense to put an id on this one. Take Crusty’s words to mean “in general” because it’s not uncommon for people to put id’s on all their h1’s.
Another option is to have the id on something else, like the body, if the main page had plenty of things that were different.

Re: clearfix

Had a thread going with Paul O’ and others about this a week or two ago. (Never got the answers I really wanted.)

If you can look at my 3-column layout and tell me how to remove ClearFix and not break things I am here to listen…

Mostly, you don’t have to worry about it. Crusty hates clearfix technique because it’s way more code than all the other float clearing/enclosing methods out there, and frankly that’s all you care about: floats remain in their containers instead of popping out and stuff riding up all over everywhere like a bad wedgie.

I usually tend to use a combination of haslayout for IE and overflow: hidden. Sometimes I can’t afford to hide overflow so since I usually still have Haslayout triggered I do just use a version of clearfix using :after, where all I do is make no character (content: “”;), make it a block and clear: both. Still much smaller than the original clearfix, which took into account IE for Mac, IE5 and 6, and went out of its way to trigger Haslayout in some hidden way. A lot of the time you already have Layout because the box has a width or something anyway.
Paul O’B also only uses clearfix when all the other methods aren’t suitable or cause more problems than they solve.
http://stommepoes.nl/floaties.html I think I’ve listed most of them here, except the Yahoo one with a :before and :after and display: table and all that junk. Then they go adding “zoom:1” to stuff which to me is retarded, since we’ve already dealt with Haslayout somewhere.

You’re not breaking anything using clearfix, it’s just a wordier way of clearing/enclosing floats. You can safely leave it.

Re the sidebars:

You lost me here…

1.) Won’t using em’s on my page layout break Paul O’s “masterpiece”?!

They don’t have to. In fact, if you decide you want to go along with Crusty’s suggestion of the middle part first, you can do it pretty easily. I assume Crusty is thinking of the “Holy Grail” layout. I’ll outline it further down.

2.) I am on a MacBook with FF8 and I can hit command + until things are as big as they get and nothing breaks in my layout…

You’re zooming. So is Crusty. But Crusty is zooming on a machine whose own system fonts are ginormous.
I don’t zoom, because I hate zoom most of the time (if there are any images, I hate zoom, because it makes the images large and blurry which always gives me a headache. If I’m zooming in, it’s because I can’t read the text, so let me enlarge the text!)… (directed at browser makers who only make the retarded zoom)

3.) “Both sidebars are WAY too tiny to have such large dynamic fonts inside them…”

I don’t understand what you mean?!

Your sidebars are small. There is text in there that easily gets so large that it disappears on some machines (ours). If text has the ability to grow a lot and it’s already pretty big, then small-width containers can be a problem. I can show a Holy-Grail version with ems where at least the boxes would also get bigger (at some point, they’d get so big the middle would be squashed, but that would be extreme text-enlarge). If you have a mobile stylesheet and mobile-first setup, then actually Opera and other browsers will, if the user zooms in too much, actually switch to the mobile stylesheet. This is one plus of zooming browsers, and is really nice to read big text on.
(an example, open Opera and zoom the hell out of this page and you’ll see Opera switch because there’ll be no more images)

Again, not following you. My layout has worked fine in FF3.5 and FF8 for me.

When you test your site, first try to set your fonts (on your computer, somewhere there’s a place you can change the “default” font setting for most of your applications) a few times bigger than what you have now. Most pages if well-built should only look a little funny, but nothing important should overlap or get cut off.

The reason MY firefox shows stuff bigger is, Firefox is one browser who will accept the “Application Settings” fonts I set in my windowing system (this machine is running the XFCE desktop environment, which is based on Gnome, on Debian) so it’ll make text larger like it does in my music-playing program Banshee, my graphical text editor gEdit, and even my Terminal application (real terminals are tiny on this thing). Now Opera and Chrome don’t bother looking at my desktop settings so your page probably fits better on those (I didn’t check, sorry) and then those both zoom, so everything would fit the same way except just bigger.
So this “problem” hits only people who have a different default font setting either in their browser (chrome for example does not offer this option, which some google employees have complained about) or further up where the browser will accept those settings. Zooming can’t fix this for them, but the site can accommodate these people a bit more.

I’m concerned about these comments… I spent AGES getting my base page “template” exactly like it needs to be to work, and I thought that Paul O’ all but blessed it…

You could make it absolutely perfect and there would be critical feedback. We assumed you wanted it : ) But it’s YOUR site, and YOU get to make all the final decisions on it. For the most part, your site certainly isn’t worse than most other web pages out there, nobody’s going to die from it, and you can pick and choose any improvements you want to make. If you try something and it breaks, or you don’t like the effect, go back to what you had. It’s not a huge deal.

(unless you like Crusty’s rewrite, in which case, you ought to be able to easily plug his into your pages and it should Just Work anyways)

Re content-first:

Using position: relative or something?

Again, won’t that break my page layout?

It’s too bad the site that used to show 40 examples of Holy Grail is gone, or at least, I can’t find them anymore. Though there are two decent ways to do middle-first (or content-first, when the assumption is the sidebars are less important).

What is the ROI on doing that?

If your sidebars are considered less-important than the middle section (where most sites put the meat), getting that as first originally was a benefit to search index because long ago the spiders actually had a limit in how far into a page they’d index.
This isn’t true anymore, but it does still help insure that if a bot does for whatever reason leave a page before it has finished indexing (esp if on each page the sidebar material is the same, which for many sites it is), it will have grabbed the meatiest part first.

More importantly it’s nicer for anyone browsing linearly like in a text browser or a screen reader where the user doesn’t realise they can navigate where they want without needing to tab everywhere. Sighted keyboarders don’t have the luxury of a screen reader’s navigation capabilities.

Lastly, printing rocks, if you want the sidebar content to be printed out, but the meat first, you’ve already got the source-order you need.

It will just please people like you and your reading style?

Visually it should look exactly the same, which is what’s cool about it (site looks how you want, but meat comes first). Also heading level order.

It will take me to #1 of Google?

Frankly, despite what I mentioned above about search spiders, there is a dark SEO claim that it will help rankings, but it won’t. It’s really more for a small segment of your human visitors and catches the off-chance that a spider only comes once and gets interrupted (or follows a link and never comes back) or whatever. It seems pages get indexed often and regularly though.

Also, you are assuming that I want the Middle Column first…

I sorta thought “Featured Article” was a 1st choice?

Well, visually you’re implying the small business facts is the most important. The text is biggest, it’s in the Easy Center (grabs most of the first attention on the page), and visually, if you asked me “what is this page mostly about?” I’d say “small business facts, and some other business-related stuff.” Likely most other people would think the same.

If the Featured Article is the most important chunk of the page (it seems to me to be more of something between a “testimonial” and a “story where the product helps a customer”), you’re telling my eyes it’s very minor.

Newspapers put the stuff they want to scream out in the middle. They put ads for the local car wash Super Saturday Sale in little side columns in small text.

Your markup will say the Featured Article is fairly important; your CSS is telling me it isn’t. So I’m a little surprised it’s not taking up center stage, but you may have a reason for that…

And if I wanted to make money by giving Small-Business Workshops, then that might be 1st?

If that’s the point of the site, say it! Start off with your most-important section (and give it Center Stage!) stating the (potential) client’s problems: want to start your own business but don’t know where to start? Think you’re just a housewife so you could never fulfill your dream? Go for it! With my help!
-I help people start their small-business dreams get started with informative workshops blah blah…
(cue Pamela) See this woman? She’d lay around her house in a housecoat with rollers in her hair smoking cigarrettes and watching Matlock and Golden Girls all day while her 16 cats peed on everything. Today, she’s running her own business! (link) READ PAMELA’S AWESOME SUCCESS STORY!(/link).

That kinda thing. It seems your site wants to be a general resource for your target audience, but if it’s also mostly where YOU are helping OTHERS and that’s your SERVICE, make that the most important thing! Both in the markup, AND visually!

(again, remember this is the opinion of some random person on teh interwebs)

Re <!-- excessive comments –>

Well smarty pants, I use NetBeans and it shades all comments gray. As such, I add a comment before all logical sections so I can scan my code for the color gray and easily read my code…

Crusty can’t stand different colours in his code, so he won’t understand how it helps you so much.

But like with the multiple stylesheets, you could still serve the deployment version without the comments.

Re comment rendering bug:

What is a “rendering bug”???

http://www.adrianpelletier.com/2007/11/25/decoy-fix-for-ie-duplicate-characters-bug/
He links to the PositionIsEverything explanation, which at the time they thought was only IE6 but it also hits IE7 too.
It has nothing to do with Layout.

It has to do (partially) with how IE6 and 7 think comments are part of the DOM. Here’s an example.

If you’d like to see what it looks like, I once managed to trigger it by having hidden stuff between floated elements (div) in a form.

Frankly, it’s not something you’ll see terribly often, especially as IE6 and 7 usage go down. But you should be aware of it. I avoid the problem by not having comments between floats by pretty much not having comments at all in the deployed versions.

I’m using em’s all the way through.

Yay!

I don’t see how changing from fixed-width Left & Right Columns using pixels to em’s would blow up Paul o’s layout?!

Not if the middle part can also deal with ems. They could all share the same sandbox without someone playing “cat”.

Re definition lists (and to make it very clear: I love definition lists, but I don’t think they’re helping you here at all and would remove them):

Okay. (Think the Search Engines would like that better too?)

They won’t care either way, except that the dl adds a bit more code per amount of content. Which, your page isn’t dense enough to make anything measureable for a spider anyway (Crusty’s always going on and on about Code to Content Ratio, and I think it does matter (you always want the least amount of code to present the content you want), but I don’t think it’s a huge deal here).
While a dt->dd setup is supposed to show a “term-and-definition”-type of relationship (which I believe a Q &A is, or an FAQ), even screen readers don’t get any real association between the two, search engines likely nothing, and inside your dl you have heading-paragraph pairs which are giving ALL the relational information you want to show anyway.
Screen readers and search engines know what headings are (and actually Opera users can also navigate by headings!) and here, it looks like that’s all you need. I don’t believe a dl is reinforcing that idea more.

Re padding reset:

Sure I won’t blow up all of my work thusfar? (Sounds pretty risky to me…)

It’s true that if a disaster is going to hit you, it’s most likely when you change a reset after a page is mostly written rather than before you write any styles, but you can always try it. Either you have ctrl-z or u to undo and/or versioning software to let you go back anyways, if it totally destroys everything.
But you can keep the

  • {
    margin: 0;
    }
    if you want: your styles are written for it and while it’s a very heavy selector, whatever. Users won’t notice. The problem with forms is just the padding. And as I said, most inlines don’t even have padding, and neither do heading tags (h1-6) nor divs.

You can try copying this and see if anything explodes:

  • {margin: 0;}
    html, body, ol, ul, dd, th, td, fieldset, legend, p {padding: 0;}

And you may not even need that much, if you don’t have tiny tables, don’t want to really style legends (mostly removing the padding from legend meant it didn’t leave a little gap behind when I absolutely-positioned it offscreen, for when I’m making accessible-but-redundant legends… a gap you only see if you let the fieldset have a border anyway).

Re current-page highlight:

It’s really obvious, for one (I like obviousness in user-centric design), and I like the colours. I often (not always, but most of the time) have the same highlight for hover, focus, and current page. The plus with this is it also reinforces to users who mouseover/focus on the menu item that leads to the current page that they’re already there (they don’t get any noticeable highlight because… it’s already highlighted, cause they’re already there) which is considered good usability (some UX even say “take the link out” but I don’t bother).

What color would use use assuming hyperlinks stay blue?

I dunno, I suck at combining colours. If you want to extend the girlyness of your menu you could use one of those, but you’d really want to ask one of the more artsy people around here.

I was using red for Facts, but wondered if that was too “loud”?!

Yeah, and also, red and black are very commonly seen on the Get Rich Quick SEO crap sites. They all have that “look” and you wouldn’t want to inadvertantly imitate it. Any other dark colour but red.

Next post, so I don’t lose all this, will be center-first if you want to try it. Or Crusty will beat me to it.

Two ways to do middle-first:

Holy Grail
Has the disadvantage of not working well in IE6 (I’m sure Paul knows the easiest way around that) and in its own way is kinda brittle.

Basic page markup, using pseudo-code NOT real code, these would be id’s or classes:


<header />
<wrapper>
  <maincontent />
  <leftsidebar />
  <rightsidebar />
</wrapper>
<footer />

You always have that extra wrapper in there and it’s purely to make this work.
Also, something else will have to constrain the width of the wrapper assuming you want the page to have limited width and centered in teh viewport (like an all-encompassing pagecontainer thing).


wrapper {
  float: left;
  width: 100%;
}

maincontent {
haslayout trigger if you want, but NO WIDTH;
  margin: 0 widthOfSidesInEm 1em; (1em bottom margin)
}
(so let's say you wanted sidebars of 10em width. set 11em as the side margins of maincontent. They also don't have to be the same width; they only need to be the width of the sidebars)

leftsidebar {
  position: relative; (otherwise I've noticed browsers sometimes don't let you click on the links in here)
  float: left;
  width: 10em;
  margin-left: -100%; (this is why it doesn't work well in IE6, but if the page and wrapper have a set width, then you can use a non% unit here and then IE6 is also ok with it... but IE6 doesn't seem to know what 100% means here)
}

rightsidebar {
  position: relative;
  float: left;
  width: 10em;
  margin-left: -11em; (something more than its 10em width anyway... 11em might be too much, you play with it)
}

footer {
  clear: both;
}

That’s Holy Grail in a nutshell. Basically, be aware you’re placing the sidebars on top of some sidemargin owned by maincontent. It’s actually very close to absolute positioning, meaning the rest of the page can’t see the sidebars. This can sometimes be a problem so you’ve got to be careful.

Advantage: if you don’t have a set page width, or have a flexible (like 80%) page width, the middle can grow with the user’s screen width while the sidebars only grow when fonts are enlarged.

Option 2, not too unlike what you have now actually:
Nested floats
When Magento had their rewrite to do “content-first”, this is the technique they used, partially because of course as a templating system, some users would have only a left or right sidebar, or none at all.

This also assumes all these players are in a main page container restricting width and centering the page.


<header />
<wrapper>
  <maincontent />
  <leftsidebar />
</wrapper>
<rightsidebar />
<footer />


wrapper {
  float: left;
  width: totalOfMaincontentAndLeftsidebarAndSpaceBetweenThem;
}

maincontent {
  float: right;
  width: mostOfTheWidthMinusGutters;
  margin-left: gutterWidth;
}

leftsidebar {
  float: left;
  width: restOfTheWidth;
}

rightsidebar {
  float: right;
  width: what'sLeftAfterWrapperTookItsSpace;
}

footer {
  clear: both;
}

Disadvantage compared to Holy Grail: you need to know all your widths at the beginning, which restricts page growth. Floats don’t naturally expand, they shrink, so nobody’s going to be growing here with screen width. Unless you use %s for everything.

I’m on the laptop right now so I can’t go into a full response – but the easiest way to have holy grail without it breaking and without the hacks ALA always seems to have raging chodo’s for is to simply add one extra wrapping DIV around the first column. Oh noes, not one DIV.


<div id="contentWrapper"><div id="content">
	Page content
<!-- #content, #contentWrapper --></div></div>

<div id="firstSidebar">
	First Sidebar
<!-- #firstSidebar --></div>

<div id="secondSidebar">
	Second Sidebar
<!-- #secondSidebar">


#contentWrapper {
	float:left;
	width:100%;
}

#content {
	margin:0 12em; 
}

#firstSideBar,
#secondSideBar {
	position:relative; /* depth sorting AND positioning */
	float:left;
	width:12em;
}

#firstSideBar {
	margin-right:-12em;
	right:100%; /* you could also say left:-100% here, same thing */
}

#secondSideBar {
	margin-left:-12em;
}

Works flawless all the way back to IE 5.0

“Holy Grail” goes absolutely nuts trying to avoid that one extra DIV… it’s one of the few times I end up saying “You know what? Use the extra DIV”. It’s more reliable/stable/bulletproof. Like a lot of things on ALA – some really interesting ideas, but often the solutions are more a “what’s possible” than a “What you should do” due to being needlessly complex or reliant on major hacks.

Arg! Looking at Crusty’s, I realise I have my divs for Holy Grail in the wrong order! Disregard my HTML from earlier post!!


<header />
<wrapper>
  <maincontent />
</wrapper>
<leftsidebar />
<rightsidebar />
<footer />

That’s how it should be. Close wrapper before sidebars.

Stomme poes & DeathShadow,

You know at any respected University or College, I’d easily get 3-credit-hours for all of these comments (and work to make the changes)… :wink:

Mega-exhausted tonight.

Will reply tomorrow.

Looks like I know what I’ll be doing all weekend!!! (When will the change-requests ever end?! “Perfection” seems so far away again…)

Debbie

You can use ems in my layout much in the same way that Jason has used them above. Just use ems for the side columns and account for them much in the same way. Of course having em side columns in a pixel width layout can have drawbacks despite what the others may say. After a couple of zooms the side columns are now bigger than the main section and all your important content in the main section is going to be squashed or broken in some way which seems to defeat the purpose. You could use ems for the main container but then that means it will scale out of the viewport and seems to be more annoying to users than a bit of overlapping text here and there.

On the other hand you shouldn’t use narrow side columns if you have fixed width content or large text or images etc or at the least make sure it can all wrap (word-wrap:break-word). Whatever way you do it has drawbacks so you need to decide which approach is best for you and your visitors.

Using position:relative to shift the columns for source order can break the zoom in IE7 and the columns get shifted awkwardly (its the same effect when using width on the body element to centre the page) so I would avoid it. Usually negative margins can achieve the same thing though and avoid the zoom issue. However, I don’t believe its worth the extra effort to have content first due to the extra complexity and the odd bug but the option is there of course.

There is also an issue with the floated 100% width column and negative margin (in both mine and Jasons code) in that the min-width needs to be controlled or you lose the scrollbar for some of the content in the middle column equal to the negative margin applied.

All methods have drawbacks in one way or another and you will never get a definitive answer because it all depends who you ask and what their take on the problem is.

Which is why pixel width (or at least fixed pixel width) layouts are a miserable steaming pile of /FAIL/ at web design.

Which is what min-width is for.

Or you let the center column be dynamic, the outer wrapper be dynamic, and it all plays nice… well, except for the handful of … I’ll be nice people out there still letting FF resize content like the sweetly retarded cousin to nyetscape 4 that it really is, instead of the default Opera style zoom every browser maker has been adopting as the default behavior… and to be frank, if those people aren’t used to EVERY layout being broken using that bekaptah useless ‘text-resize’ asshattery by now…

It is VERY rare that I say to blazes with certain groups of users, but people who still use that outdated broken half-assed “text-resize” nonsense? Oh well!

In case you couldn’t tell, I was never a fan of that type of content resizing… once again, Opera did it right, did it first, and everyone else is left in the dust…

If I could just force Opera not to enlarge images, border thicknesses, and all that graphical junk, but just the stuff I want to see (the text), zoom would be alright.

Seriously, who thought it was a good idea to blow up images? They look terrible and BLURRY and make me sick (literally if my eyes skim over them). Who enjoys blurring blown-up images??? Who???

This is zoom’s biggest fail, and that’s Fail like FAIL WHALE failing so faily it faily fails in fail-ness. And it’s why I can’t use Opera as my main browser.

You didn’t fail to make your point though.:wink:

I don’t use zoom and I don’t like it much either. I just want the text resized so I can read it. I’m at an age where I can’t read anything without glasses and even with glasses I can’t read some small text and I much prefer to click up the text size to read the small section and then click it back down again. I don’t want zoomed layouts.

Which is why what I said above still holds true and you can’t please everyone. Everyone is different and has different expectations so often one solution will annoy someone else so you try to do the best you can and keep everyone half happy.

Because if you don’t zoom the images, you are blurring the line with text-size.

Some layouts look really, really stupid if you zoom in the text but leave the images the same size. It’s a compromise. What I’ve found really irritating, just practising zooming on this thread, is that it doesn’t zoom to the point I’m currently looking at, so I zoom in on your text and find I’m reading DS60’s, which is confusing to say the least…

Some layouts look really, really stupid

So the heck what? Was I zooming to make it look good? Or because some hotshot Designer thought 9px light grey fonts were hip?

You’re saying my browser should force me (if I was a sad sad-sack who was forced to use Opera or Chrome) to get dizzy on enlarged pixel-based images that don’t look any better and aren’t easier to freaking see because now they’re freaking blurry so that “the layout looks good” when I’m diving for the CTRL++ so I can do what I came there to do: READ STUFF?

Does it look weird sometimes? Yeah. So does high-contrast setting. For me, zoom/text-enlarge is an accessibility function that’s there purely to assist the browser user in seeing. Like high-contrast does, like blocking animated images does, or changing all the fonts to one readable font.

So seeing it as an accessibility function, making it a worse and less-accessible function to prevent teh Fuglies from breaking out is, frankly, bad design.

At the very least, make it an option. Firefox lets you do either. I’m sure there are plenty of people (like Crusty here) who don’t mind large, blurry images and who would rather keep “the layout looking good” but that’s why it should be a choice, because current zoom prevents me from being able to use it for its intended goal.

The layouts look broken. The designers look stupid.

“stupid” is rather a cheap shot on my part. Let’s say naive, careless, misinformed, pragmatic, “only obeying orders”…

I agree with everything in posts #33, #34, #36 and #37. :slight_smile:

Also, zooming everything generally throws a horizontal scroll bar at small font sizes than just zooming the text. Pages that require horizontal scrolling should be consigned to one of the more pestilential pits of hell.

Edit: also #38 :slight_smile:

If a design is based around images being a certain size, and you then change the size of everything except the images, of course it’s going to look a mess, and you can’t blame the designed for that.

I’m not talking about where the designer has gone for a pixel perfect layout that breaks at any font size other than his default – it is perfectly possible to make a design that works fine at different font sizes, but where the graphics break completely at different zoom levels.

That depends on the site. In my default window width of about 900px, I can zoom this page up to 140% without it invoking a horizontal scrollbar. Maximise it to 1280px and I can get up to 180% with it fitting widthwise. If you double the size of everything on a page that doesn’t have a simple linear layout then it shouldn’t be a great surprise when it doesn’t fit. If you’re getting horizontal scrolling when you zoom to where you need to, see if the site has a mobile version – sometimes that will have a linearised layout that works better with zooming in.