You are previewing Learning Web Design, 4th Edition.

Learning Web Design, 4th Edition

Cover of Learning Web Design, 4th Edition by Jennifer Niederst Robbins Published by O'Reilly Media, Inc.
  1. Learning Web Design: A Beginner’s Guide to HTML, CSS, JavaScript, and Web Graphics
  2. Preface
    1. How This Book Is Organized
    2. Acknowledgments
    3. About the Author
    4. Using Code Examples
    5. We’d Like to Hear from You
  3. I. Getting Started
    1. 1. Where Do I Start?
      1. Where Do I Start?
      2. What Does a Web Designer Do?
      3. What Languages Do I Need to Learn?
      4. What Do I Need to Buy?
      5. What You’ve Learned
      6. Test Yourself
    2. 2. How the Web Works
      1. The Internet Versus the Web
      2. Serving Up Your Information
      3. A Word About Browsers
      4. Web Page Addresses (URLs)
      5. The Anatomy of a Web Page
      6. Putting It All Together
      7. Test Yourself
    3. 3. Some Big Concepts You Need to Know
      1. A Dizzying Multitude of Devices
      2. Sticking with the Standards
      3. Progressive Enhancement
      4. Responsive Web Design
      5. One Web for All (Accessibility)
      6. The Need for Speed (Site Performance)
      7. Test Yourself
  4. II. HTML Markup for Structure
    1. 4. Creating a Simple Page: (HTML Overview)
      1. A Web Page, Step by Step
      2. Before We Begin, Launch a Text Editor
      3. Step 1: Start with Content
      4. Step 2: Give the Document Structure
      5. Step 3: Identify Text Elements
      6. Step 4: Add an Image
      7. Step 5: Change the Look with a Style Sheet
      8. When Good Pages Go Bad
      9. Validating Your Documents
      10. Test Yourself
      11. Element Review: Document Structure
    2. 5. Marking Up Text
      1. Paragraphs
      2. Headings
      3. Lists
      4. More Content Elements
      5. Organizing Page Content
      6. The Inline Element Roundup
      7. Generic Elements (div and span)
      8. Some Special Characters
      9. Putting It All Together
      10. Test Yourself
      11. Element Review: Text
    3. 6. Adding Links
      1. The href Attribute
      2. Linking to Pages on the Web
      3. Linking Within Your Own Site
      4. Targeting a New Browser Window
      5. Mail Links
      6. Telephone Links
      7. Test Yourself
      8. Element Review: Links
    4. 7. Adding Images
      1. First, a Word on Image Formats
      2. The img Element
      3. A Window in a Window
      4. Test Yourself
      5. Element Review: Images
    5. 8. Table Markup
      1. How Tables Are Used
      2. Minimal Table Structure
      3. Table Headers
      4. Spanning Cells
      5. Table Accessibility
      6. Wrapping Up Tables
      7. Test Yourself
      8. Element Review: Tables
    6. 9. Forms
      1. How Forms Work
      2. The form Element
      3. Variables and Content
      4. The Great Form Control Roundup
      5. Form Accessibility Features
      6. Form Layout and Design
      7. Test Yourself
      8. Element Review: Forms
    7. 10. What’s Up, HTML5?
      1. A Funny Thing Happened on the Way to XHTML 2
      2. In the Markup Department
      3. Meet the APIs
      4. Video and Audio
      5. Canvas
      6. Final Word
      7. Test Yourself
  5. III. CSS for Presentation
    1. 11. Cascading Style Sheets Orientation
      1. The Benefits of CSS
      2. How Style Sheets Work
      3. The Big Concepts
      4. Moving Forward with CSS
      5. Test Yourself
    2. 12. Formatting Text: (Plus More selectors)
      1. The Font Properties
      2. Changing Text Color
      3. A Few More Selector Types
      4. Text Line Adjustments
      5. Underlines and Other “Decorations”
      6. Changing Capitalization
      7. Spaced Out
      8. Text Shadow
      9. Changing List Bullets and Numbers
      10. Test Yourself
      11. CSS Review: Font and Text Properties
    3. 13. Colors and Backgrounds: (Plus Even More Selectors and External Style Sheets)
      1. Specifying Color Values
      2. Foreground Color
      3. Background Color
      4. Playing with Opacity
      5. Introducing...Pseudo-Class Selectors
      6. Pseudo-Element Selectors
      7. Attribute Selectors
      8. Background Images
      9. The Shorthand background Property
      10. Like a Rainbow (Gradients)
      11. Finally, External Style Sheets
      12. Test Yourself
      13. CSS Review: Color and Background Properties
    4. 14. Thinking Inside the Box: (Padding, Borders, and Margins)
      1. The Element Box
      2. Specifying Box Dimensions
      3. Padding
      4. Borders
      5. Margins
      6. Assigning Display Roles
      7. Adding Drop Shadows to Boxes
      8. Test Yourself
      9. CSS Review: Basic Box Properties
    5. 15. Floating and Positioning
      1. Normal Flow
      2. Floating
      3. Positioning Basics
      4. Relative Positioning
      5. Absolute Positioning
      6. Fixed Positioning
      7. Test Yourself
      8. CSS Review: Floating and Positioning Properties
    6. 16. Page Layout with CSS
      1. Page Layout Strategies
      2. Page Layout Techniques
      3. Multicolumn Layouts Using Floats
      4. Positioned Layout
      5. Top-to-Bottom Column Backgrounds
      6. Test Yourself
    7. 17. Transitions, Transforms, and Animation
      1. Ease-y Does It (CSS Transitions)
      2. CSS Transforms
      3. Keyframe Animation
      4. Test Yourself
      5. CSS Review: Transitions, Transforms, and Animation
    8. 18. CSS Techniques
      1. A Clean Slate (CSS Reset)
      2. Image Replacement Techniques
      3. CSS Sprites
      4. Styling Forms
      5. Styling Tables
      6. Basic Responsive Web Design
      7. Wrapping Up Style Sheets
      8. Test Yourself
      9. CSS Review: Table Properties
  6. IV. JavaScript for Behaviors
    1. 19. Introduction to JavaScript
      1. What Is JavaScript?
      2. Adding JavaScript to a Page
      3. The Anatomy of a Script
      4. The Browser Object
      5. Events
      6. Putting It All Together
      7. Test Yourself
    2. 20. Using JavaScript
      1. Meet the DOM
      2. Polyfills
      3. JavaScript Libraries
      4. Big Finish
      5. Test Yourself
  7. V. Creating Web Graphics
    1. 21. Web Graphics Basics
      1. Image Sources
      2. Meet the Formats
      3. Image Size and Resolution
      4. Working with Transparency
      5. Introduction to SVG
      6. Summing Up Images
      7. Test Yourself
    2. 22. Lean and Mean Web Graphics
      1. General Image Optimization Strategies
      2. Optimizing GIFs
      3. Optimizing JPEGs
      4. Optimizing PNGs
      5. Optimize to File Size
      6. Optimization in Review
      7. Test Yourself
  8. A. Answers
    1. Chapter 1: Where Do I Start?
    2. Chapter 2: How the Web Works
    3. Chapter 3: Some Big Concepts You Need to Know
    4. Chapter 4: Creating a Simple Page (HTML Overview)
    5. Chapter 5: Marking Up Text
      1. Exercise 5-1
      2. Exercise 5-2
      3. Exercise 5-3
    6. Chapter 6: Adding Links
      1. Exercise 6-1
      2. Exercise 6-2
      3. Exercise 6-3
      4. Exercise 6-4
      5. Exercise 6-5
      6. Exercise 6-6
      7. Exercise 6-7
    7. Chapter 7: Adding Images
      1. Exercise 7-1
    8. Chapter 8: Basic Table Markup
      1. Exercise 8-1
      2. Exercise 8-2
      3. Exercise 8-3
      4. Exercise 8-4
    9. Chapter 9: Forms
      1. Exercises 9-1 through 9-4: Final source document
    10. Chapter 10: What’s Up, HTML5?
    11. Chapter 11: CSS Orientation
      1. Exercise 11-1
    12. Chapter 12: Formatting Text
      1. Exercises 12-1 through 12-3
    13. Chapter 13: Colors and Backgrounds
      1. Exercise 13-1
      2. Exercise 13-2
      3. Exercise 13-3
      4. Exercise 13-4
      5. Exercise 13-5
      6. Exercise 13-6
      7. Exercise 13-7
      8. Exercise 13-8
    14. Chapter 14: Thinking Inside the Box
      1. Exercise 14-1
      2. Exercise 14-2
      3. Exercise 14-3
    15. Chapter 15: Floating and Positioning
      1. Exercise 15-1
      2. Exercise 15-2
      3. Exercise 15-3
      4. Exercise 15-4
      5. Exercise 15-5
    16. Chapter 16: Page Layout with CSS
      1. Exercise 16-1
      2. Exercise 16-2
    17. Chapter 17: Transitions, Transforms, and Animation
      1. Exercise 17-1
      2. Exercise 17-2
    18. Chapter 18: CSS Techniques
      1. Exercises 18-1 through 18-3
    19. Chapter 19: Introduction to JavaScript
      1. Exercise 19-1
      2. Exercise 19-2
    20. Chapter 20: Using JavaScript
    21. Chapter 21: Web Graphics Basics
    22. Chapter 22: Lean and Mean Web Graphics
  9. B. CSS3 Selectors
  10. Index
  11. About the Author
  12. Colophon
  13. Copyright
