Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Image

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

*

This discussion has been archived. No new comments can be posted.

Styling Web Pages With CSS

Comments Filter:
  • Fail (Score:5, Funny)

    by peterdaly ( 123554 ) * <{petedaly} {at} {ix.netcom.com}> on Wednesday April 29, 2009 @01:51PM (#27761885)

    Fail.

    They missed the chapter on how to encrypt DVD [cmu.edu].

  • Yes! (Score:4, Funny)

    by Surrounded ( 1487683 ) on Wednesday April 29, 2009 @01:52PM (#27761899)
    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.
  • W3 Schools (Score:5, Informative)

    by GordonCopestake ( 941689 ) on Wednesday April 29, 2009 @01:52PM (#27761905) Journal
    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/ [w3schools.com]
    • Re: (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!
    • Re: (Score:2, Insightful)

      by bluej100 ( 1039080 )
      Quite right. The interactive examples make it a far better learning experience than a book.
      • by fm6 ( 162816 )

        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.

    • by fm6 ( 162816 ) on Wednesday April 29, 2009 @03:15PM (#27762911) Homepage Journal

      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.

    • by jrade ( 1522777 )
      Agreed, w3schools [w3schools.com] is best.
      --
      Wise men speak because they have something to say; Fools because they have to say something - Plato
    • by TLLOTS ( 827806 )

      You might also try

      http://reference.sitepoint.com/css [sitepoint.com]

  • by qtzlctl ( 1538903 ) on Wednesday April 29, 2009 @01:55PM (#27761935)
    View -> Source

    Solves it.
  • Dont' bash CSS... (Score:5, Insightful)

    by Smidge207 ( 1278042 ) on Wednesday April 29, 2009 @01:58PM (#27761957) Journal

    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=

    • It's just really sad to see people bash CSS

      This also applies to the idea of using tables.
      • Re: (Score:1, Insightful)

        by Anonymous Coward

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

        • by Anonymous Coward

          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.

    • 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)

      by jollyreaper ( 513215 )

      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?

      • Where do the designers who created those templates go for work?

        They build houses with CSS [designdetector.com]?

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

      • by hattig ( 47930 ) on Wednesday April 29, 2009 @02:33PM (#27762355) Journal

        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)

          by gfxguy ( 98788 ) on Wednesday April 29, 2009 @02:47PM (#27762495)

          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.

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

            • by gfxguy ( 98788 )

              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

    • by xonar ( 1069832 )
      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?
      • by Intron ( 870560 )
        Actually, the W3C tutorial [w3.org] is not a bad place to start. They seem to think they know something about CSS.
      • 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. ;)

      • A List Apart [alistapart.com] has some very good pure CSS layout guides. This particular link is for a layout with header and footer, fixed width left and right columns, and a "fluid" center content section.
    • 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.

    • by bugbeak ( 711163 )
      Well, if one has to constantly modify CSS because different browsers interpret the same code differently, it's no wonder some people bash it. Heck, even some people who have been using CSS for quite the while bash it.
    • by rho ( 6063 )

      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.

      • by gfxguy ( 98788 )

        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.

        • You're not alone my.... ;)

          http://giveupandusetables.com/ [giveupandusetables.com]

        • 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'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

    • by Steauengeglase ( 512315 ) on Wednesday April 29, 2009 @02:55PM (#27762617)

      CSS isn't the problem, broken browsers are.

      • Re: (Score:2, Insightful)

        by Anonymous Coward

        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

      • by weston ( 16146 )

        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.

    • And what about bashing tables? Tables are part of the XHTML spec and should be used for tabular data.

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

    • 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

    • by elrous0 ( 869638 ) * on Wednesday April 29, 2009 @04:36PM (#27764049)

      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)

        by unfasten ( 1335957 )
        If you enclose your content in a main container <div> (it's also possible to just resize and use <body>) 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;
        • by elrous0 ( 869638 ) *
          Wouldn't that make it impossible to position elements precisely though? Without absolute positioning, the graphics and layout drift all over the place.
          • 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.

  • by Anonymous Coward
    This is just a shameless plug for my upcoming book entitled, Why the World Needs Another Book on CSS
  • by Smivs ( 1197859 ) <smivs@smivsonline.co.uk> on Wednesday April 29, 2009 @02:06PM (#27762043) Homepage Journal

    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.

  • 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)

      I think that you have it all wrong. The complexity is not in the CSS standard, it is in the IMPLEMENTATION that was non standard across browsers.
    • Re: (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?
    • Re: (Score:2, Insightful)

      by Anonymous Coward

      (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

      • If you want a wysiwyg editor for CSS, I think that Stylizer [skybound.ca] comes pretty close. I am a happy owner of this software. As a fulltime C++ programmer / part-time DJango [djangoproject.com] developer I don't have time to learn / edit CSS any other way.
    • 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)

    by Cryogenic Specter ( 702059 ) on Wednesday April 29, 2009 @02:32PM (#27762345)
    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.
    • 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.

    • by djbckr ( 673156 )
      Please, for the love of God, just use the Yahoo User Interface [yahoo.com]. Specifically use the Reset Font Grids. Makes the browser incompatibles almost non-existent.
  • by Anonymous Coward on Wednesday April 29, 2009 @02:49PM (#27762523)

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

    • by Steauengeglase ( 512315 ) on Wednesday April 29, 2009 @03:12PM (#27762845)

      Damn coffee mug based browsers.

      • 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)

    by Lorde ( 1535053 ) on Wednesday April 29, 2009 @02:53PM (#27762583)
    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.
    • Yes, firebug is a must! There is also a tool for IE7 (built into ie8), I think that it is called IE Developer Tools. It is useful too. It is by far not as good as Firebug, but you do not have that as an option in IE.
    • Agreed. As a site developer, I will SWEAR by Firebug.
  • CSS Mug (Score:4, Funny)

    by ajayrockrock ( 110281 ) on Wednesday April 29, 2009 @03:00PM (#27762667) Homepage

    CSS is Awesome! [zazzle.com]

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

  • browsers with poor CSS support aka Internet Exploder. Almost always, if somebody is complaining about how difficult CSS is, it's related to the time they had to waste getting something to render properly in IE. Now we're blessed with IE8 which contains it's own bastardized versions of IE8-6 and IE8-7 which I've found have inconsistencies with their native IE6 and IE7 counterparts. Oh the humanity!

    I've ran into numerous web workers who still prefer to use tables. Often times they are either beginners or w
  • > 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

    • by eherot ( 107342 )
      I don't know about you, but I still encode all of my JPEG files by HAND using STONE TABLETS and I ENJOY IT!

Scientists will study your brain to learn more about your distant cousin, Man.

Working...