Understanding Block vs Inline Elements
Block Elements
<div>
,<p>
,<h1>
-<h6>
- Start on a new line
- Take full width available
- Can contain other elements
Inline Elements
<span>
,<a>
,<img>
- Don't start new lines
- Only take necessary width
- Can't set width/height
Using <div> for Layout
The <div>
is a generic container for flow content:
<div class="header">...</div>
<div class="main-content">
<div class="sidebar">...</div>
<div class="content-area">...</div>
</div>
<div class="footer">...</div>
Combine with CSS for complete page layouts.
HTML Classes and How to Use Them
Classes allow styling and selecting multiple elements:
<p class="text-red highlight">Styled text</p>
<div class="card featured">...</div>
Key points:
- Multiple classes separated by spaces
- Reusable across elements
- Primary method for CSS styling
Assigning IDs for Styling and Scripts
IDs identify unique elements:
<div id="main-header">...</div>
<form id="contact-form">...</form>
Note: IDs must be unique per page and are case-sensitive.
Common uses:
- JavaScript DOM manipulation
- Anchor links (
#section-id
) - Unique element styling
HTML Head and Meta Tags Explained
Essential head elements:
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Page description">
<title>Page Title</title>
<link rel="stylesheet" href="styles.css">
</head>
Important meta tags:
charset
- Character encodingviewport
- Mobile responsivenessdescription
- SEO snippet
Designing Responsive Layouts in HTML
Key techniques for responsive design:
- Use
<meta name="viewport">
tag - Fluid containers (
width: 100%
) - Flexible images (
max-width: 100%
) - CSS media queries
- Mobile-first approach
Example responsive grid:
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-6 col-lg-4">Column 1</div>
<div class="col-sm-12 col-md-6 col-lg-4">Column 2</div>
<div class="col-sm-12 col-md-12 col-lg-4">Column 3</div>
</div>
</div>
Semantic HTML: Best Practices
Modern semantic elements:
<header>...</header>
<nav>...</nav>
<main>...</main>
<section>...</section>
<article>...</article>
<aside>...</aside>
<footer>...</footer>
<figure>...</figure>
Benefits:
- Better accessibility
- Improved SEO
- Clearer code structure
Common HTML Layout Patterns
1. Holy Grail Layout
<div class="container">
<header>...</header>
<div class="main-content">
<main>...</main>
<nav class="left-sidebar">...</nav>
<aside class="right-sidebar">...</aside>
</div>
<footer>...</footer>
</div>
2. Card Layout
<div class="card-container">
<article class="card">...</article>
<article class="card">...</article>
<article class="card">...</article>
</div>
3. Magazine Layout
<div class="magazine">
<section class="featured">...</section>
<section class="secondary">
<article>...</article>
<article>...</article>
</section>
</div>