O'Reilly logo

Chapter 1. Where Do I Start?

The Web has been around for more than 20 years now, experiencing euphoric early expansion, an economic-driven bust, an innovation-driven rebirth, and constant evolution along the way. One thing is certain: the Web as a communication and commercial medium is here to stay. Not only that, it has found its way onto devices such as smartphones, tablets, TVs, and more. There have never been more opportunities to put web design know-how to use.

Through my experience teaching web design courses and workshops, I’ve had the opportunity to meet people of all backgrounds who are interested in learning how to build web pages. Allow me to introduce you to just a few:

“I’ve been a print designer for 17 years, and now I am feeling pressure to provide web design services.”

“I work as a secretary in a small office. My boss has asked me to put together a small internal website to share company information among employees.”

“I’ve been a programmer for years, but I want to try my hand at design. I feel like the Web is a good opportunity to explore new skills.”

“I am an artist and I want to know how to get samples of my paintings and sculpture online.”

“I tinkered with web pages in high school and I think it might be something I’d like to do for a living.”

Whatever the motivation, the first question is always the same: Chapter 1 It may seem like there is a mountain of stuff to learn, and it’s not easy to know where to jump in. But you have to start somewhere.

This chapter attempts to put the learning curve in perspective by answering the most common questions I get asked by people ready to make the leap. It provides an introduction to the disciplines, technologies, and tools associated with web design.

