Title Page....3
Copyright Page....4
Table of Contents....7
Introduction....23
About This Book....24
Getting started with the book....24
My “No AI” guarantee....24
Foolish Assumptions....25
Icons Used in This Book....25
Beyond the Book....26
Book 1 Getting Started....27
Chapter 1 Getting Acquainted with HTML, CSS, and JavaScript....29
What Do HTML, CSS, and JavaScript Do, Exactly?....30
Why Learn HTML, CSS, and JavaScript?....30
Seeing How It All Works....32
To get started, launch a new text file....33
Notes about saving HTML files....33
This book in four words: Edit. Save. Reload. Repeat.....34
Adding Structure with HTML....36
What is HTML?....37
Getting the hang of HTML elements and tags....37
Understanding tag attributes....39
A barebones HTML page....40
Giving your page a title....42
Adding some text....43
Some notes on structure versus style....45
Adding Style with CSS....46
Figuring out cascading style sheets....46
Styles: Bundles of formatting options....46
Sheets: Collections of styles....47
Cascading: How styles propagate....48
Getting the hang of CSS rules and declarations....48
Adding styles to a page....50
Inserting inline styles....50
Embedding an internal style sheet....50
Linking to an external style sheet....53
Adding Dynamism with JavaScript....54
What is JavaScript?....55
Adding a script to a page....56
The <script> tag....56
Where do you put the <script> tag?....56
Example #1: Displaying a message to the user....57
Example #2: Writing text to the page....59
Chapter 2 Getting Ready to Code....61
Setting Up Your Test Browsers....62
Creating Your Local Folders....62
First, create the local root folder....63
Now create the local subfolders, if any....63
Choosing Your Text Editor....64
What Else Do You Need?....66
Using the WebDev Workbench....67
Chapter 3 Finding and Setting Up a Web Host....69
Understanding Web Hosting Providers....70
Using your existing internet provider....70
Finding a free hosting provider....70
Signing up with a commercial hosting provider....71
A Buyer’s Guide to Web Hosting....71
Finding a Web Host....74
Finding Your Way around Your New Web Home....75
Your directory and your web address....76
Making your hard disk mirror your web home....77
Uploading your site files....78
Making changes to your web files....79
Chapter 4 Testing and Validating Your Code....81
Cross-Browser Testing Your Code....82
Taking a look at browser market share....82
Your cross-browser testing suite....83
Cross-browser testing online....83
Understanding Validation....84
Don’t Skip Validation!....86
Validating Your HTML Code....87
Validating HTML online....87
Validating HTML in your text editor....89
Validating Your CSS Code....91
Validating CSS online....91
Validating CSS in your text editor....94
Validating Your JavaScript Code....94
Validating JavaScript online....95
Validating JavaScript in your text editor....96
Book 2 Learning HTML Basics....99
Chapter 1 Building Good Bones: Structuring the Page....101
Getting to Know HTML’s Basic Structure Tags....102
Creating paragraphs....103
Dividing your text with headings....105
Adding line breaks....107
Separating stuff with a horizontal rule....108
Carving Up the Page....109
The <header> tag....110
The <nav> tag....111
The <main> tag....112
The <article> tag....113
The <section> tag....113
The <aside> tag....114
The <footer> tag....115
Handling nonsemantic content with <div>....116
Handling words and characters with <span>....117
Commenting Your Code....117
Chapter 2 Adding Links, Lists, and Other Text Tidbits....119
Applying the Basic Text Tags....120
Emphasizing text....120
Marking important text....121
Nesting tags....122
Adding quotations....122
Creating Links....124
Linking basics....124
Anchors aweigh: Internal links....125
Building Bulleted and Numbered Lists....127
Making your point with bulleted lists....127
Numbered lists: Easy as one, two, three....129
Inserting Special Characters....130
A Few More HTML Text Tags to Know....131
<abbr>: The abbreviation text tag....132
<address>: The address text tag....132
<cite>: The citation text tag....133
<code>: The code text tag....134
<dfn>: The definition text tag....135
<dl>: The description list text tag....136
<kbd>: The keyboard input text tag....138
<mark>: The mark text tag....138
<pre>: The preformatted text tag....139
<s>: The strikethrough text tag....140
<sub>: The subscript text tag....142
<sup>: The superscript text tag....142
Chapter 3 Working with Images, Video, and other Media....145
Inserting Images....146
First, a mercifully brief look at image formats....146
Inserting an image....147
Inserting a figure with a caption....149
Turning an image into a link....150
Controlling an image’s vertical alignment....151
Embedding Videos....153
Embedding a third-party video....153
Embedding your own videos....154
Some notes about web media file formats....155
The bad news: Web video formats....155
The good news: The <video> tag....156
Embedding Audio Snippets....159
Embedding third-party audio....159
Embedding your own audio....161
Web audio formats....161
The <audio> tag....162
Chapter 4 Building Tables with Your Bare Hands....165
What Is a Table?....166
Web Woodworking: How to Build a Table....168
The simplest case: a one-row table....168
Adding more rows....170
Adding More Table Elements....171
Creating a header row....171
Including a caption....172
Creating a header column....173
Creating a table footer....174
Table Refinishing: Styling Your Tables....176
Aligning text within cells....176
Aligning cell text horizontally....176
Aligning cell text vertically....179
Bring on the borders....181
Putting your data in a padded cell....183
Changing the location of the caption....184
Chapter 5 Using Forms to Make a Page Interactive....185
What Is a Web Form?....186
Cruising along Server Street....187
Taking a walk down Local Lane....188
Building a Web Form....188
Setting up the form....189
Adding a form button....189
Working with text fields....190
Adding checkboxes....193
Working with radio buttons....195
Adding selection lists....197
Bringing in pickers....200
Chapter 6 Making Your Web Pages Accessible....203
Why to Make Your Pages Accessible....204
Accessibility is a right....204
Accessibility brings other benefits....205
Understanding Web Accessibility....205
Understanding who needs accessibility....206
Learning about assistive technologies for web surfing....207
Assistive technologies for visual disabilities....208
Assistive technologies for auditory disabilities....208
Assistive technologies for motor disabilities....209
Assistive technologies for cognitive disabilities....209
Making Your Page Structure Accessible....209
Using headings hierarchically....209
Using semantic sectioning elements....210
Making Text Accessible....210
Making Media Accessible....211
Specifying alt text for images....212
Making other media accessible....212
Buffing Up Your Page Accessibility Semantics....213
Adding form field labels....214
Understanding ARIA roles, states, and properties....214
Landmark ARIA roles....216
Section structure ARIA roles....216
Widget ARIA roles....218
Differentiating semantic page elements of the same type....219
Making Your Pages Keyboard-Friendly....220
Adding an element to the tab order....221
Removing an element from the tab order....222
Ensuring Sufficient Color Contrast....222
Validating the Accessibility of a Page....224
Book 3 Learning CSS Basics....225
Chapter 1 Figuring Out the CSS Box Model....227
Thinking Outside (but Also Inside) the Box Model....228
Understanding the components of the box model....228
Understanding block and inline boxes....230
Changing the display type for a box....231
Eyeballing an element’s box....232
A Brief Digression on Whitespace....233
Adding Padding....235
Putting a Border on It....237
Applying a border....237
Rounding your borders....240
Rounding borders based on the arc of a circle....242
Rounding borders based on the arc of an ellipse....244
Manipulating Element Margins....245
Taking advantage of negative margins....247
Collapsing margins ahead!....247
Dealing with negative margins....250
Other margin collapsing scenarios....250
Styling Element Sizes....250
Setting a minimum or maximum height or width....253
Making width and height make sense....254
Magically converting an inline element to a block-level element....255
Chapter 2 Getting to Know the CSS Selectors....257
Introducing Yourself to the Web Page Family....258
What’s All This About a Selector?....260
Seeing some examples of selectors....260
Working with selector lists....261
Learning the Standard Selectors....262
The type selector....262
The class selector (.)....262
Combining type and class selectors....263
Matching multiple classes....264
The id selector (#)....264
The universal selector (*)....265
Selecting Descendants, Children, and Siblings....265
The descendant combinator ( )....266
The child combinator (>)....267
The subsequent-sibling combinator (~)....267
The next-sibling combinator (+)....268
Selecting Elements by Attribute....269
Chapter 3 Pseudo School: Learning Pseudo-Classes and Pseudo-Elements....273
Scratching Your Head Over Pseudo-Classes....274
Introducing the pseudo-class....275
Styling elements with pseudo-classes....275
Matching child elements....277
:first-child....277
:last-child....278
:nth-child()....279
:nth-last-child()....281
:only-child....282
Matching child elements by type....282
:first-of-type....283
:last-of-type....284
:nth-of-type()....284
:nth-last-of-type()....285
:only-of-type....285
Matching form elements by state....286
Matching elements by user action....290
:active....290
:focus....291
:hover....291
Matching links....292
Working with functional pseudo-classes....293
A quick look at selector lists....294
:is()....294
:not()....295
:where()....297
:has()....298
Getting Up to Speed with Pseudo-Elements....300
Working with pseudo-elements....300
Generating a last child with ::after....301
Generating a first child with ::before....303
Styling the opening letter with ::first-letter....305
Styling the opening line with ::first-line....307
Chapter 4 Making CSS Make Sense....309
Commenting Your CSS Code....310
Commenting non-obvious code....310
Marking stylesheet sections with comments....311
Using a CSS Reset....312
Debugging CSS....314
Displaying the web development tools....314
Inspecting an element....316
Inspecting an element’s styles....317
Inspecting an element’s box model....319
Inspecting an element’s computed styles....320
Inspecting an element’s layout....321
Editing a property value....321
Disabling a declaration....323
Adding an inline declaration to an element....324
Adding an element declaration to the inspector stylesheet....324
Adding a class to an element....326
Simulating a pseudo-class state....327
Popping the Hood: How Styles Get Applied....328
Unravelling inheritance....328
Why some properties don’t inherit....329
Forcing inheritance....330
Flowing along with the cascade....331
How the cascade works....332
Understanding declaration types....332
Understanding origin types....333
Declaration type, origin type, and weight....333
Figuring out specificity....335
Specificity and :is(), :where(), :not(), and :has()....339
The ultimate tiebreaker: source code order....339
Putting it all together: the cascade algorithm....340
Chapter 5 Taking the Measure of CSS....343
Getting Comfy with CSS Measurement Units....344
Checking Out the Absolute Measurement Units....345
Getting to Know the Relative Measurement Units....346
Using percentages....347
Getting a handle on the em unit....347
Meeting your CSS measurement best friend: the rem unit....351
Here’s Looking at View(port Measurement Units)....354
Calculating with CSS....355
Calculating with calc()....355
Finding the smallest value with min()....356
Finding the largest value with max()....357
Setting bounds with clamp()....357
Chapter 6 Fancifying Pages with Colors and Backgrounds....359
Specifying Colors in CSS....360
Papayawhip, peachpuff, and more: color keywords....360
Rolling your own colors with the rgb() function....361
Specifying colors nerd-style: RGB codes....362
Going pro with the hsl() function....363
Using Color to Spruce Up Your Text....366
Applying a text color....366
Setting the text decoration color....366
Creating a text shadow....367
Styling an Element’s Background....368
Applying a coat of background color....368
Wallpapering an element with a background image....369
Taking advantage of the background shorthand property....374
Impressing Your Friends with Color Gradients....376
Applying a linear gradient....376
Applying a radial gradient....378
Applying a conic gradient....380
Setting Border Colors....381
Playing with Colors in the Dev Tools....381
Changing the color....382
Choosing accessible colors....383
Chapter 7 Taking Your Text Up a Notch with Web Typography....385
Taking Care of Your Text....386
Getting to know typefaces (and fonts, too)....386
All in the font family: Applying a typeface....387
Introducing the font stack....387
Generic font families....388
System font families....389
Web font families....390
Linking to a web font family....390
Self-hosting a web font family....394
The Typographic Trinity: Setting Type Size, Line Height, and Line Length....398
Setting the type size....399
Setting the line height....402
Setting the line length....404
How the typographical trinity are related....406
Applying Text Styles....406
Styling the text weight....406
Styling text with italics....408
Getting more styles with variable fonts....408
More Typographical Trickery....411
Controlling capitalization....411
Setting the spacing between letters....412
Displaying text as small caps....412
Using alternative numeric glyphs....413
The font shorthand property....414
Giving Your Links a Makeover....414
Messing with Alignment....416
Aligning text....416
Hyphenating text....417
Indenting a paragraph’s first line....418
Book 4 Building Dynamic Pages with JavaScript....419
Chapter 1 JavaScript: The Bird’s-Eye View....421
What Is Web Coding?....422
What Is a Programming Language?....423
Is JavaScript Hard to Learn?....424
What You Can Do with JavaScript....425
What You Can’t Do with JavaScript....426
What Do You Need to Get Started?....426
Dealing with a Couple of Exceptional Cases....427
Handling browsers with JavaScript turned off....427
Handling very old browsers....429
Adding Comments to Your Code....430
Creating External JavaScript Files....430
Chapter 2 Understanding Variables....433
Understanding Variables....434
Declaring a variable with let....434
Storing a value in a variable....435
Checking out another way to declare a variable: const....436
Using variables in statements....437
Naming Variables: Rules and Best Practices....439
Rules for naming variables....439
Ideas for good variable names....440
Understanding Literal Data Types....441
Working with numeric literals....441
Exponential notation....442
Hexadecimal integer values....443
Working with string literals....443
Using quotation marks within strings....443
Understanding escape sequences....444
Working with Boolean literals....445
JavaScript Reserved Words....445
JavaScript and HTML Keywords....446
Chapter 3 Building Expressions....449
Understanding Expression Structure....450
Building Numeric Expressions....451
A quick look at the arithmetic operators....451
Using the addition (+) operator....452
Using the increment (++) operator....452
Using the subtraction and negation (-) operators....453
Using the decrement (--) operator....455
Using the multiplication (*) operator....455
Using the division (/) operator....456
Using the modulus (%) operator....457
Using the arithmetic assignment operators....458
Building String Expressions....458
Building Comparison Expressions....461
The comparison operators....461
Using the equality (==) operator....461
Using the inequality (!=) operator....462
Using the greater than (>) operator....463
Using the less than (<) operator....463
Using the greater than or equal (>=) operator....464
Using the less than or equal (<=) operator....464
The comparison operators and data conversion....464
Using the strict equality (===) operator....466
Using the strict inequality (!==) operator....466
Using strings in comparison expressions....467
Using the ternary (?:) operator....468
Building Logical Expressions....469
The logical operators....469
Using the AND (&&) operator....469
Using the OR (||) operator....470
Using the NOT (!) Operator....471
Advanced notes on the && and || operators....472
Understanding Operator Precedence....474
The order of precedence....474
Controlling the order of precedence....475
Chapter 4 Controlling the Flow of JavaScript....479
Making True/False Decisions with if Statements....480
Branching with if. . .else Statements....482
Making Multiple Decisions....484
Using the AND (??) and OR (||) operators....484
Stringing together multiple if statements....485
Using the switch statement....486
Understanding Code Looping....488
Using while Loops....489
Using for Loops....492
Using do. . .while Loops....496
Controlling Loop Execution....498
Exiting a loop using the break statement....498
Bypassing loop statements using the continue statement....501
Avoiding Infinite Loops....502
Chapter 5 Harnessing the Power of Functions....503
What Is a Function?....504
The Structure of a Function....504
Where Do You Put a Function?....506
Calling a Function....506
Calling a function when the <script> tag is parsed....506
Calling a function after the page is loaded....508
Calling a function in response to an event....509
Passing Values to Functions....510
Passing a single value to a function....511
Passing multiple values to a function....512
Making an argument optional....514
Returning a Value from a Function....516
Getting Your Head around Anonymous Functions....517
Assigning an anonymous function to a variable....518
Replacing a function call with an anonymous function....519
Moving to Arrow Functions....520
Running Functions in the Future....522
Using a timeout to perform a future action once....523
Using an interval to perform a future action repeatedly....524
Understanding Variable Scope....526
Working with block scope....526
Working with function scope....527
Working with global scope....529
Using Recursive Functions....530
Chapter 6 Playing with the Document Object Model....535
Working with Objects....536
What is an object, anyway?....536
Manipulating object properties....537
Referencing a property....538
Some properties are objects....539
Changing the value of a property....539
Working with object methods....540
Rolling your own objects....541
The Web APIs: Some special objects....543
Getting to Know the Document Object Model....544
Specifying Elements....547
Specifying an element by id....547
Specifying elements by tag name....548
Specifying elements by class name....548
Specifying elements by selector....549
Working with collections of elements....549
Traversing the DOM....551
Getting the children of a parent element....552
Getting all the child nodes....552
Getting the first child node....554
Getting the last child node....555
Getting the parent of a child element....556
Getting the siblings of an element....556
Getting the previous sibling....557
Getting the next sibling....557
Manipulating Elements....557
Adding an element to the page....557
Step 1: Creating the element....558
Step 2: Adding the new element as a child....558
Step 3: Adding text and tags to the new element....559
Inserting text or HTML into an element....560
Removing an element....561
Modifying CSS with JavaScript....562
Changing an element’s styles....562
Adding a class to an element....563
Removing a class....564
Toggling a class....565
Tweaking HTML Attributes with JavaScript....566
Reading an attribute value....567
Setting an attribute value....567
Removing an attribute....568
Building Reactive Pages with Events....568
What’s an event?....569
Understanding the event types....569
Getting data about the event....571
Preventing the default event action....573
Chapter 7 Working with Arrays....575
What Is an Array?....576
Declaring an Array....576
Populating an Array with Data....577
Declaring and populating an array at the same time....579
Using a loop to populate an array....580
How Do I Iterate Thee? Let Me Count the Ways....581
Iterating an array: forEach()....582
Iterating an array: for. . .of....583
Iterating to test an array’s elements: every() and some()....584
Testing whether all elements pass a test: every()....584
Testing whether some elements pass a test: some()....586
Iterating to create a new array: map()....587
Iterating an array down to a value: reduce()....588
Iterating to locate an element: find()....590
Creating Multidimensional Arrays....591
Manipulating Arrays....592
The length property....592
Concatenating to create a new array: concat()....593
Creating a string from an array’s elements: join()....595
Removing an array’s last element: pop()....596
Adding elements to the end of an array: push()....597
Reversing the order of an array’s elements: reverse()....598
Removing an array’s first element: shift()....598
Returning a subset of an array: slice()....599
Ordering array elements: sort()....600
Removing, replacing, and inserting elements: splice()....602
Inserting elements at the beginning of an array: unshift()....604
Chapter 8 Manipulating Strings, Dates, and Numbers....605
Manipulating Text with the String Object....606
Working with string templates....606
Determining the length of a string....608
Searching for substrings....609
The startsWith(), includes(), and endsWith() methods....610
The indexOf() and lastIndexOf() methods....611
Methods that extract substrings....613
The charAt() method....613
The slice() method....615
The split() method....616
The substr() method....618
The substring() method....619
Understanding the differences between splice(), substr(), and substring()....620
Dealing with Dates and Times....621
Arguments used with the Date object....622
Working with the Date object....622
Specifying the current date and time....623
Specifying any date and time....623
Extracting information about a date....623
Extracting the month name from a date....626
Extracting the day name from a date....626
Setting the date....627
Performing date calculations....630
Determining a person’s age....630
Performing complex date calculations....632
Calculating the days between two dates....632
Working with Numbers: The Math Object....633
Converting between strings and numbers....634
The parseInt() function....634
The parseFloat() function....635
The + operator....635
The Math object’s properties and methods....636
Properties of the Math object....636
Methods of the Math object....636
Chapter 9 Storing User Data in the Browser....639
Understanding Web Storage....640
Introducing JSON....640
Learning the JSON syntax....641
Declaring and using JSON variables....642
Converting a JavaScript object to JSON....643
Converting a JSON string to a JavaScript object....644
Adding Data to Web Storage....645
Getting Data from Web Storage....647
Removing Data from Web Storage....648
Chapter 10 Debugging Your Code....649
Understanding JavaScript’s Error Types....650
Syntax errors....650
Runtime errors....650
Logic errors....651
Getting to Know Your Debugging Tools....652
Debugging with the Console....654
Displaying the console in various browsers....654
Logging data to the Console....655
Executing code in the Console....655
Pausing Your Code....656
Entering break mode....656
Setting a breakpoint....657
Entering break mode using a debugger statement....658
Exiting break mode....659
Stepping Through Your Code....659
Stepping one statement at a time....660
Stepping into some code....660
Stepping over some code....661
Stepping out of some code....661
Monitoring Script Values....662
Viewing a single variable value....662
Viewing all variable values....663
Adding a watch expression....664
More Debugging Strategies....665
The Ten Most Common JavaScript Errors....666
The Ten Most Common JavaScript Error Messages....669
Chapter 11 Processing Form Data....671
Looking at the HTMLFormElement Object....672
Taking a Peek at the HTMLInputElement Object....672
Programming Text Fields....673
Referencing text fields by field type....673
Getting a text field value....674
Setting a text field value....675
Coding Checkboxes....676
Referencing checkboxes....676
Getting the checkbox state....677
Setting the checkbox state....678
Dealing with Radio Buttons....679
Referencing radio buttons....679
Getting a radio button state....680
Setting the radio button state....681
Programming Selection Lists....682
Checking out the HTMLSelectElement object....682
Checking out the HTMLOptionElement object....683
Referencing selection list options....684
Getting the selected list option....684
Changing the selected option....686
Handling and Triggering Form Events....686
Setting the focus....687
Monitoring the focus event....688
Monitoring the blur event....688
Listening for element changes....689
Creating Keyboard Shortcuts for Form Controls....690
Dealing with the Form Data....692
Book 5 Looking Good with Layouts....695
Chapter 1 Exploring Some Layout Basics....697
Getting a Grip on Page Flow....698
Floating Elements....699
Example: Creating a pull quote....701
Clearing your floats....703
Collapsing containers ahead!....705
Positioning Elements....707
Using relative positioning....709
Giving absolute positioning a whirl....710
Trying out fixed positioning....712
Making elements stick (temporarily)....714
Stacking Elements....718
Layering elements with z-index....718
Getting your head around stacking contexts....720
Chapter 2 Getting Fancy with Flexbox....725
Introducing Flexbox....726
Do I Still Need Flexbox Now That CSS Grid Is Here?....727
Setting Up and Configuring Flex Containers....727
Setting up the flex container....728
Touring the landscape of a flex container....728
Setting the flex direction....728
Aligning flex items along the primary axis....731
Aligning flex items along the secondary axis....733
Centering an element horizontally and vertically....735
Allowing flex items to wrap....736
Aligning rows or columns along the secondary axis....738
Adding gaps between items....740
Taking Control of Flex Items....741
Allowing flex items to grow....742
Allowing flex items to shrink....744
Suggesting a flex item size....748
Using the flex shorthand property....752
Laying out content columns with Flexbox....753
Changing the order of flex items....756
Chapter 3 Laying Out a Page with CSS Grid....759
Introducing CSS Grid....760
Setting Up the Grid Container....761
Specifying the Grid Rows and Columns....762
Setting your own columns and rows: the explicit grid....763
Letting a column or row grow or shrink as needed....764
De-drudgifying Grid: the repeat() function....765
Setting a range of values: the minmax() function....766
Sizing with the auto keyword....766
Letting the browser do some of the work: the implicit grid....767
Leaving out the grid rows template....767
Leaving out the grid columns template....768
Specifying a size for implicit rows or columns....770
Creating grid gaps....771
Taking Control: Assigning Grid Items....772
Assigning grid items to columns and rows....772
Figuring out grid lines, tracks, and axes....773
Assigning grid items using line numbers....775
Displaying grid line numbers in the browser dev tools....778
Assigning grid items to named grid areas....779
Setting up named grid areas....780
Assigning the items to the area....782
Displaying named areas in the browser dev tools....782
Getting Your Grid Ducks in a Row (or a Column): Aligning Things....783
Chapter 4 Creating Responsive Layouts....787
What is a Responsive Layout?....788
Going with the Flow: Fluid Layouts....791
How Flexbox makes a page fluid....792
How CSS Grid makes a page fluid....795
Taking advantage of viewport units....798
Making typography fluid....800
Introducing your best fluid friend: clamp()....801
Querying Your Way to Responsiveness: Adaptive Layouts....801
Interrogating the screen with media queries....802
Laying out trees instead of forests with container queries....805
Setting up the query container....806
Querying the container....809
Working with container query units....811
Respecting your visitors with user preference queries....811
Working with Images Responsively....813
Making images responsive....814
Delivering images responsively....814
Exploring the Principles of Mobile-First Development....817
What is mobile-first web development?....817
Mobile first means content first....818
Pick a testing width that makes sense for your site....819
Get your content to scale with the device....820
Build your CSS the mobile-first way....820
Pick a “non-mobile” breakpoint that makes sense for your content....821
Index....823
EULA....851
Looking to start an exciting new career in front-end web building and design? Or maybe you just want to develop a new skill and create websites for fun. Whatever your reasons, it’s never been easier to start learning how to build websites from scratch than with help from HTML, CSS, & JavaScript All-in-One For Dummies. This book has the essentials you need to wrap your head around the key ingredients of website design and creation.
You’ll learn to build attractive, useful, and easy-to-navigate websites by combining HTML, CSS, and JavaScript into fun and practical creations. Using the 6 books compiled within this comprehensive collection, you’ll discover how to make static and dynamic websites, complete with intuitive layouts and cool animations. The book also includes:
Web development is a fun, interesting, and challenging skill that can lead to a lucrative career (if you’re so inclined). And with the right help, almost anyone can learn to create engaging websites from scratch. So, grab a copy of HTML, CSS, & JavaScript All-in-One For Dummies and you’ll be designing and building before you know it!
Отличная книга для всех, кто хочет разобраться в основах программирования и стать разработчиком или веб-дизайнером