You view them as "workarounds" because you (as most of us did at some point) came from a world of designing using tables where these things were possible using a specific method.
You're not wrong, but maybe you could be more right. :-) I think my point of view comes mostly from expecting things to be simple and straightforward, e.g. having an object (whatever that may be, in this case it's a column) and expecting sensible, pragmatic methods to be available in order to use that object and make it function in the real world. Tables and table cells are a good example: you assign a tiling background to a table, and it will cover the entire table.
Not so with CSS; you slap a <span> or <div> around the area you want to use, you fill it with content, and you assign properties to it. Which means that said properties will only apply to the part between the opening and closing tags of whatever it is that you assign them to, and the amount of screen real estate that they cover depend on the content that fills it. From a systems standpoint this makes total sense - but from a pragmatic, practical, real-world standpoint where this is NOT what you want to do, it doesn't. I'd be much happier if CSS was designed with ease of use in mind, rather than according to an internal logic which makes sense only as far as those internal logics are concerned.
In short, drawing a rectangle on the screen, having the bottom edge line up correctly, and assigning background properties to it regardless of the content that's in it, is such an every-day, elementary job in web design that it should be simple and straightforward to do, which with CSS it just isn't. That is what I mean with "workaround".
These techniques are still possible, albeit by alternate methods. That doesn't make them "workarounds" it just makes them....well, alternate methods.
I haven't really read thoroughly the other posts in this thread but the way to do this (and I believe it was suggested) is to use three divs for your content area.
<div id="leftcol"> </div>
<div id="rightcol"> </div>
You have to apply the background image to #content and tile it vertically. Then, float both columns to the left and apply overflow: hidden on #content to get it the background image to go all the way to the bottom of "both" columns.
Once you become more familiar with CSS methods and techniques, you'll just know these methods as second nature and you won't view them as "workarounds" or things like that, you'll just view them as the tricks of the trade when working with CSS.[/QUOTE]