Learn How to Code
  • Welcome
  • Foundations
    • Introduction
      • Becoming a web developer
      • Motivation and mindset
      • Join a supportive community
      • How does the web work?
    • Requirements
      • Prerequisites
      • Text editors
      • Command line basics
      • Setting up Git
      • Setting up Node
    • Git
      • Git basics
      • Project: Practicing Git
    • Frontend
      • HTML and CSS
      • Developer Tools
      • Project: Create a web page
    • JavaScript
      • Strings and Conditionals
      • Using Developer Tools
      • Functions
      • Problem solving
      • Project: Rock paper scissors
      • Writing clean code
      • Arrays and Loops
      • The DOM
      • Project: Etch-A-Sketch
      • Objects and More Arrays
      • Project: Calculator
    • Backend
      • Frameworks
    • Next steps
  • Deep dives
    • Computer Science
      • Pseudocode and algorithms
      • Recursion and algorithms
        • Project: Fibs and sorting
        • More on algorithms
        • Big O
        • Project: Practicing Big O
      • Data structures
        • Maps, Stacks and Queues
        • Project: Stacks and Queues
        • Nodes, Linked Lists and Trees
        • Project: Linked Lists
        • Project: Trees
        • Next steps
    • Databases
      • Databases and SQL
      • Project: SQL Zoo
    • Design / UX
      • Fonts and typography
      • Grids
      • Project: Teardown
      • Responsive design
      • Project: Mobile friendly
      • CSS frameworks
      • Project: Bootstrapping
    • HTML / CSS
      • HTML Basics
        • Linking
        • Images and media
        • Project: Embedding media
        • HTML5
        • Tables
        • Lists
        • Forms
        • Project: Make a form
      • CSS Basics
        • Box model
        • Floats and positioning
        • Flexbox
        • Grids
        • Project: Breaking news
        • Best practices
        • Backgrounds and gradients
        • Project: One more thing
        • CSS3
        • Preprocessors
        • Project: Your own framework
      • Next steps
    • JavaScript
      • Refresher
      • Organization
      • Objects and constructors
      • Project: Library
      • Factory functions and module patterns
      • Project: Tic Tac Toe
      • Classes
      • ES6 Modules
      • Project: Restaurant
      • Object Oriented Programming
      • Project: Todo list
      • Linting
      • Menus and sliders
      • Forms
      • ES6 features
      • JSON
      • Callbacks and promises
      • Using APIs
      • Async and Await
      • Project: Weather
      • Testing
      • Project: Testing 1-2-3
      • Advanced Testing
      • Project: Battleship
      • Backends
      • Project: Where's Waldo?
      • Project: All-Star
      • Next steps
    • NodeJS
      • Project: Going to school
      • Project: Passing the test
      • Express
        • Templates and middleware
        • CRUD and MVC
        • Project: Message board
        • Routes
        • Displaying data
        • Forms and deployment
        • Project: Inventory
      • Authentication
      • Security
      • Project: Clubhouse
      • APIs
      • Securing an API
      • Project: Blog
      • Testing
      • Testing with a database
      • Project: Social network
    • React
      • Props and State
      • Render lists and handle inputs
      • Project: CV
      • Lifecycle methods
      • Hooks
      • Project: Memory card
      • Router
      • Project: Shopping cart
      • Advanced concepts
    • Ruby
      • Installation
      • Data types
      • Variables
      • Input and Output
      • Conditionals
      • Loops
      • Arrays
      • Hashes
      • Methods
      • Enumerables
      • More enumerables
      • Nested collections
      • Blocks
      • Pattern matching
      • Debugging
      • Project: Caesar cipher
      • Project: Substrings
      • Project: Stock picker
      • Project: Bubble sort
      • Object oriented programming
      • Project: Tic Tac Toe
      • Project: Mastermind
      • Serialization
      • Project: Event manager
      • Project: Hangman
      • Computer Science
        • Recursion
        • Project: Merge Sort
        • Data structures and algorithms
        • Project: Linked Lists
        • Project: Binary Search Trees
        • Project: Knight Travails
      • Testing
      • RSpec
      • Project: Four in a row
      • Git
      • Project: Open Source
      • Project: Chess
      • Next steps
    • Ruby on Rails
      • Using Heroku
      • Installing Rails
      • Basics
        • Routing
        • Controllers
        • Views
        • Asset pipeline
        • Deployment
        • Project: Blog
      • Active Record
        • Project: Upvote
      • Forms
        • Cookies, sessions, and authentication
        • Project: Password
      • Advanced forms and Active Record
        • Associations
        • Project: Private Events
        • Callbacks
        • Menus, helpers and nested forms
        • Project: Ticket agent
      • APIs
        • External APIs
        • Project: Animals
        • Project: Photo widget
      • Mailers
        • Project: Confirmation
      • Advanced topics
        • Action Cable
      • Project: Social network
      • Next steps
  • Getting hired
    • Preparing to find a job
      • Plan a strategy
      • What companies want
      • Get yourself together
      • How to prepare
      • Project: Make your website
    • Applying and interviewing
      • Qualifying leads
      • Project: Make your resume
      • Applying for jobs
      • Preparing for an interview
      • Handling an offer
      • Final words
  • Maintained by
    • wbnns
  • License
    • CC BY-NC-SA 4.0 © 2022
