Price: $65.99
(as of Sep 18, 2026 06:24:43 UTC – Details)


Do you want to build web pages but have no prior experience? This friendly guide is the perfect place to start. You’ll begin at square one, learning how the web and web pages work, and then steadily build from there. By the end of the book, you’ll have the skills to create a simple site with multicolumn pages that adapt for mobile devices.

Each chapter provides exercises to help you learn various techniques and short quizzes to make sure you understand key concepts.

This thoroughly revised edition is ideal for students and professionals of all backgrounds and skill levels. It is simple and clear enough for beginners, yet thorough enough to be a useful reference for experienced developers keeping their skills up to date.

Build HTML pages with text, links, images, tables, and forms Use style sheets (CSS) for colors, backgrounds, formatting text, page layout, and even simple animation effects Learn how JavaScript works and why the language is so important in web design Create and optimize web images so they’ll download as quickly as possible NEW! Use CSS Flexbox and Grid for sophisticated and flexible page layout NEW! Learn the ins and outs of Responsive Web Design to make web pages look great on all devices NEW! Become familiar with the command line, Git, and other tools in the modern web developer’s toolkit NEW! Get to know the super-powers of SVG graphics

Publisher ‏ : ‎ O’Reilly Media
Publication date ‏ : ‎ June 19, 2018
Edition ‏ : ‎ 5th
Language ‏ : ‎ English
Print length ‏ : ‎ 808 pages
ISBN-10 ‏ : ‎ 1491960205
ISBN-13 ‏ : ‎ 978-1491960202
Item Weight ‏ : ‎ 3.96 pounds
Dimensions ‏ : ‎ 8 x 1.5 x 9.75 inches
Best Sellers Rank: #682,018 in Books (See Top 100 in Books) #33 in CSS Programming #136 in JavaScript Programming (Books) #354 in Web Design (Books)
Customer Reviews: 4.6 4.6 out of 5 stars (694) var dpAcrHasRegisteredArcLinkClickAction; P.when(‘A’, ‘ready’).execute(function(A) { if (dpAcrHasRegisteredArcLinkClickAction !== true) { dpAcrHasRegisteredArcLinkClickAction = true; A.declarative( ‘acrLink-click-metrics’, ‘click’, { “allowLinkDefault”: true }, function (event) { if (window.ue) { ue.count(“acrLinkClickCount”, (ue.count(“acrLinkClickCount”) || 0) + 1); } } ); } }); P.when(‘A’, ‘cf’).execute(function(A) { A.declarative(‘acrStarsLink-click-metrics’, ‘click’, { “allowLinkDefault” : true }, function(event){ if(window.ue) { ue.count(“acrStarsLinkWithPopoverClickCount”, (ue.count(“acrStarsLinkWithPopoverClickCount”) || 0) + 1); } }); });