Some CSS "must knows" from me, and please share yours
Collapse
X
-
-
i've just started messing around with AJAX not too long ago. at the moment it is more of a curiosity to me than anything, but i think i am going to incorporate some of it's functionality in to one of the current projects i am working on.
it makes life a hell of alot easier than writing all kinds of wacky java functions myself, and while it seems i will still need to augment it with custom java work, i don't think it will be nearly as much as before. (i hate java. i have never had any patience for any language that is case sensitive of requires ; to terminate lines, but for client side functionality, you can't beat it).
other than that though i don't really utilize all that much CSS. i am slowly starting to incorporate it more and more as needed, but i still do things relatively old school. old habits die hard. ;)Cry havoc and let slip the dogs of war.Comment
-
I cannot lie I have not built a site from scratch in a while and #1 saved me $30. I was about to pay a guy to remind me how to get the cross browser compatibility. Maybe I just smoke to much, Ya never can tell. Thanks alot for the free tip, the rest I had fresh in my memory so it wasn't helpful to me but Im sure someone else will find something useful.Comment
-
Comment
-
Comment
-
Floats are fragile and I hate to rely on it for my positioning.... good thing they have position: I use position 90% of the time to build sites.
A lot of the CSS that I see out there is so div heavy, it's the same as using tables. Try to use the least amount of divs. Don't forget that every standard tag can have css applied to it...
I didn't see this tip out here so here's my 1 cent
Code:h1#branding { width: 200px; height: 200px; background: url(../images/banner.jpg) no-repeat; display: block; text-align: -9999px; }Comment
-
-
I made a small typo on that one...Floats are fragile and I hate to rely on it for my positioning.... good thing they have position: I use position 90% of the time to build sites.
A lot of the CSS that I see out there is so div heavy, it's the same as using tables. Try to use the least amount of divs. Don't forget that every standard tag can have css applied to it...
I didn't see this tip out here so here's my 1 cent
Code:h1#branding { width: 200px; height: 200px; background: url(../images/banner.jpg) no-repeat; display: block; text-align: -9999px; }
text-align: -9999px;
should really be
text-indent: -9999px;Comment
-
potter, stop shitting on a good thread.
As StuartD said, a DOCTYPE does have everything to do with how a web page is rendered. You say it doesn't matter and it will not effect the appearance of a web page, but what you clearly don't understand is that DOCTYPE's are used to tell the client how to render a web page.Originally posted by potterYes, there are differences. Differences in how the code is written, not in how a layout will be displayed in a browser.
So don't forget to add a DOCTYPE
Also your CSS attributes are old school bro. Those ones have pretty much been around forever and you probably wouldn't notice a difference in the rending of code as basic as yours. Try using some more advanced CSS features such as those in HTML5.Originally posted by World Wide Web ConsortiumWhy specify a doctype? Because it defines which version of (X)HTML your document is actually using, and this is a critical piece of information needed by browsers or other tools processing the document.
For example, specifying the doctype of your document allows you to use tools such as the Markup Validator to check the syntax of your (X)HTML (and hence discovers errors that may affect the way your page is rendered by various browsers). Such tools won't be able to work if they do not know what kind of document you are using.
But the most important thing is that with most families of browsers, a doctype declaration will make a lot of guessing unnecessary, and will thus trigger a "standard" parsing mode, where the understanding (and, as a result, the display) of the document is not only faster, it is also consistent and free of any bad surprise that documents without doctype will create.
Here is your prove. Maybe you should read up on the different formatting standards for each DOCTYPE.Originally posted by potterIf you want to somehow prove you're right. Just show me one example of a layout written for one doctype, and then have it look different in another doctype. It would end the discussion, and should be real simple for you to do since you say doctypes have effects on floats, margins, 0px, or positioning.
I suggest you read the following article as well:
Fix Your Site With the Right DOCTYPE!
Written by Jeffery Zeldman who is a huge advocate of web standards.
So, did you actually read what I wrote?Originally posted by Jeffery ZeldmanDOCTYPEs are a key component of compliant web pages: your markup and CSS won’t validate without them.
Using an incomplete or outdated DOCTYPE—or no DOCTYPE at all—throws these same browsers into “Quirks” mode, where the browser assumes you’ve written old-fashioned, invalid markup and code per the depressing industry norms of the late 1990s.
In this setting, the browser will attempt to parse your page in backward–compatible fashion, rendering your CSS as it might have looked in IE4, and reverting to a proprietary, browser–specific DOM. (IE reverts to the IE DOM; Mozilla and Netscape 6 revert to who knows what.)
Clearly, this is not what you want. But it is often what you’ll get, due to the preponderance of incorrect or incomplete DOCTYPE information this article hopes to correct.
Not it's called a web standard and a DOCTYPE is clearly something you didn't, but hopefully now to understand.Originally posted by potterYou're telling me you'll code a layout that doesn't work properly. But setting the doctype to strict makes it suddenly work? It's just ludicrous.
Wrong, because it wouldn't be 'proper' without that W3C standard.Originally posted by potterProperly written code also has nothing to do with w3c valid code.
Code structure and design should never be intertwined. However, this is a whole separate discussion.Originally posted by potterYou can make a shit layout but have valid code. Just like you can write a shit sentence but it'll pass through spell check ;) .
Last edited by calmlikeabomb; 12-19-2008, 04:27 PM.subarus.Comment
-
Stuart great thread/ Ive been looking for this type of info, as I'd like to do my galleries using CSS.
I have a question. How can I create a a 15 pic gallery say thumbs 135 x 180 - using background images sliced for faster loading. Would that be a mix of css and tables?
Would I create <div> for each area Id like to lay out a number of thumbs? I hope that made sense.Comment
-
what this thread boils down to is most people are idiots. most of you wannabe designers cannot even hack out a half decent CSS page if you were payed for it.
you claim proper code but you suck, i dont need to name names because i wish you the best of luck anyway, stuart you are a fucking programmer stick to it. its called fucking style sheets for a reason programmers have 0 style.
Comment
-
Awesome thread and I thought I'd share one tip that's helped get my layouts look the same with IE and Firefox. When creating a stylesheet I type it out adhering to CSS2 standards and it always works out fine with Firefox but when viewing it in IE sometimes there is the odd div that isn't positioned exactly the same so I create an extra rule for IE only by adding !ie:
#wrapper {
top: 0px;
top: 5px !ie;
}
In this example the div snuggles up to the top nicely with Firefox but with IE it was nudged up slightly higher so I added a little padding that Firefox ignores but IE reads.
Comment
-
http://www.9xs.net/thumbs.htmlStuart great thread/ Ive been looking for this type of info, as I'd like to do my galleries using CSS.
I have a question. How can I create a a 15 pic gallery say thumbs 135 x 180 - using background images sliced for faster loading. Would that be a mix of css and tables?
Would I create <div> for each area Id like to lay out a number of thumbs? I hope that made sense.
If you view the source in this page, you'll see that the images go side by side quite neatly, and wrap to the edge of the browser window.
There's nothing stopping you from creating a div that's say... 180px wide (135 x 2 + padding) and putting the images inside that. Then the images would wrap 2 by 2 within that div, rather than the entire browser window.
It means having to do a little math on your part to get the divs the right size to make everything fit snug, but you make your divs, put your thumbs in and the galleries will just work.Comment
-
what this thread boils down to is most people are idiots. most of you wannabe designers cannot even hack out a half decent CSS page if you were payed for it.
you claim proper code but you suck, i dont need to name names because i wish you the best of luck anyway, stuart you are a fucking programmer stick to it. its called fucking style sheets for a reason programmers have 0 style.
Comment
-
-
Thank you everyone. I'm glad that it has been of some use to some of you.
Comment
-
Stuart was saying that one doc type will render padding, margin, or 0px differently than another.
This is not true, and any decent web tech should know that. Nothing you provided proved that one doc type would display margin, padding, or 0px differently. Go ahead and email Jeff and ask him.

