David Powers is an author and trainer, who's passionate about web standards. He's written or contributed to 15 books and video series about Dreamweaver, PHP, CSS, and other web-related technologies. His most recent titles are HTML5, CSS3, and jQuery with Adobe Dreamweaver CS5.5: Learn by Video, and Adobe Dreamweaver CS5.5 Studio Techniques: Designing and Developing for Mobile with jQuery, HTML5, and CSS3 (both Adobe Press). David's articles are among the most popular tutorials in the Dreamweaver Developer Center. David is an Adobe Community Professional for Dreamweaver and specializes in developing web solutions using PHP and the MySQL database. Prior to his career as an author, David was a BBC radio and TV journalist, and spent many years working in Japan. He has translated several musical plays from Japanese into English.

More articles by this author

Hangman game: Creating the interface

(Dec 11, 2011)

Combine the HTML5 Canvas, JavaScript, and CSS to create a web app based on the popular word-guessing game, Hangman.

Using Modernizr to detect HTML5 and CSS3 browser support

(Aug 29, 2011)

Learn how you can use this JavaScript library to serve alternative styles to browsers that don't support the latest HTML5 and CSS3 features.

Understanding HTML5 intelligent forms – Part 2

(Aug 22, 2011)

Learn about new form attributes that allow you to specify required fields, minimum and maximum values, and more.

Understanding HTML5 intelligent forms – Part 1

(Aug 10, 2011)

Learn about the new input elements and the datalist element, which lets you suggest options for a text input field.

Introduction to media queries – Part 2

(Aug 01, 2011)

Learn how to apply styles to a sample page and then how to use media queries to override them with styles optimized for different screen widths.

Introduction to media queries – Part 1

(Jul 25, 2011)

Learn about media queries and how to tailor your website development to a specific range of output devices.

Getting to know your CSS selectors – Part 2

(Jun 27, 2011)

Style elements based on their position within the document hierarchy without the need to add custom classes to your HTML markup.