Where Do I Start?

Your particular starting point will no doubt depend on your background and goals. However, a good first step for everyone is to get a basic understanding of how the Web and web pages work. This book will give you that foundation. Once you learn the fundamentals, there are plenty of resources on the Web and in bookstores for you to further your learning in specific areas.

There are many levels of involvement in web design, from building a small site for yourself to making it a full-blown career. You may enjoy being a full-service website developer or just specializing in one skill. There are a lot of ways you can go.

If your involvement in web design is purely at the hobbyist level, or if you have just one or two web projects you’d like to publish, you may find that a combination of personal research (like reading this book), taking advantage of available templates, and perhaps even investing in a visual web design tool such as Adobe Dreamweaver may be all you need to accomplish the task at hand. Many Continuing Education programs offer introductory courses to web design and production.

If you are interested in pursuing web design or production as a career, you’ll need to bring your skills up to a professional level. Employers may not require a web design degree, but they will expect to see working sample sites that demonstrate your skills and experience. These sites can be the result of class assignments, personal projects, or a simple site for a small business or organization. What’s important is that they look professional and have well-written, clean HTML, style sheets, and possibly scripts behind the scenes. Getting an entry-level job and working as part of a team is a great way to learn how larger sites are constructed and can help you decide which aspects of web design you would like to pursue.

What Does a Web Designer Do?

Over the years, the term “web design” has become a catchall for a process that encompasses a number of different disciplines, from user experience design, to document markup, to serious programming. This section describes some of the most common roles.

If you are designing a small website on your own, you will need to wear many hats. The good news is that you probably won’t notice. Consider that the day-to-day upkeep of your household requires you to be part-time chef, housecleaner, accountant, diplomat, gardener, and construction worker—but to you it’s just the stuff you do around the house. In the same way, as a solo web designer, you may be a part-time graphic designer, writer, HTML author, and information architect, but to you, it’ll just feel like “making web pages.” Nothing to worry about.

At a Glance

The term “web design” has come to encompass a number of disciplines, including:

  • Visual (graphic) design

  • User interface and experience design

  • Web document and style sheet production

  • Scripting and programming

  • Content strategy

  • Multimedia

There are also specialists out there whom you can hire to fill in the skills you don’t have. For example, I have been creating websites since 1993 and I still hire programmers and multimedia developers when my clients require interactive features. That allows me to focus on the parts I do well (in my case, it’s the content organization, interface, and visual design).

If you are not interested in becoming a jack-of-all-trades solo web designer, you may choose to specialize and work as part of a team or as a freelance contractor.

Large-scale websites are almost always created by a team of people, numbering from a handful to hundreds. In this scenario, each member of the team focuses on one facet of the site-building process. If that is the case, you may be able to simply adapt your current set of skills (writing, Photoshop, programming, etc.) and interests to the new medium.

I’ve divided the myriad roles and responsibilities typically covered under the umbrella term “web design” into four very broad categories: design, development, content strategy, and multimedia.

Design

Ah, design! It sounds fairly straightforward, but even this simple requirement has been divided into a number of specializations when it comes to creating sites. Here are a few of the new job descriptions related to designing a site, but bear in mind that the disciplines often overlap and that the person calling herself the “Designer” often is responsible for more than one (if not all) of these responsibilities.

User Experience, Interaction, and User Interface design

Often, when we think of design, we think about how something looks. On the Web, the first matter of business is designing how the site works. Before picking colors and fonts, it is important to identify the site’s goals, how it will be used, and how visitors move through it. These tasks fall under the disciplines of Interaction Design (IxD), User Interface (UI) design, and User Experience (UX) design. There is a lot of overlap between these responsibilities, and it is not uncommon for one person or team to handle all three.