Comment
-
Welcome to the web as the W3C sees it - where the more the number of convoluted and gratuitous standards you can make, the "better" everything is.
Or to put it another way, if the W3C built motorways, the number of lanes it had, speed you could go and distance to be kept between cars would vary depending on the car you were in, colour of eyes you saw the road through and whether or not your car manufacturer had the greatest market dominance, and so just did everything differently, just for the shit of it.Comment
-
Actually, I said "no matter what make or model, will try their very best to make sure that 0px really means 0px."Stuart was saying that one doc type will render padding, margin, or 0px differently than another.
This is not true, and any decent web tech should know that. Nothing you provided proved that one doc type would display margin, padding, or 0px differently. Go ahead and email Jeff and ask him.

Which is true.
0px means the top left corner of the browser, but the different browsers interpret the "top left corner" differently.Comment
-
What?!
For starters 0px means zero pixels. 0px has nothing to do with corners, it's a definition of measurement.
Secondly, if different browsers render 0px differently. And if "top left" is different in different browsers. I'd love to see some information on it.
I guarantee you can't find me one shred of information stating how 0px will be rendered as say 0px in firefox but .5 pixels in internet explorer, or 1.3456 pixels in opera.
I'd also love to see some information that states "top left", is not defined as the top left corner of an element in some browser.
Like whoa, what you're saying is happening goes against every thing that is known about the browser rendering and css.
Comment
-
no offense - but this is wrong...Stuart was saying that one doc type will render padding, margin, or 0px differently than another.
This is not true, and any decent web tech should know that. Nothing you provided proved that one doc type would display margin, padding, or 0px differently. Go ahead and email Jeff and ask him.