Powered by GitBook
On this page
  • Getting started
  • Learning outcomes
  • Assignment
  • Additional resources
  1. Foundations
  2. Frontend

HTML and CSS

HTML codifies the structure and format of a page. CSS codifies the style to determine what it will look like.

PreviousFrontendNextDeveloper Tools

Last updated 4 years ago

Getting started

HTML is the markup that contains all the actual stuff that a web page has. All the text on this page you're reading right now lives inside HTML tags that tell your browser how to order the content on the page. Go on, right click any element on the page and choose "Inspect Element" to open up your browser's Developer Tools and it will show you the structure of the page.

tells the browser if you want to display any of those tags a particular way, for instance, turning its background blue and pushing it a little to the left. In your Developer Tools, you can see the CSS styles in another panel, usually showing which specific properties were inherited from which lines of CSS.

Learning outcomes

Look through these now and then use them to test yourself after doing the assignment:

  • Why do we separate HTML and CSS?

  • What are classes and IDs (and how are they different)?

  • What are elements?

  • What are tags?

  • What are attributes?

  • What are forms?

  • What is a div?

  • What are selectors?

  • What are properties?

  • What are values?

  • What is the "query string" in a URL and what does it do?

  • What is the difference between "pixels" and "ems"?

  • How do CSS styles for a particular element get inherited? i.e. how does an element get its "default" styles?

  • What are two CSS attributes you can change to push an element around on the page?

  • What are the three different ways to include CSS in your project or use CSS to style a particular element?

  • What is the "default stylesheet" or "user agent stylesheet"?

  • Why use a CSS reset file?

Assignment

  1. Note: If you are using a browser add-on such as Dark Reader (or a similar add-on that creates a "dark mode" for a website), it may interfere with certain exercises. If your solution isn't accepted, try disabling the browser add-on and submitting it again.

Additional resources

This section contains helpful links to other content. It isn't required, so consider it supplemental for if you need to dive deeper into something.

Dive right into learning HTML and CSS with . Do the entire section labeled "Responsive Web Design Certification" only. It's long and, if you're new, might take you at least a few days to get through, but it will give you a really solid foundation to build on moving forward. They also have some projects at the end of this section. They're good practice, but you can consider them optional. (A large part of their proposed '300 hours' for completion comes from these projects, so it probably won't take you that long if you only do the exercises).

Optional: Learn about your browser's default stylesheet and CSS resets (resets are mentioned starting at the 2:00 mark). This is why there are some spaces that show up in your layout even if you haven't specified CSS. Real developers almost always use a CSS reset to blow away the default stylesheet and let them work from scratch. If you're still curious, here's a on resets.

A good page to bookmark for later reference is from CSS Tricks.

and

and

and

The and the from CSS Tricks are both excellent references.

These and videos by might be helpful for you as well!

Hop on over to or dig into to learn some concepts with a fun game!

CSS
freeCodeCamp's interactive tutorials
in this video
longer video
Centering in CSS: A Complete Guide
W3 Schools' CSS tutorial
OverAPI's CSS Cheat Sheet
OverAPI's HTML Cheat Sheet
CSSreference.io
HTMLreference.io
Learn CSS Layout
CSS Flexbox
CSS Grid
Complete Guide to Flexbox
Complete Guide to Grid
CSS FlexBox
CSS Grid
Dev Ed
Flexbox Froggy
Grid Garden