The goal of the Interaction Designer is to make the site as easy, efficient, and delightful to use as possible. Closely related to interaction design is User Interface design, which tends to be more narrowly focused on the functional organization of the page as well as the specific tools (buttons, links, menus, and so on) that users use to navigate content or accomplish tasks.

A more recent job title in the web design realm is the User Experience Designer. The UX designer takes a more holistic view—ensuring the entire experience with the site is favorable. UX design is based on a solid understanding of users and their needs based on observations and interviews. According to Donald Norman (who coined the term), user experience design includes “all aspects of the user’s interaction with the product: how it is perceived, learned, and used.” For a website or application, that includes the visual design, the user interface, the quality and message of the content, and even overall site performance. The experience must be in line with the organization’s brand and business goals in order to be successful.

Some of the documents an IxD, UI, or UX designer might produce include:

User research and testing reports

Understanding the needs, desires, and limitations of users is central to the success of the design of the site or web application. This approach of designing around the user’s needs is referred to as User-Centered Design (UCD), and it is central to contemporary design. Site designs often start with user research, including interviews and observations, in order to gain a better understanding of how the site can solve problems or how it will be used. It is typical for designers to do a round of user testing at each phase of the design process to ensure the usability of their designs. If users are having a hard time figuring out where to find content or how to move to the next step in a process, then it’s back to the drawing board.

Wireframe diagrams

A wireframe diagram shows the structure of a web page using only outlines for each content type and widget (Figure 1-1). The purpose of a wireframe diagram is to indicate how the screen real estate is divided and where functionality and content such as navigation, search boxes, form elements, and so on, are placed, without any decoration or graphic design. These diagrams are usually annotated with instructions for how things should work so the development team knows what to build.

Site diagram

A site diagram indicates the structure of the site as a whole and how individual pages relate to one another. Figure 1-2 shows a very simple site diagram. Some site diagrams fill entire walls!

Wireframe diagram.

Figure 1-1. Wireframe diagram.

A simple site diagram.

Figure 1-2. A simple site diagram.

Storyboards and user flow charts

A storyboard traces the path through a site or application from the point of view of a typical user (a persona in UX lingo). It usually includes a script and “scenes” consisting of screen views or the user interacting with the screen. The storyboard aims to demonstrate the steps it takes to accomplish tasks, outlines possible options, and also introduces some standard page types. Figure 1-3 shows a simple storyboard. A user flow chart is another method for showing how the parts of a site or application are connected that tends to focus on technical details rather than telling a story. For example, when the user does this, it triggers that function on the server. It is common for designers to create a user flow chart for the steps in a process such as member registration or online payments.

A typical storyboard [courtesy of Adaptive Path; drawn by Brandon Schauer].

Figure 1-3. A typical storyboard [courtesy of Adaptive Path; drawn by Brandon Schauer].

Visual (graphic) design

Because the Web is a visual medium, web pages require attention to presentation and design. A graphic designer creates the “look and feel” of the site—logos, graphics, type, colors, layout, etc.—to ensure that the site makes a good first impression and is consistent with the brand and message of the organization it represents. Visual designers typically generate sketches of the way the site might look, as shown in Figure 1-4. They may also be responsible for producing the graphic files in a way that is optimized for delivery over the Web (see Chapter 21, Chapter 22, for image optimization techniques).

Look-and-feel sketches for a simple site.

Figure 1-4. Look-and-feel sketches for a simple site.

If you are interested in doing the visual design of commercial sites professionally, I strongly recommend graphic design training as well as a strong proficiency in Adobe Photoshop (the industry standard) or Adobe Fireworks. If you are already a graphic designer, you will be able to adapt your skills to the Web easily, although this will not excuse you from acquiring a solid understanding of HTML, CSS, and other web technologies. Because most sites have at least a few images, even hobbyist web designers will need to know how to create and edit images, at minimum.

Again, I want to note that all of these responsibilities may fall into the hands of one designer who creates both the look and the functionality of a site. But for larger sites with bigger budgets, there is an opportunity to find your own special niche in the design process.

Development

A fair amount of the web design process involves the creation and troubleshooting of the documents, style sheets, scripts, and images that make up a site. At web design firms, the team that handles the creation of the files that make up the website (or templates for pages that get assembled dynamically) is usually called the development or production department.

Web developers may not design the look or structure of the site themselves, but they do need to communicate well with designers and understand the intended site goals so they may suggest solutions that meet those goals.

The broad disciplines that fall under development are authoring, styling, and scripting/programming.

Authoring/markup

Authoring is the term used for the process of preparing content for delivery on the Web, or more specifically, marking up the content with HTML tags that describe its content and function. If you want a job as a web developer, you need to have an intricate knowledge of HTML and how it functions on various browsers and devices. The HTML specification is constantly evolving, which means you’ll need to keep up with the latest best practices and opportunities as well as bugs and limitations. The good news is, it’s not difficult to get started, and from there, you can gradually increase your skills. We’ll be dabbling with HTML in Chapter 2, and then discussing it in great detail in Part II of this book.

Styling

