Web Standards Solutions
With the title Web Standard Solutions (which we will refer to as WSS from here on), you might expect this to be a book that is going to solve your problems, and without disappointment that is exactly what is does.
WSS takes a problem based approach instead of the commonly used project based approach to teaching you the value of designing to strict standards. I found this approach very refreshing, WSS kept my attention by presenting a problem, and then presenting 3-5 solutions on how to accomplish the task at hand. With each example Dan takes you through several ways to achieve the required result. Each of the methods shown are common patterns that different developers/designers would use, and the pros and cons of each are well articulated.
A lot of you may know Dan from his Simplebits. website. If you frequent Simplebits you will immediately recognize his style in the writing of WSS. Much like the mini quizzes that are used on his blog, this book is really a compilation of the hurdles that you are likely to face when trying to design to strict standards, and the solutions presented will get you over them.
WSS will also help the budding developer realize the business value of designing to standards. Once you start designing with standards, search engine rankings can jump, continued maintenance becomes a breeze, and the accessibility to screen readers (or other requirements) can be elegantly met.
One of my favorite parts of the book is the in-depth techniques used to style lists. WSS shows you how to take a regular non-formatted list and, using CSS, style it in several ways: as a vertical shopping list; without bullets and indenting; with custom bullets; and eventually as a horizontal navigation bar with changing bullets.
This book really stands out when covering the most basic foundations of layout such as paragraphs, lists, headers, titles and the like. The first half of the book really gets into the proper use of the most basic CSS techniques and proper selection of tags for headings, quotations, etc. While the second half of the book requires you to use what you have learned along the way to start building CSS based layouts.
If you are a regular at some of the advanced sites like CSS ZenGarden or A List Apart this book may be a little basic for you. Even still you will probably be able to take some techniques from it that you can use, this book is really more for the designer that is capable but not quite deadly with their CSS knowledge.
Overall I would give Web Standards Solutions the Markup and Style Handbook an 8.5 out of 10. I really think it does a fantastic job at keeping the reader interested in the subject (something that is often very hard to do in technical books) and will definitely be a great business tool for you. A quick read it is, but a valuable reference that has earned a spot next to my keyboard, my 3 bars of caffeinated soap, and the trusty case of bawls.
You can purchase Web Standards Solutions: The Markup and Style Handbook from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
You're telling me. Check out this series of articles written for A List Apart, an e-zine dedicated to web standards.
Steal This Sig
I picked up this book last week. I found it an excellent read and suitable for CSS users both novice and advanced. It gave me a couple ideas for ways to do these and further illustrated the necessity of web standards compliant design.
I also bought it because I met the author at the 2004 TOevolt Conference and he gave a great seminar and was a cool guy to boot.
It also spends some time on web accessibility, something all developers really need to start thinking about.
i'm sure you meant "presentation from content"...as the logic would be whatever PHP/ASP/JSP/etc you got running
and no, css does not make a page more antiseptic, just as using tables does not result in sites looking like an excel spreadsheet. yes, it takes time and effort to learn it, but think back at how much time you wasted learning all those wonderful obscure tricks to coax a table into displaying the way you want, with nesting, spacer graphics, setting widths and heights, and all that shit...
The "Buy" link listed is at bn.com, but you can get it for cheaper at Amazon.
CSS/XHTML
as
hand-coded HTML
BTW, this has been active at least for three years, but very few people know about it.
Imagine if the Internet had started out with today's newest XML standards back in the early 90s. Imagine that browsers were strict and accepted only standards-compliant code. To design a site you'd have to know strict XML and understand DOCTYPES and all that. The layout of your webpage would be strictly defined by CSS 2.0, which means you'd have to learn that too.
Would the Internet have flourished? Maybe. But I bet adoption would have been slower. It would have certainly put off alot of people trying to create a simple functioning webpage.
Heck, it might have caused some genius to invent a simpler alternative to XML/CSS
I guess, I have a different attitude about it. Once I learned how to do most of the things I needed to do without tables, I really didn't want to go back. So I kept pushing through it all and learned everything I could.
I understand that tables are not bad, but that's not the point. If you follow the patterns of developing in only CSS, you end up solving a bunch of other problems you face later down the line in the development and maintence lifecycles (accessifying the site, turning pages into CMS templates, Search Engine Optimization, and importing static content into databases to name a couple I've had to confront).
Also you should see the maintence teams faces light up when they see a 100% CSSed site. Maintence and updates become a breeze.
I guess in the end, I've not seen a need to go back to allowing tables for layouts. The only reason I would say that you shouldn't make a hard rule on NO Tables is that on many sites you do not control the source of all the content (CMS, Portlets, Includes, etc...) and because maybe somewhere somplace out there there is probably something which is impossible to do in pure CSS. But in the mean time I think everyone should learn this skill, it's worth it. (It cut our bandwidth by ~%50 which justified the costs of learning the skill and implementation.)
Ted Tschopp
Fantasy remains a human right; we make in our measure and in our derivative mode... -- JRR Tolkien
IE7
It's still alpha software, but it works pretty well in my testing.
The roots of education are bitter, but the fruit is sweet.
--Aristotle
I love CSS Zen Garden. It is an amazing site. And, you're absolutely right that not all CSS sites need to look the same (I like to think that my site, which totally relies upon CSS for design, does not look like every other "CSS site" out there). That being said, I do agree with the original poster's sentiments to a large degree.
Off the top of my head (finishing a long day at work):
1) CSS Zen Garden is great, but it's much easier to mess around with CSS style-switching like that when you have only one page to support. It becomes much more difficult to do when you have a lot of different pages with different types of content and different amounts of content on different pages.
Plus, a lot of the designs on CSS Zen Garden are eye-catching - but hardly useful (and rather distracting) if you are trying to make a serious site geared towards content delivery. This it not a slam on CSS Zen Garden at all, which is, after all, supposed to show that CSS can deliver the goods when it comes to amazing graphic design. Just that, at the end of the day, what matters is normally intuitive content delivery wrapped in a good design, not being able to switch styles.
2) It can still be quite a bitch to get CSS to work the same in Opera, Mozilla, and IE.
3) Given the difficulty of getting CSS stylesheets to work correctly across all browsers, you have to ask yourself - doesn't it make more sense to use tabular design and some content management system that contains templating features, rather than struggling with the theoretically cool but difficult to implement CSS design switching?
4) One of the things that initially attracted me to CSS was the possibility of creating web pages that are more accessible to sight-impaired and motion-impaired users. But, after much effort, it has become clear to me that CSS is not a magic bullet for this at all. First of all, tabular design is not as inaccessible as it's made out to be. Screen readers are very good at dealing with tabular design by now. Secondly, there are a lot of situations where CSS has no bearing on the issue. For example, if I have a budget tool that I want to update costs on the fly, that will wreak havoc on screen readers, regardless of whether CSS is used or not. (More generally, web standards are no magic bullet. For example, let's say we have a tool where most users will benefit from being able to click on an item and have a pop-up window appear with more information on the item. Now, some users will have JavaScript turned off, meaning that the budget item link should use TARGET=BLANK for those users. But according to HTML 4/XHTML 1 Strict, you cannot use TARGET=BLANK any more, because that would be mixing content and design. In theory, the W3C is absolutely right. Where the link opens is a design issue, and should be handled by manipulating the DOM, not in the anchor tag itself. But, unfortunately, theory leaves those users with JavaScript turned off with a much lesser experience, becuase they would benefit from viewing both the additional information in the pop-up window and the information they were viewing previously at the same time on the screen. Maybe that's the right trade-off to make, but it's still a trade-off.)
5) The idea that with different stylesheets you can support radically different user agents - Palm users, WebTV users, users with 640x480 resolution, users with 1024x768 resolution, screen readers, etc. - is a great idea. I question how many sites have actually put it into action, though. Let's be honest - how many site really have a need to deliver information to users across all those user agent types yet? And, if you do have such a need, you're probably a huge site where it may make more sense to - again - use an advanced CMS that can handle that by relying on custom conversion from XML to whatever template you have for the different user agents, rather than CSS.
6) CSS would become much more useful if we could get some of the features that were be
When the /. homepage is saved to desktop and then uploaded to validator.w3.org it registers 151 HTML 3.2 errors.
Geez. I mean I'm all for the geeky/nerdy/retro circa 1996 html "look" but similarly horrid code to match that wastes gigabytes of bandwidth...
This is actually a problem browser development. As a browser developer you need to second guess every idiot out there and try to make sense of what they ment when they borked their HTML.
Way back in the day there was a battle between Netscape and Microsoft, and Microsoft decided to start supporting a more lax standard. This made it easier to develop to their standard becuase it wasn't as picky.
Your attitude of the webserver only serving up webpages to be viewed in a browser is quickly being replaced with a more service oriented model which says that you never know what the client browser is going to be. With this new model there is a renewed need for standards because not every cell phone or pda can be expected to interpert borked HTML correctly. Also this doesn't even take into account that the output from a webrowser that needs to be read by things other than other browsers.
The prime examle of this last case is search engines. Now granted broken HTML doesn't effect your placement alot, but broken output which doesn't follow a standard does affect another computer program and application which is expecting a certain format. I can't write a computer program if I'm not certain on the input, and I (and the company I work for) doesn't have the same resources that Micrsoft and Netscape had to deal with trying to read the other developers mind and second guess what he ment by his borked output. (ask anyone who has done work in the web application/web services fields on how annoying shifting standards can be)
Fantasy remains a human right; we make in our measure and in our derivative mode... -- JRR Tolkien
CSSZenGarden is great and I use it as a source of inspiration; however, it does NOT allow you to create a template that can be re-used.
In most of the designs, custom images were made to replace the header text to get a nice look. It is a good trick, don't get me wrong, but this doesn't allow you to create a site with different content using the same template. You will have to generate new header images for every page you make.
Sunny
Be my Friend
I found that the difference is the compatibility of the hacks. At my former job, I actually created useable 300+ page site that relied entirely on CSS for layout. The hardest part was making it look the same in a variety of browsers/platforms. Borders would render differently, padding/margins were different, etc..
:)
Conversely, I can use tables and image spacers to layout a page and I can be guaranteed that it will look the same in a large variety of browsers because tables are very common. In fact, the only difference is that older versions of Netscape had non-zero defaults for cell-padding and cell-spacing.
I know that CSS can make for tidier/smaller pages. Maintenance isn't an issue since you can separate the content from the presentation with other technologies. The biggest reason to loosen up with the tables was how nested tables were interpreted by audio screen readers like Jaws. It was AMAZINGLY annoying with the nested tables, and I had difficulty getting through my own site that had several levels of mostly unnecessary nested tables.
In the end, my preference is a mixture of the two. Tables are quicker and easier and if I can easily use CSS to eliminate a table (or 12) then I will. My current employer relies heavily on tables and I'm trying to encourage us to look more into CSS but they like to reuse their code and designs from 4 years ago still.
The articles on A List Apart create a static HTML mockup of the front page. However, there's more to Slashdot than the front page, and it's not just a matter of copying that mockup onto the site and having done with it. The Template Toolkit templates have to be rewritten to use the new code, and similar new markup and CSS must be written for things like comments, the comment form, the nutty little boxes and so on.
CowboyNeal has said repeatedly that if someone was to submit a complete, working template he'd consider making use of it. Also, more recently it was claimed that someone was working on one. The software that powers Slashdot is an open source project, and Template Toolkit is not specific to Slashdot and pretty well documented. If it really bothers you, scratch your own itch and submit a patch.
Should I be suprised that I see no the mention of CSS3, let alone CSS2(everything is just stated as "CSS"), anywhere on Slashdot, the book's synopsis, reviews, or even the author's own website?
For all I know, it just teaches you Microsoft's faulty CSS1 specification they used back during the release of Internet Explorer 3.0 back in 1996, exciting! What could be better worse than this? Lots of things, I'm sure, but even Cascading Style Sheets For Dummies mentions CSS3 which Opera and Firefox/Mozilla support.
> The problem is that only browsers based on Mozilla code (Camino, Firefox, Netscape, etc.) have support for these standards.
A possible temporary solution is this one. On the long-term, I suggest sacrificing goats until the MSIE team makes a new, improved release. They've recently resurfaced, so maybe they're alive and coding on it, who knows :-)
Xenu brings order!