6 ms·
CSS Techniques I Wish I Knew When I Started Designing Websites
- nopassrecover 17y agoIncidentally there is incorrectly styled example code in this post that breaks out of the bounds of the page.
- deleted 17y ago[deleted]
- lisper 17y agoWhich is further evidence that CSS still should not be used for layout. http://www.flownet.com/ron/css-rant.html http://www.flownet.com/ron/css-rant.html (How do you do links in HN comments? Markdown syntax doesn't seem to work.)
- edd 17y agoYou write a url with a http:// http:// and it will turn it in to a link for you. See the formatting document[1] for all the formatting available to you. [1]:http://news.ycombinator.com/formatdoc http://news.ycombinator.com/formatdoc
- lisper 17y agoOh, sorry, that's not what I meant. What I meant was how do I make a link with some text other than the URL. (Apparently it's not possible in HN comments.)
- grinich 17y agoI think the reason is so you know where the link goes before clicking, which prevents rickrolling.
- telemachos 17y agoCan't help but ask: is rickrolling a serious concern around here? If so, a followup question: Really?
- mcav 17y ago1. No. See #2. 2. Yes.
- isleyaardvark 17y agoI prefer this rant: http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/ http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-s... CSS still has the advantage over tables of better separating content from presentation. A big problem with CSS is it's still awkward to deal with layout, so it's somewhat understandable some people just prefer to give up and use tables.
- lisper 17y agoThat is indeed a better rant :-)
- rimantas 17y agoOnly if you do not know CSS or do not know the capabilities of modern browsers. But in this case you should be not writing HTML or CSS at all.
- rimantas 17y agoI guess I should clarify a bit: every modern browser (and in this case IE8 is also counted in) has support for display: table-* property. On the other hand, 2003 was the last year when I did layout using table. I did pixel-perfect cross browser layouts with CSS five years ago, and they had to work in IE5 back then. So yes, I do know what I am talking about and stand by my position.
- fhars 17y agoI did pixel-perfect cross browser layouts with CSS five years ago Using just semantic markup, or with lots of divs within divs that have no justification to be there except to allow styles to be attached to them? "Great pyramids of DIV" based layout is at most marginally better than table based layout.
- rimantas 17y agoYep, mostly semantic markup. Sure then you could not avoid some extra div there and here, but that did not come even near the <td> mess. I've tried to stay away from divitis and classitis as much as possible.
- GHFigs 17y agoAnd your rant is still misinformed, one-sided, and extremely overreaching in its conclusions.
- ubernostrum 17y agoSadly, you probably won't win. People who can recite from memory dozens of combinations of obscure compiler flags to make their code build have collectively decided that CSS is just too hard and inconsistent to learn and work with. (or, in the case of the particular HN username here, people who'd like you to think they know all the differences between multiple Lisp families and multiple implementations within families)
- lisper 17y agoAre you referring to me? I certainly don't want anyone to think that I "know all the differences between multiple Lisp families and multiple implementations within families". Life is much too short to spend a lot of cycles on trivia.
- walkon 17y agoFor me it is easier to understand that line without it wrapping.
- nopassrecover 17y agoPerhaps but it's visually incorrect. If readability was the primary concern then the extending line should have a background, ideally in a way that fits the design (say having the appearance of a tab on the side of a notebook).
- josefresco 17y agoDie troll die. Seriously that's the lamest sort of reply we see here on Hacker News. Sniping other peoples work is low (this isn't Slashdot).
- nopassrecover 17y agoWhen your post is about your expertise in CSS you better be demonstrating expertise in CSS. While we're on the subject of adding little value, the impression I got from the article was that this was yet another Top-10 style compilation of commonsense that you could find on other sites like A List Apart. Instead, I would prefer to read more about the OP's actual experiences and growth, i.e. something unique and original. There is nothing troll-like about criticism, particularly when an improvement is suggested. Instead, I would look towards yourself and your "Slashdot" witch-cry.
- josefresco 17y agoSo only those who are perfect are allowed in a debate? Somehow (despite my karma hit) I doubt I'm the only one who doesn't believe that. Sometimes we can discuss ideas even if we aren't fully compliant ourselves.
- nopassrecover 17y agoYou've twisted my intention and words and the karma hit is probably because of your unsupported attack. I actually assumed the author had some authority and was pointing out a) a small error needed correcting and b) that even the best have trouble taming CSS. For reference i'm slowly building up articles about things I don't pretend to be an authority on which you can happily attack in due course.
- RevRal 17y agoI own a coffee mug with a similar problem ! http://www.zazzle.com/css_is_awesome_mug-168716435071981928 http://www.zazzle.com/css_is_awesome_mug-168716435071981928
- nopassrecover 17y agoHahaha love it!
- samdk 17y agoI generally recommend HTML Dog (http://htmldog.com/ http://htmldog.com/) to people learning HTML and CSS. It's fairly comprehensive (from what I remember it covers just about everything mentioned in the article), teaches good practices, and has helpful examples.
- ilovecomputers 17y agoAfter learning HTML and CSS, a good followup book to recommend is Designing with Web Standards by J. Zeldman (http://www.zeldman.com/dwws/ http://www.zeldman.com/dwws/). Even though it's written for individuals who are designers or are serious about web design, it has many helpful tips and information such as the box model that the OP discussed.
- angelbob 17y agoWhoah. CSS Reset Styles make perfect sense, and I can totally see why people use them... And yet, I'd never thought of that, and certainly never seen the nice comprehensive one he posted (no, not the one-liner :-) Apparently I need to start doing that. Like, yesterday.
- robin_reala 17y agoThey don’t really. If you’re browser checking your build then you should uncover any inconsistencies that your actual stylesheet hasn’t covered. Once you’ve fixed those then you have no need for the reset stylesheet in the first place.
- euroclydon 17y agoI guess you're correct, but it just feels better to me knowing I'm working from a clean slate, then accepting whatever padding, line spacing, font size, and margins that browser though would look nice. I found that my CSS skills really improved when I added a style reset and was forced to contemplate all the styles which were previously given to me without consideration by the browser.
- robin_reala 17y agoThat’s a fair point, they are useful as a learning aid. It’s just important to bear in mind that not only are reset stylesheets not required in the long run but they’re actively inefficient.
- ubernostrum 17y agoA reset is a form of future-proofing. If a new browser, or new browser version, appears with its own ideas about default values for margin, padding, etc., then so long as its CSS support is decent your existing reset will make it either mostly or completely work from day one. This does not mean "never do browser testing" -- you should (and you should do it smartly, based on what's known about both the browsers and your demographics) -- but it does mean that you're less likely to get caught with your pants down. Also, for my money, the best regime out there for classifying browsers and organizing a testing system is Yahoo's graded browser support. And oddly enough, they seem to like resets...
- rapind 17y agoFYI you linked to blueprint CSS as "Google BluePrint CSS & Resets". Blueprint CSS is not by Google, it was just hosted on Google Code like many other open source projects. See http://www.blueprintcss.org/ http://www.blueprintcss.org/
- dpcan 17y agoThe one bit of CSS I wish I had learned early on: html { overflow-y: scroll; } This puts the scroll bar on the right of the page regardless of whether or not the page needs to scroll. I hate watching my page bump 20px to the left just because I went from a page that didn't scroll to a page that did.
- deleted 17y ago[deleted]
- Semiapies 17y agoSomething not mentioned that Eric Meyers and others have noticed about his CSS reset script - style your a:focus, which it completely hides. Without a:focus styling, someone using the keyboard can't tell what link s/he's tabbed to.
- Semiapies 17y agoAnother trick I've seen that I wish I'd come across long ago - a particular use of IE conditional comments to avoid having to break out IE CSS fixes into different style sheets: <!--[if IE 6]><body class="ie ie6"><![endif]--><!--[if IE 7]><body class="ie ie7"><![endif]--><!--[if !IE]>--><body><!--<![endif]--> This applies "ie" and version-specific classes to the body tag in IE browsers. Therefore, if something about a button tag doesn't look right in IE in general, I can use the ".ie button" selector to apply a fix right below my button styling. If it's just IE 6 giving me grief, I can use the ".ie6 button" selector.
- somecanuck 17y agoBrilliant!
- Vindexus 17y agoOne way I get around the box model problem is to add a .padding div to the inside of an object and apply any padding to that. It adds an extra div which some people don't like, but I don't mind and it beats dealing with box model weirdness. html: <div class="300pixelbox"> <div class="padding"> This is 300 pixels wide and has 10px padding. </div> </div> style: .300pixelbox { width: 300px; } .300pixelbox .padding { padding: 10px; }