In web design, the appearance of the page in the browser is controlled by style rules written in CSS (Cascading Style Sheets). We’ll get deep into CSS in Part III of this book (including what “cascading” means!), but for now just know that in contemporary web design, the appearance of the page is handled separately from the HTML markup of the page. Again, if you are interested in working in web development, knowing your way around CSS and how it is supported (or not supported) by browsers is guaranteed to be part of your job description.

Note

Many visual designers translate their designs into HTML and CSS documents themselves. In fact, there is a popular argument that in order to call yourself a “web designer,” you must be able to build your designs yourself, and nearly everyone agrees that your job prospects will be better if you are able to code as well as design.

Scripting and programming

As the Web has evolved into a platform of applications for getting stuff done, programming has never been more important. JavaScript is the language that makes elements on web pages do things. It adds behaviors and functionality to elements in the page and even to the browser window itself.

There are other web-related programming languages as well, including PHP, Ruby, Python, and ASP.NET, that run on the server and process data and information before it is sent to the user’s browser. See the sidebar Frontend Versus Backend for more information on what happens where.

Web scripting and programming definitely requires some traditional computer programming prowess. While many web programmers have degrees in computer science, it is also common for developers to be self-taught. A few developers I know started by copying and adapting existing scripts, then gradually added to their programming skills with each new project. Still, if you have no experience with programming languages, the initial learning curve may be a bit steep.

Teaching web programming is beyond the scope of this book. JavaScript is introduced in Chapter 19 (teaching JavaScript could fill a whole book itself). It is possible to turn out content-rich, well-designed sites without the need for programming, so hobbyist web designers should not be discouraged. However, once you get into collecting information via forms or serving information on demand, it is usually necessary to have a programmer on the team. You may also ask your hosting company if it offers the functionality you are looking for in an easy-to-use, canned service.

Content strategy and creation

Third on our list, though ideally first in the actual website creation process, is the critical matter of the site’s content itself. Anyone who uses the title “web designer” needs to be aware that everything we do supports the process of getting the content, message, or functionality to our users. Furthermore, good writing can help the user interfaces we create be more effective.

Of course, someone needs to create the content and maintain it—don’t underestimate the resources required to do this successfully. In addition, I want to call your attention to two content-related specialists on the modern web development team: the Content Strategist and Information Architect (IA).

When the content isn’t written right, the site can’t be fully effective. A Content Strategist makes sure that every bit of text on a site, from long explanatory text down to the labels on buttons, supports the brand identity and marketing goals of the company. Content strategy may also extend to data modeling and content management on a large and ongoing scale, such as planning for content reuse and update schedules.

An Information Architect (also called an Information Designer) organizes the content logically and for ease of findability. She may be responsible for search functionality, site diagrams, and how the content and data is organized on the server. Information architecture is inevitably entwined with UX and UI design, and it is not uncommon for a single person or team to perform all roles.

Multimedia

One of the cool things about the Web is that you can add multimedia elements to a site, including sound, video, animation, and even interactive games. You may decide to add multimedia skills, such as audio and video editing or Flash development (see the A Little More About Flash sidebar), to your web design tool belt, or you may decide to go all in and become a multimedia specialist. If you are not interested in becoming a multimedia developer, you can always hire one. Web development companies usually look for people who have mastered the standard multimedia tools, and have a good visual sensibility and an instinct for intuitive and creative multimedia design.

What Languages Do I Need to Learn?

If you are a visual designer who spends time in Photoshop and Illustrator, you may be put off by needing to learn how to create your designs with text, but I assure you, it’s pretty simple to get started. There are also authoring tools that speed up the production process, as we’ll discuss later in this chapter.

The following is a list of technologies associated with web development. Which languages and technologies you learn will depend on the role you see yourself in within the web design process. However, I advise everyone involved in building websites to know their way around HTML and Cascading Style Sheets, and if you want to do frontend web development for a living, JavaScript know-how is pretty much a job requirement. More technically inclined web professionals may take on server configurations, databases, and site performance, but these are generally not frontend developer tasks (although a basic familiarity with the backend issues never hurts).

At a Glance

Web-related technologies:

  • Hypertext Markup Language (HTML)

  • Cascading Style Sheets (CSS)

  • JavaScript and DOM scripting

  • Server-side programming and database management

Hypertext Markup Language (HTML)

HTML (HyperText Markup Language) is the language used to create web page documents. There are a few versions of HTML in use today: HTML 4.01 is the most firmly established, and the newer, more robust HTML5 is gaining steam and browser support. Both versions have a stricter implementation called XHTML (eXtensible HTML), which is essentially the same language with much stricter syntax rules. We’ll get to the particulars of what makes the various versions different in Chapter 10.

You may see HTML and XHTML referred to collectively as (X)HTML.

HTML is not a programming language; it is a markup language, which means it is a system for identifying and describing the various components of a document such as headings, paragraphs, and lists. The markup indicates the document’s underlying structure (you can think of it as a detailed, machine-readable outline). You don’t need programming skills—only patience and common sense—to write HTML.

