Slashdot Mirror


Styling Web Pages With CSS

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. 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 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.

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.

31 of 104 comments (clear)

  1. Fail by peterdaly · · Score: 5, Funny

    Fail.

    They missed the chapter on how to encrypt DVD.

    1. Re:Fail by MrEricSir · · Score: 2, Funny

      They could tell you, but they would have to sue you.

      --
      There's no -1 for "I don't get it."
  2. Yes! by Surrounded · · Score: 4, Funny

    My castle built of Web Design books is almost complete! I was getting worried I couldn't finish the second guest house and 3 story arcade, phew.

    1. Re:Yes! by Intron · · Score: 3, Funny

      Also, I would like to announce the 10,000th reference to CSS Zen Garden which by law has to be mentioned in every /. story about web design.

      --
      Intron: the portion of DNA which expresses nothing useful.
    2. Re:Yes! by fatphil · · Score: 4, Funny

      I ought to mention the CSS Zen Compost Heap then, as that never gets any references! (OK, that's blatent self-promotion, I won't deny it.)

      --
      Also FatPhil on SoylentNews, id 863
  3. W3 Schools by GordonCopestake · · Score: 5, Informative

    I always recommend the W3 Schools web site for beginners. It's free and contains enough info to get anyone off to a good start. http://www.w3schools.com/

    1. Re:W3 Schools by TheMightyFuzzball · · Score: 2, Informative

      I completely agree with this comment, I learned a LOT from w3schools, every now and then when I forget something it is a quick reference, really great site. I just wish they though XHTML by default though, other than that they are amazing!

    2. Re:W3 Schools by bluej100 · · Score: 2, Insightful

      Quite right. The interactive examples make it a far better learning experience than a book.

  4. lack of downloadable materials? by qtzlctl · · Score: 3, Informative

    View -> Source

    Solves it.

    1. Re:lack of downloadable materials? by jsnipy · · Score: 5, Informative

      Firebug -> inspect Solves it. Better.

      --
      -- if you mod me down, I will become more powerful than you can possibly imagine
  5. Dont' bash CSS... by Smidge207 · · 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=

    --
    Is it just my observation, or is eldavojohn an idiot?
    1. Re:Dont' bash CSS... by jollyreaper · · Score: 2, 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?

      --
      Kwisatz Haderach
      Sell the spice to CHOAM
      This Mahdi took Shaddam's Throne
    2. Re:Dont' bash CSS... by hattig · · 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.

    3. Re:Dont' bash CSS... by gfxguy · · Score: 4, 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.

      --
      Stupid sexy Flanders.
    4. Re:Dont' bash CSS... by Steauengeglase · · Score: 3, Insightful

      CSS isn't the problem, broken browsers are.

    5. Re:Dont' bash CSS... by Anonymous Coward · · 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 different combinations.

      I don't mind separating presentation from layout, etc. And there's a lot about CSS to like. But you shouldn't have to use "tricks" just to get basic things to work. It shouldn't be so "touchy". You shouldn't have to get it just right. It should be robust, tolerant and forgiving just like the HTML is was designed to augment.

      And most important of all to me, you should be able to tightly bind a style directly to an element such that it's guaranteed to apply AND nothing else will apply or override based on magical rules and priorities.

  6. Alternative suggestion by Smivs · · Score: 2, 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.

  7. The problem w/ CSS is complexity of use... by Smidge207 · · 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 simple layouts.

    Add cross-browser-specific nonsense and the whole thing simply bogs down.

    Yes, separation of data and presentation is desirable. Yes, it's POSSIBLE to do so. But all too often it takes round-after-round of testing and retesting, only to find that the Opera patch breaks IE (again).

    =Smidge=

    --
    Is it just my observation, or is eldavojohn an idiot?
    1. Re:The problem w/ CSS is complexity of use... by gfxguy · · Score: 3, 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.

      --
      Stupid sexy Flanders.
    2. Re:The problem w/ CSS is complexity of use... by secretcurse · · Score: 2, Insightful

      Wait, so a little bit above you say anyone that gripes about CSS is just griping because they're too dumb to use it. Now you gripe that it's too complicated to use. Are you just a troll?

      --
      I'm using all of my mod points to mod ancient memes down. Please join me.
    3. Re:The problem w/ CSS is complexity of use... by Anonymous Coward · · 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 layout code that would work across unknown viewport sizes. We've never had to do this before in any media. It's a hard concept to deal with as designers. Getting pissy with the architects for delivering (quite quickly) excellent code for this new reality is incredibly stupid.

      Real-world CSS is a fucking pain in the ass because our browser makers have consistently given us incomplete and broken CSS support, year after year since 1996. Take three browsers with three unique failures and we've lost nine key elements of a language of expression. Don't blame the CSS architects for that. It's a tribute to how powerful they made CSS that we've been able to use it at all.

      I mean my god, we still don't have full support for absolutely crucial expressions like min-width and max-width. It's a disgrace.

      What can be argued about is whether CSS was designed properly from the point of view of creating editors. The orginal idea was that your "browser" would be your editor. One port to view and to publish. You can do that with HTML. I suspect it's impossible to make WYSIWYG for correct CSS, and that's a real problem.

      This have given us the current web of professional publishers and amateurs using templates -- Flickr, WordPress, etc etc. In the end you've got to know how to hand-code CSS if you're going to make correct code. That's a big problem.

      I'm reluctant to blame the architects because of the timeframe they had to work in. The sudden explosion of table-layout meant they had to provide working code fast. And they did. How to make WYSIWYG for it was left for the future to figure out. But I don't see light at the end of the tunnel for that problem.

      Anyway, not trying to flame you directly Smidge. As you well know, dealing with this crap tends to make the passion rise.

  8. Head Wrapper by Cryogenic+Specter · · Score: 5, Insightful

    I recently devoted many hours to learning CSS and found a couple of things to be true.

    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.

    1. Re:Head Wrapper by sakdoctor · · Score: 2, 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.

  9. CSS is Awesome by Anonymous Coward · · Score: 4, Funny

    http://www.zazzle.com/css_is_awesome_mug-168716435071981928

    1. Re:CSS is Awesome by Steauengeglase · · Score: 3, Funny

      Damn coffee mug based browsers.

  10. Firebug by Lorde · · Score: 5, Informative

    If you're going to do web design with CSS, there's an awesome Firefox extension to ease the pain of constantly saving and reloading. Firebug (https://addons.mozilla.org/sv-SE/firefox/addon/1843) lets you inspect and edit HTML and CSS, among other things, in real-time while browsing. Once you start using it you really don't understand how you managed to survive without it.

  11. CSS Mug by ajayrockrock · · Score: 3, Funny

    CSS is Awesome!

    It's a joke, I love CSS. :)

  12. Not Just for Beginners by fm6 · · Score: 4, 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.

  13. The problem I had with CSS layout by elrous0 · · Score: 3, 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.

    --
    SJW: Someone who has run out of real oppression, and has to fake it.
    1. Re:The problem I had with CSS layout by unfasten · · Score: 3, Informative

      If you enclose your content in a main container (it's also possible to just resize and use ) you can center by giving this div a width then setting the margins like so:

      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;

  14. CSS has its problems by weston · · Score: 2, 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.