true, a pixel itself isnt changed or 'measured' differently - but - browers will use them differently or see the formulas and output them differently...Comment
-
After all this, you seriously think that I don't know that 0px is a measurement... and are trying to be so anal that my reference to 0px as the top left corner is anything but... you know what? I'm done talking to you.What?!
For starters 0px means zero pixels. 0px has nothing to do with corners, it's a definition of measurement.
Secondly, if different browsers render 0px differently. And if "top left" is different in different browsers. I'd love to see some information on it.
I guarantee you can't find me one shred of information stating how 0px will be rendered as say 0px in firefox but .5 pixels in internet explorer, or 1.3456 pixels in opera.
I'd also love to see some information that states "top left", is not defined as the top left corner of an element in some browser.
Like whoa, what you're saying is happening goes against every thing that is known about the browser rendering and css.
There's obviously no point in it since you are nitpicking this crap just for the sake of arguing at this point.
You go about doing things your way, you're the best. All hail you, king of css.Comment
-
Interesting way to look at it, but it's not the w3c's fault really. It's actually the browser company's fault during the browser wars in the 90's. They just made up their own tags that were independent of any standards. The w3c made recommendations on what tags should do what, and how they would work, but none of the browser makers listened. It's not like the w3c is out to fuck anyone over, or make things hard on people. They wanted the complete opposite actually.Welcome to the web as the W3C sees it - where the more the number of convoluted and gratuitous standards you can make, the "better" everything is.
Or to put it another way, if the W3C built motorways, the number of lanes it had, speed you could go and distance to be kept between cars would vary depending on the car you were in, colour of eyes you saw the road through and whether or not your car manufacturer had the greatest market dominance, and so just did everything differently, just for the shit of it.Comment
-
Strict is not strict. Why can't I do <iframe/> or <script src="..."/> without the browser crapping out on me?
Another good one. Don't do display: none in the css if you want to change it with JS later on. Do it inline on the actual element. You can't change it since it's not on the DOM if you declare it none in the CSS.Comment
-
You can do script with strict, but you can't do iframe. That's not a standards valid markup...Strict is not strict. Why can't I do <iframe/> or <script src="..."/> without the browser crapping out on me?
Another good one. Don't do display: none in the css if you want to change it with JS later on. Do it inline on the actual element. You can't change it since it's not on the DOM if you declare it none in the CSS.
And your point about using display: none; inline is a good tip. And display: none; is better than visibility: hidden; hidden seemed to leave the space that the hidden element took up on the page, but display none, removes that space and continues the normal flow of the document.Comment
-
Actually it's supposed to be 0 not 0px. Only include px if it's non-zero. It will work fine but it's not compliant.What?!
For starters 0px means zero pixels. 0px has nothing to do with corners, it's a definition of measurement.
Secondly, if different browsers render 0px differently. And if "top left" is different in different browsers. I'd love to see some information on it.
I guarantee you can't find me one shred of information stating how 0px will be rendered as say 0px in firefox but .5 pixels in internet explorer, or 1.3456 pixels in opera.
I'd also love to see some information that states "top left", is not defined as the top left corner of an element in some browser.
Like whoa, what you're saying is happening goes against every thing that is known about the browser rendering and css.Comment
-
And again, when I ask you to simply reference your statements you back out. Figures. Pages back I even went ahead and created pages to back my statements. You never provided links or references to back what you were saying. Yet again, you do not provide any proof.After all this, you seriously think that I don't know that 0px is a measurement... and are trying to be so anal that my reference to 0px as the top left corner is anything but... you know what? I'm done talking to you.
There's obviously no point in it since you are nitpicking this crap just for the sake of arguing at this point.
You go about doing things your way, you're the best. All hail you, king of css.
You had the right idea starting this thread. It had good intent. However you're providing misleading and wrong information. It's counter productive to what you tried to accomplish.
Comment
-








Comment