The best way to learn HTML is to write out some pages by hand, as we will be doing in the exercises in this book. If you end up working in web production, you’ll live and breathe HTML. But even hobbyists will benefit from knowing what is going on under the hood. The good news is that it’s simple to learn the basics.

Cascading Style Sheets (CSS)

While HTML is used to describe the content in a web page, it is Cascading Style Sheets (CSS) that describe how that content should look. In the web design biz, the way the page looks is known as its presentation. That means fonts, colors, background images, line spacing, page layout, and so on, are all controlled with CSS. With the newest version (CSS3), you can even add special effects and basic animation to your page.

CSS also provides methods for controlling how documents will be presented in contexts other than the traditional desktop browser, such as in print or on devices with small screen widths. It also has rules for specifying the non-visual presentation of documents, such as how they will sound when read by a screen reader (although those are not well supported).

Style sheets are also a great tool for automating production because you can change the way an element looks across all the pages in your site by editing a single style sheet document. Style sheets are supported to some degree by all modern browsers.

Note

When this book uses the term “style sheets,” it is always referring to Cascading Style Sheets, the standard style sheet language for the World Wide Web.

Although it is possible to publish web pages using HTML alone, you’ll probably want to take on style sheets so you’re not stuck with the browser’s default styles. If you’re looking into designing websites professionally, proficiency at style sheets is mandatory.

Style sheets are discussed further in Part III.

JavaScript/DOM scripting

JavaScript is a scripting language that is used to add interactivity and behaviors to web pages, including these (just to name a few):

  • Checking form entries for valid entries

  • Swapping out styles for an element or an entire site

  • Making the browser remember information about the user for the next time she visits

  • Building interface widgets, such as expanding menus

JavaScript is used to manipulate the elements on the web page, the styles applied to them, or even the browser itself. There are other web scripting languages, but JavaScript (also called ECMAScript) is the standard and most ubiquitous.

You may also hear the term DOM scripting used in relation to JavaScript. DOM stands for Document Object Model, and it refers to the standardized list of web page elements that can be accessed and manipulated using JavaScript (or another scripting language). DOM scripting is an updated term for what used to be referred to as DHTML (Dynamic HTML), now considered an obsolete approach.

Writing JavaScript is a type of programming, so it may be time-consuming to learn if you have no prior programming experience. Many people teach themselves JavaScript by reading books and following and modifying existing examples. Most web-authoring tools come with standard scripts that you can use right out of the box for common functions.

Professional web developers are required to know JavaScript; however, plenty of visual designers rely on developers to add behaviors to their designs. So while JavaScript is useful, learning to write it may not be mandatory for all web designers. Teaching JavaScript is outside the scope of this book; I recommend Learning JavaScript by Shelley Powers (O’Reilly) as a good starting place if you want to learn more.

Server-side programming

Some simple websites are collections of static HTML documents and image files, but most commercial sites have more advanced functionality such as forms handling, dynamically generated pages, shopping carts, content management systems, databases, and so on. These functions are handled by web applications running on the server. There are a number of programming languages and frameworks (listed in parentheses) that are used to create web applications, including:

  • PHP (CakePHP, CodeIngniter, Drupal)

  • Python (Django, TurboGears)

  • Ruby (Ruby on Rails, Sinatra)

  • JavaScript (Node.js, Rhino, SpiderMonkey)

  • Java (Grails, Google Web Toolkit, JavaServer Faces)

  • ASP.Net (DotNetNuke, ASP.Net MVC)

Developing web applications is programmer territory and is not expected of all web designers. However, that doesn’t mean you can’t offer such functionality to your clients. It is possible to get shopping carts, content management systems, mailing lists, and blogs as prepackaged solutions, without the need to program them from scratch.

What Do I Need to Buy?

It should come as no surprise that professional web designers require a fair amount of gear, both hardware and software. One of the most common questions I’m asked by my students is, “What should I get?” I can’t tell you specifically what to buy, but I will provide an overview of the typical tools of the trade.

Bear in mind that while I’ve listed the most popular commercial software tools available, many of them have freeware or shareware equivalents that you can download if you’re on a budget (try CNET’s Download.com). With a little extra effort, you can get a full website up and running without big cash.

Equipment

