Are HTML and CSS easy?

John Oxton recently asked a simple question: Is XHTML and CSS easy?. The post received quite a few comments, and the answer obviously depends on who you ask and in what context. John has summarised the comments in Is XHTML and CSS easy? Follow up.

I have stated my opinion on this before, but I don’t mind reiterating it: learning the basics of HTML and CSS is easy, but mastering them takes a lot of time and effort. Many people think they know all there is to know about HTML and CSS, but the reality is that their skills are only intermediate.

There is a lot more to understanding HTML than knowing how to write markup that validates. You also need to think about document structure and semantics, something that is missing from a large number of documents that use valid HTML. I would say that in most cases an invalid document that is semantically marked up is preferable to one that is valid but completely void of semantics.

I’ve been working with HTML for ten years and CSS for seven, and I still encounter situations almost every day where I need to stop for a moment to consider how to mark up a particular piece of content. And don’t get me started on keeping track of browser (IE) inconsistencies when it comes to CSS or the problems you will run into if you try to use XHTML properly.

You can never stop learning when you’re working in the web industry. The day you think you know it all is the day you should look for something else to do.

So no, I do not think HTML and CSS are easy.

Posted on October 18, 2005 in (X)HTML, CSS, Web Standards


  1. October 18, 2005 by Martin Smales

    I agree with your comments that one can never stop learning about web technologies, and that XHTML and CSS are not easy.

    However, in general, they are easy to learn and write but what makes XHTML and CSS hard that even many people have trouble reaching absolute elitism is the social aspect influencing the languages.

    Semantics in XHTML markup are not painted in black and white, an area that is difficult to reach general consensus on what is right and what is not, so a web developer may spend hours trying to figure it all out or not at all.

    One might say what the address element is used for? Many do not know… some may have ideas that it is used for someone’s postal address, others think that it is for citation.

  2. October 18, 2005 by Felix Winkelnkemper

    You are right that the basics of HTML and CSS are easy. But exactly the point, that makes it “dangerous” in some way. Of course you need a lot of experience and a lot of work to be really good, but this work is not respected because everybody knows “it’s easy”!

    There is another important issue. HTML and CSS are important, but they are useless, completely useless. Bulding websites is much much more than HTML and CSS. If you have no content, if you cannot write well and precise, if you have no idea of design and structure, what do you want to do with HTML and CSS? Sometimes, I think we talk too much about unimportant things and talk too less about the interesting.

  3. Roger I couldn’t have said it better myself: “learning the basics of HTML and CSS is easy, but mastering them takes a lot of time and effort.”

    I know plenty of people in college that “know” (X)HTML but when you get down to it they don’t know the nitty-gritty of the subject. I find that people, for some reason, are still stuck in the stone-age of the web and continuously use old and outdated HTML.

    Another thing that I believe that beginners should be taught from the get-go is to separate data from presentation and the real meaning of XHTML and CSS - not just using CSS to put in a cool effect or sparkle up a website.

  4. Completely agree. Moving from tables to CSS is hard enough but, attempting to code ‘semantically’ on top of that, makes life that little more difficult as a web developer but, at the same time exciting.

    I beleive getting these elements in perfect harmony, is that really possible, I think so, makes for sites that just perform better on so many levels.

    Getting to grips with standards and moving to tableless CSS design is confusing and hard but, the payoff is big enough to make all the hours spent worth while.

  5. I think HTML and CSS are a lot easier than people believe. As someone who learned XHTML from the word go, creating semantically-sound markup is second nature to me. There are times when I find myself going to the specification for guidance, but it is a rare event.

    CSS is a little bit different. Like XHTML, I think CSS is very easy to learn; however, bending it to work with a kick-ass visual design can often be quite difficult. The more complex a design gets, the harder the CSS is likely to get, particularly if the design is supposed to be pixel-perfect.

    CSS works very well with the often-discussed “rules based design” that has become popular recently. This newer approach embraces the web for what it is, and consequently the CSS is easier. If you try to make your web pages look like print pages, the CSS gets a lot more difficult.

  6. October 19, 2005 by s jakubowski

    You take a class (or take up a book) to learn a technology. You learn the ABCs, then go back to work. Time to write that novel.

    HTML and CSS aren’t so easy after all :(

    Semantic web? Quest’ce que c’est?

  7. I used CSS for fonts on all early table-based sites. HTML and shims. That was easy.

    It was Tantek [circa early-2002] that shoved me into the deep end regarding the potential of style sheets. Design Meme, Mezzoblue and Big Z furthered my education. And, No; it was not easy.

    These days, I can do clever “print-like” things with CSS2 and CSS3 but they do not serve any cost-effective function when structuring sites for clients.

    I don’t know how one can master XHTML or advanced CSS given their support issues. I’ve never liked CSS hacks.

    I’ll - Happily - be an “Intermediate” until browsers and web standards are standard.

  8. Good post, and good comments afterwards… One way that I look at this problem isn’t from a standards/non-standards aspect, but from people thinking I can tutor them for 30 minutes one day, and then the next day they can build themselves a site with the same skills that I’ve spent a couple of years acquiring. Of course this is a person who’s never seen any html/css before.

    Easy to learn basics, hard to master - I’ll be repeating these words. :)

  9. October 19, 2005 by Paul Lomax

    I consider myself to be very experienced web developer, with a Computer Science background. I’ve currently got 10 web designers and developers working for me.

    In my experience, HTML and CSS are not easy.

    In fact, they’re harder than programming in any language.

    When you write a bunch of C code, compile it, and it doesn’t work as expected (compared against trying to get CSS to position stuff): 1) You have error messages 2) You have a debugger / trace 3) You can safely assume that the problem is in your code and not in the compiler!

    The only thing in common with progamming is you need to test it on half a dozen platforms to make sure it works…

  10. But ofc. It´s like the game Othello: “A minute to learn; a lifetime to master”.

  11. I also tought i know allot about Html and Css, until i started working with it. You need really mutch to know about the standards, usability, etc.. to make something really nice and at the same time useful.

  12. I thought it was easy when I started a few years ago, but I’m still learning!!

  13. HTML and CSS are extremely difficult, I’ve been working with this for 8 years and I still find it a pain in the *. My friends who are designing for print never understand why making a few simple web pages takes so long compared to what they do using DTP tools. I blame W3C and the standards. The standards are obviously made by computer geeks with little or no understanding for typography and graphic design. I mean; 99% of all pages on the internet uses column layout. Why isn’t there any good robust support for this in HTML or CSS? Tables and floating div’s are not very good solutions. If they were, blogs like this site would not excist

  14. October 19, 2005 by Roger Johansson (Author comment)


    My friends who are designing for print never understand why making a few simple web pages takes so long compared to what they do using DTP tools.

    That’s because they design for sighted human beings using a static medium, while you design for all human beings, blind search engine robots, and hundreds of different user agents without being able to predict how or where or when the site you are designing will be used.

  15. Just like being able to turn a screwdriver or pliers doesn’t make you a NASCAR mechanic - knowing what the tags/properties are in (x)HTML or CSS, or for that matter any programming (or any) language - - doesn’t make you an expert.

    Just cause I can speak/type/write English spoken where I live, doesn’t put me in the same ballpark as Shakesphere… (yes, not even the same continent)

    Knowing the tools isn’t enough - it is how to make those tools fit the purpose or goal of a project.

    Note to all of us… there is always something new to learn! Never more apparent than in the world of browsers…

  16. Its so nice to see that the CSS puritans, pardon my french, finally seems to come down to human terms theese days.

    I don’t know how many arguments I have been in with the traditional “Your page doesnt validate - you suck - your a thief and you should die! Learn CSS, its so easy, when you master it its even easier! Im the best! Wuhhuuu!”.

    Ok, a little over board there but you get the point, its just what happends when trying to say that infact tables are worth the markup in some cases… It took some time before CSS designers publically could admit they still used it… Same goes for the argument that CSS is so damn easy, as seen here - it’s not!

    Making great websites with CSS design and unobstrusive javascript and all the you know what is very fun, it’s even so interesting I spend almost the entire day doing it, but it’s timeconsuming and hard. Every day one sees something that could be done better, smarter, that works in Safari and so on.

    High five to all komrades out there, finally the word is out and we can admit that what we are working with infact isn’t that easy - alot can be taught, but it takes hours and hours.

    Another point, the DTP people are working in static environments, while we are working in a highly dynamic environment, where we are kinda good in hacking each others work into pieces. Alot of “im better than you culture” going on which doesnt make it much better. Standards of today suddenly changes with the release of the next Firefox, or all hell breaks loose with the release of IE7. Isnt it great people; :D

    However… Its so amusing and interesting that I wouldnt trade it for anything, :D

  17. Two people I know have been taking “web design” classes recently. One has taken classes at California State University Sacramento (Sac. State), the other at a local community college. Both asked me for help on some assignments. What I saw made my blood curl.

    The professors in both cases are ACTIVELY TEACHING every single “worst practice” I can think of. Reading the handount given by one of the professors, he said that tables are the only way to lay out a web page. Both professors teach the use of font tags, tables for layout, and frames. Neither teach CSS. One friend decided to use CSS instead of font tags, and was given a failing grade on the assignment. When he asked, the teacher replied that “I don’t know CSS, so I don’t use CSS. I’ve been using font tags since the beginning of the web, and that’s how you’re going to learn.”

    One of the assignments (paraphrased) actually stated: “Create a page with a header, navigation area, content area, and footer. Use a table to lay out your page. Even better, use multiple nested tables.”

    EVEN BETTER? Please.

    With so-called “teachers” like this, it’s no wonder HTML is still seen as difficult, and mastery is very elusive.

  18. I think that HTML is considered easy is because it’s usually taught like a Microsoft Word for the Internet. Want to make something bold? Use the bold tag. Want to change the font? Use the font tag!

    And once people learn HTML like this, they don’t care about standards or semantics. Learning HTML was already such an enormous effort, why spend more time when it already, finally works? They just want to make webpages that have scrolling lines and moving pictures.

  19. I have noticed that people new to web design are usually intimidated if they are asked to use CSS. I say that because I have noticed this behaviour on Nvu Forums quite often. I don’t think (X)HTML and CSS should be only the domain of web developers. With the popularity of the internet, more and more people want to have atleast some presence on the web. I think a easy and intuitive CSS editor (preferably OSS and WYSIWYG) would be a great help to further the reach of CSS in the group of new users.

    Regarding the table and font tag comment above: table use is the easiest way for newbees to get a layout one wants. I am not promoting the use of tables here, but it will only be there till we get a tool (as indicated above) for easy layouts using CSS.

    Font tag and other similar tags should not be used by WYSIWYG editors by default. This is the only way we can really kill the antiquated tags as almost all browsers support their modern counter parts.

  20. The professors in both cases are ACTIVELY TEACHING every single ‘worst practice’ I can think of. Reading the handount given by one of the professors, he said that tables are the only way to lay out a web page. Both professors teach the use of font tags, tables for layout, and frames. Neither teach CSS. One friend decided to use CSS instead of font tags, and was given a failing grade on the assignment. When he asked, the teacher replied that ‘I don’t know CSS, so I don’t use CSS. I’ve been using font tags since the beginning of the web, and that’s how you’re going to learn.’

    You’re right, that does make one’s blood curdle (not ‘curl’; it would be ‘curl’ if you were talking about your hair). That makes me mad that there are people getting PAID to teach that way. I need to get a job as a teacher at a college so I can help disseminate correct coding practices. A lot of people know how to set up rudimentary tables, how to make a link, and about break, bold and italics tags and maybe about header tags and, in their mind, they “know” HTML.

  21. Hi Roger, I’m a webdeveloper since more than 8 years (HTML eight & CSS seven years). I think it is easy to start with, but it is going to be more difficult if you wanna be better and better, over the years. WebStandards in the web is something we really need. And the requirement to HTML (XHTML) and CSS aren’t the same like in the 90’s. You have to grow up with the web and that is not easy, because there is so much stuff you have to think about ( Accessibility, Usability, Webstandards etc. ).

  22. Web standards are easy to learn and implement. The problem is lack of standard-compliancy between the browsers. If you work with just one browser in mind and if that browser if standard-compliant then it is easy to design/implement. If we want to make cross-browser / cross-platform / accessible web sites without ugly hacks then it is not that easy, yet.

  23. Check out how “easy” it is to make a 3 column layout using css:

    The CSS and HTML standards are too poor for creating graphic design on the web

  24. Functionally speaking, technology can never be too easy to use.

    Its a double edges sword having html be so approachable, but in the long run, its part of what has made the web the web .. everyone has a chance to publish their thoughts (and junk code) for all browsers to choke on. In the long run, the well coded & frequently updated sites will rise to the top ..

  25. In my opinion html is easy but combining it with css to create semantic, valid, user-friendly, and also beautiful websites requires a bit of fanaticism.

    Someone once told me, “CSS zealots are hard to find. They certainly don’t grow on trees! Most people think they get it, but they don’t.”

    I do believe that to truly master css you really do need to be a zealot - if you don’t totally get off on it you’re going to have a tough time.

  26. In my applications of profession, HTML and CSS are easier than program such as PHP, JSP, JavaScript. So someone will feel PHP is difficult.

  27. April 23, 2006 by Brooke

    I agree with Mr. Johannson! I have been learning HTML for over a year and it is pretty easy once you get the hang of it. But CSS on the otherhand is VERY difficult in the point of non-basics. I am 14 years old, so of course I have more time to learn, but still it is hard!

Comments are disabled for this post (read why), but if you have spotted an error or have additional info that you think should be in this post, feel free to contact me.