Thanks for the post. Hopefully soon I’ll be at Rockstar level.
There are a lot of good front end developers out their right now. If you fancy yourself as a front end editor then you really should be looking at how you can differentiate yourself from the rest. Yes there are lots of "good" front end developers, but there are not a whole lot of excellent front end developers.
If you work in a team or ever revisit your code and need to update it then you should think about the quality of your class and ID names. It is not uncommon for developers to use class names like "box", "wrapper", or "container." While you may think that these naming conventions or "semanitc enough" none of them describe the content that is inside them. Instead consider using HTML5 spec's such as "content-sub", "section", "content-aside" or "content-sup."
You and your team will have a much easier time sorting through code that describes the content than trying to remember the details of "box."
Read more about semantic naming from Andy Clarke and A List Apart.
I think it is reasonable safe to assume that most developers have at least started to organize their files by type (ie: a folder for images, css, javascript, etc...). You can go a step further and improve the organization even more, particularly any folder that is going to have a lot of files (such as Images in particular and CSS as a secondary.)
I find it best to create sub folders with in images and separate images based on design structure, buttons, headlines, photos, etc...
There are plenty of other folders you may want to create to keep the updating and growth of a site easy and efficient, including:
The Elements CSS Framework does a great job of organizing files based on the normal client/provider workflow.
Any time you end up developing complex layouts you are bound to use a lot of <div>s in your markup. This can be particularly confusing to go back and edit as it becomes hard to figure out which div is being closed where. You may see three </div>s all in a row.
To combat this simply add some coments at each </div> (or any other closing element if you find that it will be helpful) to let you know what element was just closed.
<div id="header" class="section">
<div id="header-logo">
<h1>HTMLiZER</h1>
</div><!--/#header-logo-->
</div><!--/#header-->
If you find it useful you can take it one step further and comment the primary area you would be editing (such as the main content area, sidebar, etc...)
For small 4 - 5 page brochure sites your CSS will be pretty manageable even if you don't spend the time and effort you should into organizing and commenting. Once you start developing web applications or large sites with a vast array of design "modules" you should make sure that you organize your CSS in way that is easy to manage.
I recommend splitting your css into logical different files for better organization, such as:
This way you don't have to sort through all of the typography styling to find the area where you defined the size of the header. Likewise if you want to adjust the headings it is pretty simple to find it through a small typography.css file rather than a huge file that has everything.
Every CSS file you plan on editing and extending over time should have a table of contents at the begining and a headline seperator at every section. This will allow you to easily jump to a section using "find" rather than scrolling for that one area that had the CSS you are hoping to modify.
EX
/***********
TOC:
=1: Header
=2: Content
=3: Footer
=4: Navigation
=5: Portfolio
****************/
/* ********* =1: HEADER *********** */
#header { ... }
Even though it is easier to work on a site when you segment and organize your css into several different file names, it actually causes your site to load slower. The more calls the browser has to make to the server for additional files the slower it will load.
Before deploying your css files you should combine and compress them. Compressing them removes any uncessary whitespace, comments, etc... that is unnecissary when the site is live.
There are several handy tools to do this including this online version.
As you get more experience under your belt you will find that you use the same methods and naming conventions over and over. This is helpful for several reasons and it should be encouraged. It has lots of benefits including:
Chances are that you end up rewriting the same type of code over and over again, simply because you don't have it stored somewhere. Some examples may be:
Rather than reusing these bits of codes write modules into your own CSS framework (or you could imrpove on another one). This way you can streamline the development process so it takes less time and improve the consistancy of your work.
You could assign every bit of code an unique ID or adjust the margins and padding per instance. Lots of coders do this to try and get the CSS as close to the designers comp as possible. However this is inefficient in development time and file size. Establish a set rule for differnt types of content and how they should be styled, this should include basic things such as:
This way you don't have to rewrite the code for every new item added to the site. Additionally it will keep the site feeling consistant and well balanced visually. If all elements and every page follows the same rhythm it will feel more unified as a whole.
Some call this object oriented css, it is worth looking into for rockstar like front end coding.
Have some feedback? Leave a commentThanks for the post. Hopefully soon I’ll be at Rockstar level.
Html % PHP on numara kodlama dillerinden kendisi
Windows 2003 server filan filan işte İngilizcde (Engish) bilmiyoruz sallıyoruz
fenerbahçe forum
tenks admin
fenerbahçe’nin 12. gücü
tenks admin
This is a really informative article. With regards to point 4 would it just not be easier to use comments in your CSS to help you manage it better then creating individual CSS files. This way you would not need point 6 as your CSS will be nicely organised.
@Blake, I agree. I always have just one big honking CSS file. Separating only css files for particular browser fixes..
Play Free Online Games, sports games, massive multiplayer games, action games, puzzle games, flash games and more, casual games.
#4 is actually quite silly. Not only is it too many HTTP requests, but it actually makes it harder to find the style that you need. If all of your styles are in one CSS file, a simple ctrl+f will help you find the style you need in less than a second. That way, you don’t have to have 6 different CSS files open during development.
Great article. I am enlighted about css.
musical sites thanks.
Uhmm.. #9 Stop using XHTML when it’s not necessary.. A mistake everyone makes. Your XHTML validates? bravo.. it probably doesn’t work when served as the proper mime type.
You can never learn too much. This is something I have been really looking for. Great compilation. Thanks for posting!
Yeah. Its mostly common sense and you know to do this but, you get sloppy and don’t
ok, sorry. i guess #4 and #6 are contradictory? or do you mean, develop with separate files and combine when deploying? because that would make sense
I don’t really agree with #4. Too many http requests. Good commenting should suffice.
Object oriented is more relevant in programming languages such as C# and C++. But I get what you is meant in this article.
Some very good points here.
Sometimes HTML comments can produce unwanted extra content in IE6 so if you’re randomly getting a few characters of text seemingly repeating on the page – it may be the comment that’s to blame.
Very good article. All front end developers should read this. I think you got a little lost with the ‘modular’ and ‘object orientated’ terms for number 8 though. ‘Cascading’ would have been enough. That is the whole point to CSS.
on February 7, 2010
That is a good article for css thank you admin