For a comfortable web development environment, I recommend the following equipment:

  • A solid, up-to-date computer. Macintosh, Windows, or Linux is fine. Creative departments in professional web development companies tend to be Mac-based. Although it is nice to have a super-fast machine, the files that make up web pages are very small and tend not to be too taxing on computers. Unless you’re getting into sound and video editing, don’t worry if your current setup is not the very latest and greatest.

  • Extra memory. Because you’ll tend to bounce between a number of applications, it’s a good idea to have enough RAM installed on your computer to allow you to leave several memory-intensive programs running at the same time.

  • A large monitor. Although not a requirement, a large monitor makes life easier, particularly for a visual designer. (I’ve seen code-based developers get by just fine on an 11” MacBook Air.) The more monitor real estate you have, the more windows and control panels you can have open at the same time. You can also see more of your page to make design decisions.

    If you’re using a large monitor, just make sure you design for users with smaller monitors and devices in mind.

  • A scanner and/or digital camera. If you anticipate making your own images and textures, you’ll need some tools for creating them. I know a designer who has two scanners: one is the “good” scanner, and the other he uses to scan things like dead fish and rusty pans.

  • A second computer. Many web designers find it useful to have a test computer running a different platform than the computer they use for development (i.e., if you design on a Mac, test on a PC). Because browsers work differently on Macs than on Windows machines, it’s critical to test your pages in as many environments as possible, and particularly on the current Windows operating system. If you are a hobbyist web designer working at home, check your pages on a friend’s machine. Mac users should check out the Run Windows on Your Mac sidebar.

  • Mobile devices. The Web has gone mobile! That means it is absolutely critical that you test the appearance and performance of your site on a mobile browser on a smartphone or tablet device. You may already have a smartphone yourself. If you don’t have a budget for devices with multiple platforms, ask your friends if you can spend a few minutes looking at your site on theirs. I have one web developer friend who checks out his designs on the phones at his local mobile carrier store (although you might quickly wear out your welcome).

Software

There’s no shortage of software available for creating web pages. In the early days, we just made do with tools originally designed for print. Today, there are wonderful tools created specifically with web design in mind that make the process more efficient. Although I can’t list every available software release, I’d like to introduce you to the most common and proven web design tools. Note that you can download trial versions of many of these programs from the company websites, as listed in the Internet tools sidebar later in this chapter.

Web page authoring

Web-authoring tools are similar to desktop publishing tools, but the end product is a web page (an HTML file and its supporting files). These tools provide a visual “WYSIWYG” (What You See Is What You Get, pronounced “whizzy-wig”) interface and shortcuts that save you from typing repetitive HTML and CSS. These tools won’t excuse you from learning HTML. Even the most sophisticated tools won’t generate HTML as clean or well considered as a professional writing by hand, but they can speed up the process once you know what you’re doing.

Note

To do the exercises in this book, all you’ll need is the text editor that came with your operating system. No special programs are required.

The following are some popular web-authoring programs:

  • Adobe Dreamweaver. This is the hands-down industry standard due to its relatively clean code and advanced features.

  • Microsoft Expression Web (Windows only). Part of Microsoft’s suite of professional design tools, MS Expression Web boasts standards-compliant code and CSS-based layouts.

  • Nvu (Linux, Windows, and Mac OS X). Don’t want to pay for a WYSIWYG editor? Nvu (pronounced N-view, for “new view”) is an open source tool that matches many of the features in Dreamweaver, and you can download it for free at nvu.com.

HTML editors

HTML editors (as opposed to WYSIWYG authoring tools) are designed to speed up the process of writing HTML by hand. They do not allow you to edit the page visually, so you need to check your work in a browser. Many professional web designers actually prefer to author HTML documents by hand, and they tend to recommend the following:

  • TextPad (Windows only). TextPad is a simple and inexpensive plain-text code editor for Windows.

  • Sublime Text (Window, Mac, Linux). This inexpensive and up-and-coming text editor looks stripped down but has a lot of functionality (like color coding and full code overviews) that developers love.

  • Coda by Panic (Macintosh only). Coda users like its visual workflow, file management tools, and built-in terminal access.

  • TextMate by MacroMates (Macintosh only). This advanced text editor features project management tools and an interface that is integrated with the Mac operating system. It is growing in popularity because it is customizable, feature-rich, and inexpensive.

  • BBEdit by Bare Bones Software (Macintosh only). Lots of great shortcut features have made this the leading editor for Mac-based web developers.

Image-editing and drawing software

You’ll probably want to add images to your pages, so you will need an image-editing program. We’ll look at some of the more popular programs in greater detail in Part IV. In the meantime, you may want to look into the following popular web-graphics-creation tools:

  • Adobe Photoshop. Photoshop is undeniably the industry standard for image creation in both the print and web worlds.

  • Adobe Photoshop Elements. This lighter version of Photoshop is designed for photo editing and management, but some hobbyists may find that it has all the tools necessary for putting images on web pages.

  • Adobe Illustrator. Because designers need to create logos, icons, and illustrations at a variety of sizes and resolutions, many start with a vector image in Illustrator for maximum flexibility. You can output web graphics directly from Illustrator, or bring them into Photoshop for additional fine-tuning.

  • Adobe Fireworks. This web graphics program combines an image editor with tools for creating vector-based illustrations. It also features advanced tools for outputting web graphics.

  • Corel Paint Shop Pro Photo (Windows only). This full-featured image editor is popular with the Windows crowd, primarily due to its low price.

  • GIMP, “GNU Image Manipulation Program” (Unix, Windows, Mac). This free image-editing program is similar to Photoshop.

