22.0 Introduction

Web development is challenging, simply because of the large number of issues involved. In any development effort, you need to keep a close eye on many technical issues; however, with web development, there are additional challenges to face.

Developing for the Web adds complexity to your software in different ways than developing for other environments, particularly if you’re using JavaScript (either alone or in an Ajax context). Trying to debug problems in those environments can be extremely difficult and frustrating.

Small (and not so small!) differences in how web browsers render CSS and HTML cause web developers immense amounts of grief. Most web developers don’t just write backend business logic; they also spend a fair amount of time doing modest web page layout and design. This means they’re trying to ensure that the pages they’re working on display in a pleasing, consistent, and accurate fashion.

Accomplishing all that requires a solid grasp of how CSS elements flow on a document, how tables are handled in HTML, and how floating or clearing elements impact those around them. One small change to an element can seriously affect the entire page, turning a nicely arranged bit of work into a complete jumble.

It’s an unfortunate fact of web-development life that you have to spend large amounts of time writing similar-but-different bits of CSS so that a page will look the same whether rendered in Firefox or Internet Explorer. Non–web developers must shake their heads ...

Get Windows Developer Power Tools now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.