Beginning html xhtml css_ and java_script

9,613 views

Published on

Published in: Technology, Design
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
9,613
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
47
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Beginning html xhtml css_ and java_script

  1. 1. DuckettLearn to create attractive Join the discussion @ p2p.wrox.com Wrox Programmer to Programmer™web sites that are easy to use BeginningSince the web was first created, the languages used to build web siteshave been constantly evolving. Now a set of best practices has emergedusing HTML or XHTML to create your basic web pages, CSS to controltheir appearance and make them look attractive, and JavaScript to add HTML, XHTML, CSS,interactivity. Without assuming any previous experience, this valuableresource makes it easy to learn how to build web sites using the most up-to-date web standards. Whether you’re a beginner eager to start writingyour first web page or a more experienced programmer seeking to update wrox.com and JavaScriptyour skills, you will find practical introductions to these essential lan-guages, as well as invaluable tips and techniques used by experienced webprofessionals. Programmer• How to create HTML and XHTML pages that incorporate links, images, Forums tables, audio, and video Join our Programmer to Programmer forums to ask• Ways to use CSS to control text, colors, backgrounds, and page layout and answer programming questions about this book,• Design principles employed by experienced designers to create attractive layouts join discussions on the• The basics of JavaScript and working with AJAX libraries hottest topics in the industry, and connect with fellow• How to build sites that are accessible, easy to use, and will work programmers from around on a variety of devices including mobile phones the world.• How to test your web site and put it on the web• First-hand experience of coding practices commonly used in the real world Code Downloads Take advantage of free code• The elements of basic text formatting samples from this book, as• Text markup and character entities for special charactersJon Duckett has spent over a decade helping a wide range of companies implement well as code samples from hundreds of other books, all ready to use. Beginning HTML, XHTML, ®innovative web strategies. Taking a hands-on approach, he designs many of theprojects he works on and helps to code them. During this time, Jon has written Read More Find articles, ebooks, sampleseveral books covering web design, programming, accessibility and usability. chapters and tables of contents for hundreds of books, andWrox Beginning guides are crafted to make learning programming languages more reference resources onand technologies easier than you think, providing a structured, tutorial formatthat will guide you through all the techniques involved. programming topics that matter to you. CSS, and JavaScript ® Web Site Development $34.99 USA $41.99 CAN Jon Duckett
  2. 2. Related Wrox Books Beginning CSS: Cascading Style Sheets for Web Design, 2nd Edition ™ ISBN: 978-0-470-09697-0 Programmer to Programmer This comprehensive introduction clearly shows you how to combine Cascading Style Sheets (CSS) with HTML, XHTML, or XML to create rich, aesthetically compelling web designs. Packed with detailed examples in syntax-colored code and showing the resulting web pages in color, the second edition will help you discover how and why CSS works. Get more out of Beginning JavaScript, 4th Edition ISBN: 978-0-470-52593-7 Serving as a great introduction to JavaScript, this book offers all you need to start using JavaScript on your web pages right away. It’s fully updated and covers utilizing JavaScript with the latest versions of the Internet Explorer, Firefox, and Safari browsers and walks you through the basics of JavaScript: what it is, how it works, and what you can do with it. WROX.com Beginning JavaScript and CSS Development with jQuery ISBN: 978-0-470-22779-4 With this unique, project-oriented book, author Richard York teaches even the most novice of JavaScript users how to quickly get started utilizing the JavaScript jQuery Library to decrease the amount of code that needs to be written and tested. A four-color code syntax highlighting system provides a visual reinforcement and allows you to see the nuts and bolts that comprise each line and section of code. With this helpful guide and hands-on exercises, you’ll be able to put jQuery to work for you and avoid having to write code from scratch. JavaScript Programmer’s Reference Interact Chapters on Demand ISBN: 978-0-470-34472-9 This book covers the JavaScript language in its entirety, showing you how to leverage its many features to create the next generation of Take an active role online by participating in Purchase individual book chapters in pdf standards-compliant Rich Internet Applications (RIAs) using Ajax, JSON, and much more. Alexei White, a veteran programming instructor, our P2P forums format provides you with both a practical tutorial and an easily accessible reference to a range of topics from basic JavaScript syntax and core functions to advanced topics such as animation, debugging, remote server interaction, and offline storage. Wrox Online Library Join the Community Professional JavaScript for Web Developers, 2nd Edition ISBN: 978-0-470-22780-0 Hundreds of our books are available online Sign up for our free monthly newsletter at This book covers JavaScript from its very beginning to the present-day incarnations that include support for the DOM and Ajax. It also through Books24x7.com newsletter.wrox.com shows you how to extend this powerful language to meet specific needs and create seamless client-server communication without inter- mediaries such as Java or hidden frames. You’ll explore the components that make up a JavaScript implementation, with specific focus on standards such as ECMAScript and DOM. You’ll also learn how to utilize regular expressions and build dynamic user interfaces. This valu- able insight will help you apply JavaScript solutions to the business problems faced by Web developers everywhere. Wrox Blox Browse Download short informational pieces and Ready for more Wrox? We have books and Professional JavaScript Frameworks: Prototype, YUI, ExtJS, Dojo and MooTools ISBN: 978-0-470-38459-6 code to keep you up to date and out of e-books available on .NET, SQL Server, Java, Packed with coverage of many of the most popular JavaScript frameworks, this authoritative guide examines how these frameworks can trouble! XML, Visual Basic, C#/ C++, and much more! present unique and varying approaches to problems in web development. This unparalleled team of authors has assembled some of the most active and popular JavaScript frameworks available and they walk you through common web development tasks addressed by each framework, while also examining how the framework approaches a particular set of tasks. Practical examples and clear explanations demonstrate the many aspects of contemporary web development and exactly what the selection of JavaScript frameworks has to offer so that you can get up and running quicklyContact Us.We always like to get feedback from our readers. Have a book idea?Need community support? Let us know by e-mailing wrox-partnerwithus@wrox.com
  3. 3. Beginning HTML, XHTML, CSS, and JavaScript® Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi Chapter 1: Structuring Documents for the Web . . . . . . . . . . . . . . . . . . . . . . . . 1 Chapter 2: Links and Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Chapter 3: Images, Audio, and Video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Chapter 4: Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 Chapter 5: Forms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Chapter 6: Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Chapter 7: Cascading Style Sheets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 Chapter 8: More Cascading Style Sheets . . . . . . . . . . . . . . . . . . . . . . . . . . 307 Chapter 9: Page Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 Chapter 10: Design Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 Chapter 11: Learning JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 Chapter 12: Working with JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 Chapter 13: Putting Your Site on the Web . . . . . . . . . . . . . . . . . . . . . . . . . 587 Chapter 14: Checklists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627 Appendix A: Answers to Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641 Appendix B: XHTML Element Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . 677 Appendix C: CSS Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713 Appendix D: Color Names and Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741 Appendix E: Character Encodings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749 Appendix F: Special Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753 Appendix G: Language Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767 Appendix H: Mime Media Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771 Appendix I: Deprecated and Browser-Specific Markup . . . . . . . . . . . . . . . . . 783 Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815ffirs.indd i 11/20/09 7:59:14 PM
  4. 4. ffirs.indd ii 11/20/09 7:59:15 PM
  5. 5. Beginning HTML, XHTML, CSS, and JavaScript® Jon Duckett Wiley Publishing, Inc.ffirs.indd iii 11/20/09 7:59:15 PM
  6. 6. Beginning HTML, XHTML, CSS, and JavaScript® Published by Wiley Publishing, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com Copyright © 2010 by Wiley Publishing, Inc., Indianapolis, Indiana Published simultaneously in Canada ISBN: 978-0-470-54070-1 Manufactured in the United States of America 10 9 8 7 6 5 4 3 2 1 No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008, or online at http:// www.wiley.com/go/permissions. Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including without limitation warranties of fitness for a particular purpose. No warranty may be created or extended by sales or promotional materials. The advice and strategies contained herein may not be suitable for every situation. This work is sold with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional services. If professional assistance is required, the services of a competent professional person should be sought. Neither the publisher nor the author shall be liable for damages arising herefrom. The fact that an organization or Web site is referred to in this work as a citation and/or a potential source of further information does not mean that the author or the publisher endorses the information the organization or Web site may provide or recommendations it may make. Further, readers should be aware that Internet Web sites listed in this work may have changed or disappeared between when this work was written and when it is read. For general information on our other products and services please contact our Customer Care Department within the United States at (877) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002. Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books. Library of Congress Control Number: 2009937840 Trademarks: Wiley, the Wiley logo, Wrox, the Wrox logo, Wrox Programmer to Programmer, and related trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries, and may not be used without written permission. JavaScript is a registered trademark of Sun Microsystems, Inc. All other trademarks are the property of their respective owners. Wiley Publishing, Inc., is not associated with any product or vendor mentioned in this book.ffirs.indd iv 11/20/09 7:59:16 PM
  7. 7. About the Author Jon Duckett has spent over a decade helping a wide range of companies implement innovative web strategies. Taking a hands-on approach, he designs many of the projects he works on and helps to code them. During this time, Jon has written several books covering web design, programming, accessibility, and usability. About the Tech Editor Chris Ullman is a freelance web developer and technical editor/author who has spent many years working in web technologies. Coming from a computer science background, he gravitated towards MS technologies during the summer of ASP (1997). He cut his teeth on Wrox Press ASP guides, and since then has edited or contributed to more than 30 books, most notably as lead author for Wrox’s bestselling Beginning ASP/ASP.NET 1.x/2 series. He lives in Cornwall and spends his non-computing time running, writing music, and attempting — with his wife, Kate — to curb the enthusiasm of three very boisterous young children.ffirs.indd v 11/20/09 7:59:16 PM
  8. 8. Credits Executive Editor Vice President and Executive Group Publisher Carol Long Richard Swadley Project Editor Vice President and Executive Publisher William Bridges Barry Pruett Technical Editor Associate Publisher Chris Ullman Jim Minatel Production Editor Project Coordinator, Cover Daniel Scribner Lynsey Stanford Copy Editor Proofreader Nancy Rapoport Nancy Hanger Editorial Director Indexer Robyn B. Siesky Robert Swanson Editorial Manager Cover Designer Mary Beth Wakefield Michael E. Trent Marketing Manager Cover Image David Mayhew © istockphoto.com/ Daft_Lion_Studio Production Manager Tim Tateffirs.indd vi 11/20/09 7:59:16 PM
  9. 9. Contents Introduction xxi Chapter 1: Structuring Documents for the Web 1 A Web of Structured Documents 1 Introducing HTML and XHTML 2 Tags and Elements 4 Separating Heads from Bodies 5 Attributes Tell Us About Elements 7 Learning from Others by Viewing Their Source Code 8 Elements for Marking Up Text 9 Basic Text Formatting 10 White Space and Flow 10 Creating Headings Using <hn> Elements 11 The align Attribute (Deprecated) 13 Creating Paragraphs Using the <p> Element 15 Creating Line Breaks Using the <br /> Element 15 Creating Preformatted Text Using the <pre> Element 16 Presentational Elements 19 The <b>Element 20 The <i>Element 20 The <u>Element (Deprecated) 21 The <s> and <strike> Elements (Deprecated) 21 The <tt> Element 21 The <sup> Element 22 The <sub> Element 22 The <big> Element 22 The <small> Element 22 The <hr /> Element 23 Phrase Elements 23 The <em> Element Adds Emphasis 24 The <strong> Element Adds Strong Emphasis 24 The <address> Element Is for Addresses 24 The <abbr> Element Is for Abbreviations 25 The <acronym> Element Is for Acronym Use 25 The <dfn> Element Is for Special Terms 26ftoc.indd vii 11/20/09 11:34:14 PM
  10. 10. Contents The <blockquote> Element Is for Quoting Text 26 Using the cite Attribute with the <blockquote> Element 27 The <q> Element Is for Short Quotations 27 The <cite> Element Is for Citations 27 The <code> Element Is for Code 28 The <kbd> Element Is for Text Typed on a Keyboard 29 The <var> Element Is for Programming Variables 30 The <samp> Element Is for a Program Output 30 Lists 30 Using the <ul> Element to Create Unordered Lists 31 Ordered Lists 31 Definition Lists 33 Nesting Lists 34 Editing Text 38 Using Character Entities for Special Characters 39 Comments 40 The <font> Element (Deprecated) 40 Understanding Block and Inline Elements 41 Grouping Elements with <div> and <span> 42 The XML Declaration 43 Document Type Declaration 43 Core Elements and Attributes 45 The <html> Element 45 The <head> Element 45 The <title> Element 46 The <body> Element 47 Attribute Groups 47 Core Attributes 47 Internationalization 49 UI Events 51 Summary 51 Exercises 52 Chapter 2: Links and Navigation 55 Basic Links 55 Linking to Other Web Pages 56 Linking to E-mail Addresses 58 Understanding Directories and Directory Structures 61 Understanding URLs 62 Absolute and Relative URLs 63 The <base> Element 66 viiiftoc.indd viii 11/20/09 11:34:14 PM
  11. 11. Contents Creating Links with the <a> Element 66 Creating a Source Anchor with the href Attribute 66 Creating a Destination Anchor Using the name and id Attributes (Linking to a Specific Part of a Page) 67 The <a> Element’s Other Attributes 70 Advanced E-mail Links 76 Summary 78 Exercises 78 Chapter 3: Images, Audio, and Video 79 Adding Images Using the <img> Element 79 The src Attribute 80 The alt Attribute 80 The height and width Attributes 81 The align Attribute (Deprecated) 83 The border Attribute (Deprecated) 84 The hspace and vspace Attributes (Deprecated) 84 The ismap and usemap Attributes 85 The longdesc Attribute 85 The name Attribute (Deprecated) 86 Using Images as Links 88 Image Maps 89 Client-Side Image Maps 90 Server-Side Image Maps 94 Choosing the Right Image Format 95 GIF Images 97 Animated GIFs 100 JPEG Images 101 PNG Images 102 Keeping File Sizes Small 102 Adding Flash, Video, and Audio to Your Web Pages 104 Adding Flash Movies to Your Site 106 Adding Videos to Your Site 113 Adding Videos Using Flash Video 115 Video Size 117 Adding Audio to Your Site 118 Automatically Playing Audio and Video When a Page Loads 123 A Closer Look at the <object> and <param> Elements 123 The <param> Element 126 Summary 127 Exercises 128 ixftoc.indd ix 11/20/09 11:34:15 PM
  12. 12. Contents Chapter 4: Tables 131 Introducing Tables 131 Basic Table Elements and Attributes 139 The <table> Element Creates a Table 139 The <tr> Element Contains Table Rows 144 The <td> and <th> Elements Represent Table Cells 146 Adding a <caption> to a Table 151 Grouping Sections of a Table 151 Spanning Columns Using the colspan Attribute 151 Spanning Rows Using the rowspan Attribute 153 Splitting Up Tables Using a Head, Body, and Foot 154 Grouping Columns Using the <colgroup> Element 157 Columns Sharing Styles Using the <col> Element 158 Nested Tables 158 Accessible Tables 160 How to Linearize Tables 160 Using the id, scope, and headers Attributes 161 Summary 164 Exercises 165 Chapter 5: Forms 167 Introducing Forms 168 Creating a Form with the <form> Element 171 The action Attribute 171 The method Attribute 172 The id Attribute 172 The name Attribute (Deprecated) 172 The onsubmit Attribute 172 The onreset Attribute 173 The enctype Attribute 173 The accept-charset Attribute 174 The accept Attribute 174 The target Attribute 174 White Space and the <form> Element 174 Form Controls 175 Text Inputs 175 Buttons 180 Checkboxes 183 Radio Buttons 185 xftoc.indd x 11/20/09 11:34:15 PM
  13. 13. Contents Select Boxes 187 File Select Boxes 193 Hidden Controls 194 Object Controls 195 Creating Labels for Controls and the <label> Element 198 Structuring Your Forms with <fieldset> and <legend> Elements 200 Focus 202 Tabbing Order 202 Access Keys 204 Disabled and Read-Only Controls 205 Sending Form Data to the Server 207 HT TP get 207 HT TP post 208 Summary 211 Exercises 212 Chapter 6: Frames 215 Introducing the Frameset 216 When To Use Frames 218 The <frameset> Element 219 The cols Attribute 220 The rows Attribute 222 Browser-Specific Extensions to the <frameset> Element 222 The <frame> Element 225 The src Attribute 225 The name Attribute 226 The frameborder Attribute 226 The marginwidth and marginheight Attributes 226 The noresize Attribute 227 The scrolling Attribute 227 The longdesc Attribute 227 The <noframes> Element 228 Creating Links Between Frames 228 Setting a Default Target Frame Using the <base> Element 230 Nested Framesets 231 Inline or Floating Frames with <iframe> 234 The <iframe> Element 235 Summary 240 Exercises 240 xiftoc.indd xi 11/20/09 11:34:15 PM
  14. 14. Contents Chapter 7: Cascading Style Sheets 243 Introducing CSS 244 A Basic Example 245 Inheritance 249 Where You Can Add CSS Rules 250 The <link> Element 250 The <style> Element 252 Advantages of External CSS Style Sheets 253 CSS Properties 254 Controlling Text 255 The font-family Property 257 The font-size Property 259 The font-weight Property 261 The font-style Property 262 The font-variant Property 262 The font-stretch Property 263 The font-size-adjust Property 263 Text Formatting 264 The color Property 264 The text-align Property 265 The vertical-align Property 266 The text-decoration Property 267 The text-indent Property 268 The text-shadow Property 269 The text-transform Property 269 The letter-spacing Property 270 The word-spacing Property 271 The white-space Property 271 The direction Property 272 Text Pseudo-Classes 273 The first-letter Pseudo-Class 273 The first-line Pseudo-Class 274 Selectors 276 Universal Selector 277 The Type Selector 277 The Class Selector 277 The ID Selector 278 The Child Selector 278 The Descendant Selector 278 The Adjacent Sibling Selector 279 xiiftoc.indd xii 11/20/09 11:34:16 PM
  15. 15. Contents The General Sibling Selector 279 Using Child and Sibling Selectors To Reduce Dependence on Classes in Markup 279 Attribute Selectors 281 Lengths 283 Relative Units 283 Absolute Units 284 Percentages 284 Introducing the Box Model 285 An Example Illustrating the Box Model 286 The Border Properties 288 The padding Property 291 The margin Property 292 Dimensions of a Box 294 Internet Explorer Box Model Bug 299 Summary 304 Exercises 304 Chapter 8: More Cascading Style Sheets 307 Links 308 Backgrounds 309 The background-color Property 310 The background-image Property 310 The background-repeat Property 312 The background-position Property (for Fixing Position of Backgrounds) 314 The background-attachment Property (for Watermarks) 316 The background Property (the Shorthand) 316 Lists 317 The list-style-type Property 317 The list-style-position Property 318 The list-style-image Property 319 The list-style Property (the Shorthand) 320 Tables 320 Table-Specific Properties 322 The border-collapse Property 323 The border-spacing Property 324 The empty-cells Property 324 The caption-side Property 326 The table-layout Property 327 Outlines 328 The outline-width Property 329 The outline-style Property 329 xiiiftoc.indd xiii 11/20/09 11:34:16 PM
  16. 16. Contents The outline-color Property 329 The outline Property (the Shorthand) 329 The :focus and :active Pseudo-Classes 330 Generated Content 331 The :before and :after Pseudo-Elements 331 The content Property 332 Miscellaneous Properties 335 The cursor Property 335 The display Property 337 The visibility Property 337 Additional Rules 338 The @import Rule: Modularized Style Sheets 338 The !important Rule 339 The @charset Rule 340 Positioning and Layout with CSS 340 Normal Flow 341 The position Property 342 Box Offset Properties 342 Relative Positioning 343 Absolute Positioning 344 Fixed Positioning 345 The z-index Property 346 Floating Using the float Property 348 The clear Property 349 Summary 355 Exercises 355 Chapter 9: Page Layout 357 Understanding the Site’s Audience 358 Who Will Visit the Site? 358 Why Have They Visited Your Site? 359 What Does a Visitor Need to Achieve a Goal? 361 How Often Will People Want to Visit? 362 Things You Want the Site to Do 362 Prioritizing Information 362 Grouping and Categorization 363 Creating a Site Map 364 Identifying Key Elements for Each Page 365 Page Size (and Screen Resolution) 365 Understanding Screen Sizes 366 Fixed-Width vs. Liquid Designs 367 xivftoc.indd xiv 11/20/09 11:34:16 PM
  17. 17. Contents Designing Pages 373 Composition and Grids 374 Sketching the Placement of Elements 380 How Visitors Look at a Page 387 Coding Your Design 391 The IE Box Model Bug 391 Working with a Grid 392 Multi-Column Layouts 394 Developing for Mobile Devices 408 Understanding the Medium and How It Is Used 408 How to Approach Mobile Development 410 Building a Mobile Site 413 Summary 419 Exercises 419 Chapter 10: Design Issues 421 Typography 422 Line Length — A Measure 422 Font Sizes 424 Choosing Fonts 426 Line Height — Leading 427 CSS Resets 429 Line Height — Baseline Grids 430 Space Between Letters — Tracking 434 White Space 434 Chunking 436 Contrast 437 Navigation 440 Menus 440 Links 449 Site Search Features 452 Tables 454 Padding 454 Headings 455 Shading Alternate Rows 456 Forms 456 Before Designing the Form 457 Designing the Form 459 Layout of Forms 464 Summary 479 Exercises 479 xvftoc.indd xv 11/20/09 11:34:17 PM
  18. 18. Contents Chapter 11: Learning JavaScript 481 What Is Programming About? 482 How to Add a Script to Your Pages 484 Comments in JavaScript 486 The <noscript> Element 487 The Document Object Model 488 Accessing Values Using Dot Notation 490 The Document Object 491 The Forms Collection 493 Form Elements 495 Images Collection 498 Different Types of Objects 500 Starting to Program with JavaScript 501 Variables 502 Assigning a Value to a Variable 502 Lifetime of a Variable 503 Operators 503 Arithmetic Operators 504 Assignment Operators 504 Comparison Operators 505 Logical or Boolean Operators 506 String Operator (Using + with Strings) 506 Functions 506 How to Define a Function 507 How To Call a Function 507 The Return Statement 508 Conditional Statements 508 if Statements 508 if . . . else Statements 509 switch Statement 510 Looping 511 while 512 do . . . while 512 for 513 Infinite Loops and the break Statement 514 Events 514 Built-in Objects 516 String 516 Date 520 Math 523 xviftoc.indd xvi 11/20/09 11:34:17 PM
  19. 19. Contents Array 525 Window 526 Writing JavaScript 528 A Word About Data Types 529 Keywords 530 Summary 530 Exercises 531 Chapter 12: Working with JavaScript 533 Practical Tips for Writing Scripts 533 Has Someone Already Written This Script? 533 Reusable Functions 534 Using External JavaScript Files 534 Place Scripts in a Scripts Folder 534 Form Validation 535 When to Validate 535 What You Can Check For 535 How to Check a Form 536 Checking Text Fields 536 Select Box Options 551 Radio Buttons 553 Checkboxes 554 Form Enhancements 556 Focus on First Form Item 556 Auto-Tabbing Between Fields 557 Disabling a Text Input 558 Case Conversion 560 Trimming Spaces from Beginning and End of Fields 560 Selecting All the Content of a Text Area 562 Check and Uncheck All Checkboxes 562 JavaScript Libraries 570 Animated Effects Using Scriptaculous 571 Drag-and-Drop Sortable Lists Using Scriptaculous 574 Creating a Lightbox 575 Creating a Modal Window 577 Sortable Tables with MochiKit 578 Creating Calendars with YUI 581 Auto-Completing Text Inputs with YUI 582 Summary 584 Exercises 585 xviiftoc.indd xvii 11/20/09 11:34:17 PM
  20. 20. Contents Chapter 13: Putting Your Site on the Web 587 Meta Tags 588 name and content Attributes 588 http-equiv and content 591 The scheme Attribute 593 Testing Your Site 593 Validating HTML, XHTML, and CSS 594 Link Checking 596 Checking Color Depths 598 Accessibility Checkers 598 Checking in Different Versions of Browsers 599 Pilot Testing 599 Proofreading 601 Taking the Leap to Live 601 Getting a Domain Name 601 Hosting 602 Key Considerations for Choosing a Host 602 Putting Your Site on a Server Using FTP 604 The Importance of Directory Structure and Relative URLs 606 Telling the World about Your Site 607 Always Mention Your URL 608 Content Is King 608 Forums, Communities, and Social Networks 608 Check for Trade Sites and Directories 608 Reciprocal Links 609 Look at Your Competition 609 Make It Easy for People to Link to You 609 Pay-per-click Advertising 610 Display Advertising 612 Create an E-mail Newsletter 612 Understanding Your Visitors 613 Ten Things to Check in Google Analytics 614 Measuring Everything 615 What Next? 616 Tools 617 Introducing Other Technologies 620 Summary 626 xviiiftoc.indd xviii 11/20/09 11:34:17 PM
  21. 21. Contents Chapter 14: Checklists 627 Search Engine Optimization Checklist 627 On-Page Techniques 628 Identifying Keywords and Phrases 628 Off-Page Techniques 631 Accessibility Checklist 631 Setting Up Your Document 631 Structural and Semantic Markup 632 Links and Navigation 632 Images and Multimedia 632 Color 633 Tables 633 Forms 634 Style Sheets 634 JavaScript 634 Skip Links 634 Differences Between HTML and XHTML 635 All Tag Names and Attribute Names Must Be Written in Lowercase 635 All Attributes Must Have a Value Given in Double Quotation Marks 636 Elements Must Nest; There Must Be No Overlapping 636 Empty Elements Must Contain a Closing Slash 636 Scripts Should Live in a CDATA Section 636 HTML 5 637 Language Compatibility in HTML 5 637 Stylistic Markup Will Be Removed 637 New Semantic Elements 638 New Values for the <input> Element’s type Attribute 639 New Multimedia Elements 639 New APIs 640 Appendix A: Answers to Exercises 641 Appendix B: XHTML Element Reference 677 Appendix C: CSS Properties 713 Appendix D: Color Names and Values 741 xixftoc.indd xix 11/20/09 11:34:18 PM
  22. 22. Contents Appendix E: Character Encodings 749 Appendix F: Special Characters 753 Appendix G: Language Codes 767 Appendix H: MIME Media Types 771 Appendix I: Deprecated and Browser-Specific Markup 783 Index 815 xxftoc.indd xx 11/20/09 11:34:18 PM
  23. 23. Introduction There are a lot of books about designing and building web pages, so thank you for picking up this one. During the relatively short life of the Web, many technologies have been introduced to help you create web pages, some of which have lasted, others of which have disappeared. Now the dust is beginning to settle, and commonly accepted best practices are emerging; so the aim of this book is to teach you how to create pages for the Web as it is today and will be for the next few years. This book is different from many books because it teaches you more than just the code you need to learn to write web pages; I wanted to share some of the practical experience I have gained designing and building web sites over the past 12 years. Therefore, alongside the usual technical information, you will see advice on topics that range from how to approach the task of creating a new site to chapters that let you in on the techniques used by designers to make their pages more attractive. You will also find information about important topics such as accessibility and usability that any professional web programmer needs to understand. And, once you have worked through this book, it should continue to serve as a helpful reference text you can keep nearby and dip into as you need to. As the title of this book suggests, you will be learning a few different languages in order to create effective and attractive web pages: ❑ HTML and XHTML are needed to explain the structure of any web pages. If you look at this page it is made up of a lot of words. On web pages it is the job of HTML and XHTML to explain the structure of the words — which words form a heading, where paragraphs start and end, and which text should have bullet points. These languages also specify links between different web pages and where images should appear. This book focuses mainly on teaching you XHTML, but you will be glad to know that by learning XHTML you will automatically be able to write HTML (because you can consider XHTML to be exactly the same as HTML, but with a few extra rules added — making it a little more strict). At the end of the book is a preview of HTML 5, the next version of HTML. ❑ CSS is used to control how your pages look. For example, you can use CSS to specify that a typeface should be a large, bold Arial typeface or that the background of a page should be a light green. You can also use CSS to control where different items appear on a page, such as placing three columns of text next to each other. ❑ JavaScript can add interactivity to your web pages. JavaScript is a huge topic in itself, so it is not covered in the same depth as XHTML and CSS, but I will teach you just enough JavaScript to write your own basic scripts and to enable you to incorporate many of the thousands of JavaScripts that are available for free on the Web. About the Book As you have already seen, you’ll be learning how to control the structure of a web page using XHTML, how to style it using CSS, and how to add interactivity using JavaScript. Learning how this code works will give you a solid foundation for building web sites, and alongside this you will see plenty of practical advice that helps you learn about issues you are likely to meet when you start building sites.flast.indd xxi 11/20/09 11:19:14 PM
  24. 24. Introduction While learning how to code, you will see lots of advice on usability — how to build web sites that are easy to use and enable visitors to achieve what they came for. In several parts of the book I also discuss issues regarding accessibility — making a site available to as many users as possible (in particular, people with disabilities, who may have impaired vision or difficulty using a mouse). In the same way that many countries have laws requiring architects to design buildings that are accessible, there are strict accessibility guidelines for building web sites to ensure they do not exclude visitors. A little careful thought before you build your web site means that people with vision impairments can either view your site with larger text or have it read to them by a piece of software called a screen reader. Whole books are dedicated to the topics of usability and accessibility and are aimed at web developers who need to learn how to make their code more accessible and usable. My aim is to teach you to code with these principles in mind from the start. In addition to learning how to code usable and accessible web sites, I will also be sharing lots of tips and techniques that professional web designers use when creating new sites. These techniques make it easier for anyone to lay out pages in a more attractive way. You will even learn about creating sites that work on devices such as mobile phones and game consoles, which are increasingly being used to access the Web. You will probably be relieved to know that many of the browsers on such devices employ the same languages that you will be learning in this book — and that by learning to use XHTML with CSS you will be able to create web sites that work on a variety of platforms, and will therefore last much longer than those written in older versions of HTML. While it is important to learn the latest practices for creating web pages using these languages, if yo