Internet tools

Because you will be dealing with the Internet, you need to have some tools specifically for viewing and moving files over the network:

  • A variety of browsers. Because browsers render pages differently, you’ll want to test your pages on as many browsers as possible, both on the desktop and on mobile devices. The following table lists the desktop browsers most commonly used on Windows and Macintosh operating systems:

    Windows:

    Macintosh OS X:

    Internet Explorer (the current version and at least two prior versions)

    Chrome

    Firefox

    Safari

    Opera

    Safari

    Chrome

    Firefox

    Opera

    And don’t ignore the mobile browsers! The following list is an overview of the most commonly used mobile web browsers as of this writing (although who knows what mobile browsers will be important by the time you read this?):

    • Mobile Safari (iOS)

    • Android Browser (Android)

    • BlackBerry Browser (RIM)

    • Nokia Series 40 and Nokia Browser for Symbian

    • Opera Mobile and Mini (installed on any device)

    • Internet Explorer Mobile (Windows Phone)

    • Silk (Kindle Fire)

  • A file-transfer protocol (FTP) program. An FTP program enables you to upload and download files between your computer and the computer that will serve your pages to the Web. The web authoring tools listed earlier all have FTP programs built right in. There are also dedicated FTP programs, as listed here:

    Windows

    Macintosh OS X:

    WS_FTP

    CuteFTP

    AceFTP

    Filezilla

    Transmit

    Cyberduck

    Fetch

    • Terminal application. If you know your way around the Unix operating system, you may find it useful to have a terminal (command-line) application that allows you to type Unix commands on the server. This may be useful for setting file permissions, moving or copying files and directories, or managing the server software.

      Windows users can install a Linux emulator called Cygwin for command-line access. There is also PuTTY, a free Telnet/SSH client. Mac OS X includes an application called Terminal that is a full-fledged terminal application, giving you access to the underlying Unix system and the ability to use SSH to access other command-line systems over the Internet.

At a Glance

Popular Web Design Software Links

Web page authoring

Adobe Dreamweaver www.adobe.com

Microsoft Expression Web www.microsoft.com/products/expression

Nvu (open source web page editor) www.nvu.com

HTML editing

TextMate by MacroMates for Mac OS www.macromates.com

Sublime Text www.sublimetext.com

TextPad for Windows www.textpad.com

Coda by Panic Software www.panic.com/coda/

BBEdit by Bare Bones Software www.barebones.com

Image editing and drawing

Adobe Photoshop www.adobe.com

Adobe Photoshop Elements www.adobe.com

Adobe Illustrator www.adobe.com

Adobe Fireworks www.adobe.com

Corel Paint Shop Pro Photo www.corel.com/paintshoppro

GIMP gimp.org

Browsers

Microsoft Internet Explorer (Windows only) www.microsoft.com/windows/internet-explorer/

Firefox www.firefox.com

Google Chrome www.google.com/chrome

Opera www.opera.com

Safari www.apple.com/safari

Networking

WS_FTP, CuteFTP, AceFTP, and others for Windows available at: www.download.com

Transmit (for Macintosh OSX) www.panic.com/transmit

Cyberduck (for Macintosh OSX) cyberduck.ch

Fetch (for Macintosh OSX) fetchsoftworks.com

Cygwin (Linux emulator for Windows) www.cygwin.com

PuTTY (telnet/SSH terminal emulator) www.chiark.greenend.org.uk/~sgtatham/putty/

What You’ve Learned

The lesson to take away from this chapter is: “you don’t have to learn everything.” And even if you want to learn everything eventually, you don’t need to learn it all at once. So relax, and don’t worry. The other good news is that, while many professional tools exist, it is possible to create a basic website and get it up and running without spending much money by using freely available or inexpensive tools and your existing computer setup.

As you’ll soon see, it’s easy to get started making web pages—you will be able to create simple pages by the time you’re done reading this book. From there, you can continue adding to your bag of tricks and find your particular niche in web design.

Test Yourself

Each chapter in this book ends with a few questions that you can answer to see if you picked up the important bits of information. Answers appear in Appendix A.

  1. Match these web professionals with the final product they might be responsible for producing.

    A. Graphic designer

    HTML and CSS documents

    B. Production department

    PHP scripts

    C. User experience designer

    Photoshop page sketch

    D. Web programmer

    Storyboards

  2. What does the W3C do?

  3. Match the web technology with its appropriate task:

    A. HTML

    Checks a form field for a valid entry

    B. CSS

    Creates a custom server-side web application

    C. JavaScript

    Identifies text as a second-level heading

    D. PHP

    Defines a new markup language for sharing financial information

    E. XML

    Makes all second-level headings blue

  4. What is the difference between frontend and backend web development?

  5. What is the difference between a web-authoring program and an HTML-editing tool?

The best content for your career. Discover unlimited learning on demand for around $1/day.