Styling Web Pages With CSS 104
r3lody writes "Styling Web Pages with CSS: Visual QuickProject Guide, by Tom Negrino and Dori Smith, helps the beginning web designer learn how to use CSS in a simple, easy-to-follow format. This being my first exposure to one of the Visual QuickProject Guides by Peachpit Press, I was both pleased and disappointed when I received this slim volume. I was pleased in the presentation and clear descriptions given to each aspect of Cascading Style Sheets (CSS). I was disappointed in the brevity of the text, and the lack of downloadable materials to use to follow the examples in the book." Read below for the rest of Ray's review.
Each chapter starts with a brief explanation of its subject, followed by the major topics introduced via large, colorful titles. Finally, any "Extra Bits" provide follow-up explanations or point to where you can get further information.
Styling Web Pages with CSS: Visual QuickProject Guide | |
author | Tom Negrino and Dori Smith |
pages | 144 |
publisher | Peachpit Press |
rating | 7/10 |
reviewer | Ray Lodato |
ISBN | 0321555570 |
summary | A beginner's guide to the proper use of CSS |
Before any CSS is discussed, there is a general introduction including how the book is structured, the sample web site to be created, and what tools will be useful to create the site. For the tools, the authors recommend at least a text editor (not a word processor) and your favorite browser. BBEdit and TextWrangler are suggested for Mac owners, while Notepad is okay for Windows. I personally use Notepad++, which has styling cues for both HTML and CSS (as well as many others), so I would recommend it for Windows users. To insure compatibility with the browser, Tom and Dori say you should have Internet Explorer, Firefox, and Safari. Strangely, Opera is barely mentioned in the book. I tested the examples using the first two. Finally, a true CSS editor might be useful, as it will provide you with your options. They suggested MacRabbit's CSSEdit for Mac users, or WesternCIV's Style Master for either Macs or Windows. I used Style Master 4.6 for Windows during testing.
After the introductory chapter, CSS is explained starting with a chapter on the basics, with simple guidelines for their use. Classes (which can be used many times) are contrasted with ids (which can be used only once per HTML file), and the benefits of using external style sheets versus internal styles is explained.
The next three chapters build upon each other to provide gentle instruction on how to layout and style the text and images. Formatting menus, tables and headings are tackled next, followed by a chapter devoted to browser differences. Finally, alternative menu and page formatting and CSS debugging is discussed.
All of the major concepts of CSS are presented so that a beginner can easily understand them. While some ways of utilizing CSS properly can be the subject of debate, the authors have chosen a rational approach that serves the basic web designer well. The result is a set of web pages that follow a simply understood design, yet ensures that the layout and format is isolated to the CSS style document, rather than the HTML.
Over and over, Tom and Dori provide useful links to web sites with additional information on the intricacies of CSS, as well as providing suggestions for programs to help you with massaging images and references to other books for more in-depth coverage.
The best way to fully understand what Tom and Dori are trying to explain is to replicate the example web site (Alpaca Repo). Unfortunately, there is no link in the book or on PeachPit's web site to a set of downloadable images and html files. The only way I was able to replicate most (but not all) of the examples was to look at alpacarepo.com. It has six pages, two style sheets, and two photos. The book shows other photos and more complete pages, so it's a partial solution at best.
Overall, Styling Web Pages with CSS: Visual QuickProject Guide is a nice introduction to the potentially confusing topic of the proper use of CSS. Many of the fancier techniques are avoided for the more common and useful ones. The short length of the book allows the beginner to avoid the feeling of intimidation that can accompany reading a 1,000 page text that covers everything you never wanted to know. Even so, I felt less than satisfied after I finished. I wanted a little bit more than I was given. Even if the book doubled in size, it would still be accessible yet it could then leave the reader with a feeling of contentment. As this is the first QuickProject book I've read, that may simply be the target they were shooting for.
One final wish for Peachpit: please include downloadable files that the reader can access to duplicate the Alpaca Repo website. I was continually frustrated when I wanted to replicate what I had just read about, yet was missing JPEG files or extensive text that I could use. Consequently, I never felt as though I had actually gotten the hang of CSS.
You can purchase Styling Web Pages with CSS: Visual QuickProject Guide from amazon.com. Slashdot welcomes readers' book reviews — to see your own review here, read the book review guidelines, then visit the submission page.
Fail (Score:5, Funny)
Fail.
They missed the chapter on how to encrypt DVD [cmu.edu].
Re: (Score:3, Funny)
They could tell you, but they would have to sue you.
Re: (Score:1)
Re: (Score:2)
Yes! (Score:4, Funny)
Re:Yes! (Score:4, Funny)
Re:Yes! (Score:4, Funny)
W3 Schools (Score:5, Informative)
Re: (Score:2, Informative)
Re: (Score:2, Insightful)
Re: (Score:2)
The interactive examples make it a far better learning experience than a book.
Not to mention the sheer coolness of that feature.
I've always found it ironic that there are so many books about the web. Authors trying to tell you how great the web is and what you can do with it, but not using it themselves. This author didn't even put his examples online. I stopped reading the review when I saw that.
Not Just for Beginners (Score:5, Informative)
Web design is something I don't do on a regular basis, so I often have to google for information on constructs and idioms I'm rusty on or never learned. Half the time I end up on the W3 Schools site. Each topic is nicely self-contained, simple, and clear, making the site an excellent reference source. Best of all, there's a dynamic HTML "try it yourself" feature which lets you quickly tweak an example and immediately see the results.
Over the years, this site has gotten slicker and added more and more content. All of which seems to be funded by a few non-obtrusive ads. Nice to see a web resource that provides a quality service and manages to make a living doing it.
Re: (Score:1)
--
Wise men speak because they have something to say; Fools because they have to say something - Plato
Re: (Score:2)
You might also try
http://reference.sitepoint.com/css [sitepoint.com]
lack of downloadable materials? (Score:3, Informative)
Solves it.
Re:lack of downloadable materials? (Score:5, Informative)
Re: (Score:1)
Go to ANY website and view it's source. Figure out why some things in the code work differently than others. Play around with the CSS and see how each change either breaks/shifts elements and gives you insight into the whole process. There's more "live" material to study on the web than there will ever be in a book.
Re: (Score:2)
Uh, did you notice that this is a printed book?
Re: (Score:2)
Dont' bash CSS... (Score:5, Insightful)
I've found a lot of people who are stuck on table layouts are stuck because they can only think of HTML pages in terms of how tables work. You have to break free from that mindset and CSS design makes much more sense.
After designing sites for 10 years, 3 of those in the dark ages of tables, I wouldn't touch tables with 100 foot pole. But if using tables makes it easier for you, more power to you. It's just really sad to see people bash CSS because it's too hard for them to implement.
=Smidge=
Re: (Score:2)
This also applies to the idea of using tables.
Re: (Score:1, Insightful)
You're right, there's nothing wrong with tables. We should be bashing people who use tables for layout. (Over the head with a blunt object, if necessary.)
Re: (Score:1)
We should be bashing people who use tables for layout.
I do it all the time. Beats shaky CSS implementations that fail every time cross-browser. My pages appear nearly identical in every browser (including text-browsers with support for tables), in emails, and on portable devices. Sorry but, there is no reason to change what works for the benefit of utopian css purists.
Re: (Score:2)
Whether a web developer can write semantically correct HTML is of little import if browsers can't render it. How many web sites have to worry more about ADA compliance than being rendered correctly?
Re: (Score:2)
I would suggest that if a web developer is incapable of making browsers render the same site consistently using CSS then they have a great deal more to learn. The problems with cross browser rendering issues have long since been solved.
Re: (Score:1)
Tables are a relic, although I agree with the other posters that for stuff that's purely tabular data tables are fine. Although there is display:table...
Re: (Score:1)
or actually, does it work in ie6?
Re: (Score:2)
But if using tables makes it easier for you, more power to you. It's just really sad to see people bash CSS because it's too hard for them to implement.
I was under a strange impression that CSS could be used for styling tables (minus cellpadding and cellspacing). Silly me. :)
Re: (Score:3, Insightful)
I've found a lot of people who are stuck on table layouts are stuck because they can only think of HTML pages in terms of how tables work. You have to break free from that mindset and CSS design makes much more sense.
After designing sites for 10 years, 3 of those in the dark ages of tables, I wouldn't touch tables with 100 foot pole. But if using tables makes it easier for you, more power to you. It's just really sad to see people bash CSS because it's too hard for them to implement.
I've not been doing direct web design for a while and I just use tables whenever something comes up simply because I know it works. I've tried looking into other techniques but it usually boils down to "I have enough time to do it a way I know works but not enough time to research a better way."
I know awesome stuff can be dones, Garden of CSS proves it, but I'm surprised I don't see those techniques applied on other sites anywhere. Where do the designers who created those templates go for work?
Re: (Score:2)
Where do the designers who created those templates go for work?
They build houses with CSS [designdetector.com]?
Re: (Score:1)
While a house built with css is quite epic, the way he did it (making thousands of 1px high divs to simulate gradients) is not very efficient (but it is very creative).
It is nice to know that gradients can be made this way in an emergency situation if for some reason you couldn't fire up Paint Shop Pro and make a gradient in 20 seconds and set background-repeat:repeat-x.
Re:Dont' bash CSS... (Score:4, Insightful)
Well for showing tabular data, HTML tables are what you should use. I think a lot of people hear "don't use tables" and don't hear the "for layout" at the end.
CSS layouts are actually quite easy until you want a non-trivial layout (there are some gotchas that have simple answers, and there are cross-browser compatibility issues with IE6 usually), and the latter is unlikely to happen for a person who isn't doing web design as the primary role. It's worth investing a few hours to learn it, it makes the HTML so much quicker to write, and easier to read.
Re:Dont' bash CSS... (Score:5, Interesting)
There's a few things, IMO, that CSS simply can't do for layouts that tables solve easily, or if it can be done in CSS, it becomes a lot more complicated and "hackey" than using simple tables.
I avoid tables, but that doesn't mean they aren't the best way to accomplish some layouts, and the only way to achieve certain goals. I think the worst problem is when you get nested table within nested table.
I've actually had people tell me that for certain dynamic content I should use javascript to adjust CSS just to avoid using a table, as if that makes things better.
Most of the problems I've encountered with CSS has to do with centering content.
A simple one or two cell table isn't going to ruin any page readers.
Re: (Score:2)
There's a few things, IMO, that CSS simply can't do for layouts that tables solve easily, or if it can be done in CSS, it becomes a lot more complicated and "hackey" than using simple tables.
I avoid tables, but that doesn't mean they aren't the best way to accomplish some layouts, and the only way to achieve certain goals. I think the worst problem is when you get nested table within nested table.
I've actually had people tell me that for certain dynamic content I should use javascript to adjust CSS just to avoid using a table, as if that makes things better.
Most of the problems I've encountered with CSS has to do with centering content.
A simple one or two cell table isn't going to ruin any page readers.
Dunno who the muppet was who modded you troll but he's obviously a wanker.
The cross-browser stuff kills me. Back when I did do web stuff full-time, CSS was around but it remained more theoretical than practical because no two browsers. It was like what Gandhi said when asked about western civilization: "I think it would be a good idea."
Re: (Score:2)
Dunno who the muppet was who modded you troll but he's obviously a wanker.
Yeah... I didn't want to whine about it, though, although I still can't see how it got that moderation.
The cross-browser stuff kills me. Back when I did do web stuff full-time, CSS was around but it remained more theoretical than practical because no two browsers.
I develop intranet sites and I work on Linux; most (not all) of the uses use IE, and I keep forgetting to throw in the "disappearing text" IE bug fix... extra CSS modifier to
Re: (Score:1)
Re: (Score:2)
Re: (Score:2)
I've found that there's not a lot of easily searchable information regarding converting to pure div usage (maybe 2-3 sites that don't go into nearly enough detail). Any good links?
I was considering to put one together, a really complete reference,.... BUT I would build the page out to have a table layout, with div wrappers inside each td holding the content, and then see how many emails I get about it. ;)
Re: (Score:2)
Re: (Score:2)
CSS and tables are not opposites. CSS can be used to style tables.
These days, anyone doing web page development without CSS, tables or no, probably just woke up from a multi-year coma.
Re: (Score:2)
Re: (Score:2)
If you're going to design HTML emails, you'd better use tables. CSS support in mail clients is spotty at best.
I suspect that most people use tables because either that's how their WYSIWYG editor does it or they tried to do it in CSS and ran into the multitude of problems doing something that should be simple but CSS makes excruciating. Reliably centering your container DIV is not perfectly straightforward, and that's about as rat-simple as you can get.
Re: (Score:2)
That's my opinion, as well... most of the problems revolve around centering, but multi-column displays can be very "hackey" with CSS, especially with dynamic content in which you can't tell which column will be the tallest.
I think nested tables are terrible, but a simple table for layout works a lot better than really complex CSS that doesn't ever seem to do quite what you want anyway, and is inconsistent between browsers.
Re: (Score:2)
You're not alone my.... ;)
http://giveupandusetables.com/ [giveupandusetables.com]
Re: (Score:2)
I've finally gotten used to thinking in CSS, and can create most common layouts from memory and (usually) in a non-hacky way (maybe one or two container divs, but nothing too atrocious).
I just wish the purist dipshits would let us have float: center*, and vertical centering while they're
Re:Dont' bash CSS... (Score:4, Insightful)
CSS isn't the problem, broken browsers are.
Re: (Score:2, Insightful)
I don't care who's fault it is, I just want to code something once and have it look *reasonably similar* all platforms. Hacky code that is short and simple is better than complicated, "elegant" solutions.
I've been using CSS for years and am one of the "complainers". It seems to have been conceived *by* graphics artists, *for* graphics artists. Look at the terms they use: "styling pages", like it's hair or something. I *BUILD* pages out of nerdy, reusable components that need to render cleanly in lots of dif
CSS has its problems (Score:3, Insightful)
Even in browsers where the support is great, CSS has its problems when it comes to layout. There are some things broken in the spec.
It's a fantastic tool, I'd rather have it than not, but sometimes, tables are a better tool, and they'll likely remain that way.
Re: (Score:2)
I think too many people get obsessed about being anti-tables because some people have abused them in the past for layout. But that doesn't mean tables don't have their place in a modern website.
Re: (Score:2)
This is true. Recently I was doing the database and related php code for an autoparts site. To display part #, make/model/year, and price, I had a PHP loop that printed the output to a table, which was in a div with classes added to the various elements, and handed it off the graphics people. The designer went ape-shit because I had defiled his grand design with tables, and how tables should never appear in a "web 2.0" site and some other bullshit.
I don't know what the hell they teach in design school,
Re: (Score:1)
I understand the argument, CSS is presentation, HTML is a description or holder of data.. Tables for tabular data becuase it descibes it, CSS for layouts and position becuase it presents it.. But honestly, choose the best solution for the situation. IF you've got a designer that can put your three page static marketing site up in a table layout in 2 hours, I say problem solved. It pays to understand the technology, but also pays to use common sense in decision making for breaking the rules.
This rant was
The problem I had with CSS layout (Score:4, Informative)
The last time I tried going to CSS from table layout, the thing that really frustrated me was that I couldn't do what seemed like a very simple thing. I couldn't center my page. With table layouts, laying out my page on a 700 or 1000-pixel-wide table, all I had to do was center said table to account for higher resolution desktops. I never could figure out how to do that with the absolute positioning in CSS. I could put the elements together with a nice layout, but I had to do that by absolute pixel specifications. There was no way to "group" the page together and then center it for higher resolutions. The result was a left-lopsided page at higher resolutions (as opposed to a nice centered page with a table layout).
Now maybe I was just missing something or maybe something has come along to fix that since. But that was one of the reasons I stuck with table layouts, pain in the ass that they are. If anyone can enlighten me on how to do this in CSS, I'm all ears for sure.
Re: (Score:3, Informative)
div#container {
margin: 0 auto;
width: 700px;
}
This will set the left and right margins to auto and center the content. The following will also work:
margin-left: auto;
margin-right: auto;
Re: (Score:2)
Re: (Score:2)
It's better to use floats than use absolute positioning; it lets you use auto margins, and you'll have a lot more flexibility with your containing content.
Stay Tuned.... (Score:1, Funny)
Alternative suggestion (Score:3, Informative)
While the reviewed book sounds useful, I got my first real understanding of CSS from "CSS-The Missing Manual" by David Sawyer McFarland (O'Reilly). This book probably goes into more detail than the reviewed book, but keeps it simple and keeps it fun. Also there is plenty of on-line support and referencing. Before, my CSS was patchy but this book brought together all the loose threads really well. I'm sure it would also be of great help to those with little or no experience of CSS.
Re: (Score:1)
Re: (Score:1)
The problem w/ CSS is complexity of use... (Score:2, Insightful)
Maybe in a few years CSS (and the browser base) with catchup, but the blue-sky designers of CSS did practically everything in their power to make CSS layouts difficult (if not impossible) to use.
Everything from the infamous box model (padding the INSIDE of a box requires a change in it's OUTSIDE dimensions? Excuse me, WTF?) to positioning nonsense (the height of an absolutely positioned object has no effect on its container) contribute greatly to the number of hacks and other measures needed to create even
Re: (Score:1, Interesting)
Re:The problem w/ CSS is complexity of use... (Score:4, Insightful)
Maybe in some (or even most cases), but with the complaint about padding and the box model, he's spot on... it's right there in the spec and it's absolutely ridiculous.
Re: (Score:2, Insightful)
Re: (Score:2, Insightful)
(sigh) The content area is the core box. Padding, border, and margin are optional areas, and adding any areas adds to the effective layout size. But the specified width and height of the box always applies to the content area. It cannot apply to anything else because everything else is optional.
It's only logical. People who don't get it somehow think the border, an optional visual element, delineates the "edge" of a box.
CSS itself is difficult because it's powerful. So be it - the architects had to make lay
Re: (Score:1)
Re: (Score:1)
The padding mentality is indeed different from the one we had on tables. Whether increasing padding makes the box enlarge or simply shrinks the available content inside it, is (for me), a matter of arbitrary choice. However, I was, too, very comfused and felt very wrong about it when I first encountered it.
If the inside and outside box are floated, then the outside box will stretch. You can then remove the "floatness" in the next div (with float:none). But you already knew that, didn't you? :)
Head Wrapper (Score:5, Insightful)
1. W3Schools is way useful.
2. browser differences make using CSS a pain in the butt.
3. using CSS makes for tight HTML that you can easily read and write without a WYSIWYG editor.
4. ie6 sucks
5. ie7 sucks
6. Make your site work with Firefox and then break it to work with IE.
7. Wrapping your head around CSS and all of the intricacies of floating elements, fluid site design and ADA considerations is a little tough and a lot frustrating, but once you understand it, you wonder why anyone would do it another way.
Re: (Score:2)
Shame that I don't have any mod points, as you've wrapped up everything which is wrong with CSS.
It's an real shame, because CSS's boxing model is an beautiful idea. It's just an shame that the 'biggest' implementations are so poor that using 'tables' is often the easier solution.
Re: (Score:3, Informative)
I love a good IE or MS bash as much as the next person, but IE8 CSS support is vastly improved, bordering on satisfactory.
They even added a handy "make page look like shit" button for IE users who get nostalgic.
Re: (Score:1)
Bordering indeed (Score:2)
I love a good IE or MS bash as much as the next person, but IE8 CSS support is vastly improved, bordering on satisfactory.
Bordering on satisfactory for 2004. One of the world's biggest software companies, billions and billions of dollars of resources has managed to finally... catch up to where everybody else was five years ago. In the meanwhile, there's going to be no canvas support, they've made changes with VML that make using it for Canvas and other things more difficult, they're missing web fonts and ro
Re: (Score:2)
CSS is Awesome (Score:4, Funny)
http://www.zazzle.com/css_is_awesome_mug-168716435071981928
Re:CSS is Awesome (Score:4, Funny)
Damn coffee mug based browsers.
Re: (Score:2)
Looks like it's the code's fault, actually. Possibly a div container with floated contents and poorly-thought-out overflow control. Things like that are pretty damn common, especially if you start cranking up the text size in your browser.
They're also not likely to go anywhere unless managers and clients start valuing extremely high accessibility over prettier, more precisely laid out pages with somewhat lower accessibility. God knows I've made pages that go all to hell if you set the font size too high,
Firebug (Score:5, Informative)
Re: (Score:1)
Re: (Score:2)
Re: (Score:2)
Agreed. As a site developer, I will SWEAR by Firebug.
OK. Please do so.
CSS Mug (Score:4, Funny)
CSS is Awesome! [zazzle.com]
It's a joke, I love CSS. :)
Re: (Score:1)
Don't Blame CSS, Blame... (Score:1)
I've ran into numerous web workers who still prefer to use tables. Often times they are either beginners or w
Less is More! (Score:2)
> I was disappointed in the brevity of the text, and the lack of downloadable materials to use to follow the examples in the book.
Being of 144 pages I think is a good size. Most of the books of > 200 pages are just filled with material that fits better in web references.
CSS is not a complex topic, so a hundred of pages should be more than enough for a good explanation. BTW, I agree with your other complain.
Now, a bit OT, but every time I see a diminishing necessity of using or learning the CSS detail
Re: (Score:1)