Skip to main content
March 23, 2026/7 min read

HTML & CSS Intro Course: Adding Images

Master HTML Image Integration and Best Practices

Common Image File Formats

4 types
supported formats
190px
example width
145px
example height

HTML Image File Types

JPEG

Ideal for photographs and complex images with many colors. Provides good compression for smaller file sizes.

PNG

Perfect for images with transparency or sharp edges. Maintains high quality but larger file sizes.

GIF

Supports animation and transparency. Limited color palette makes it suitable for simple graphics.

SVG

Vector format that scales perfectly at any size. Excellent for logos and simple illustrations.

Master the fundamentals of web development in our comprehensive NYC Web Development classes. Can't make it to New York? Explore our curated selection of the best HTML & CSS classes near you or join our interactive live online HTML & CSS classes designed for today's remote-first world.

Video Transcription

Understanding how to properly integrate images into web pages is fundamental to modern web development. Before diving into image implementation, let's establish a crucial foundation: strategic file naming conventions. Every web project begins with index.html—this isn't arbitrary naming but a web server convention that automatically serves this file as your homepage when visitors access your domain without specifying a particular page. While you have complete freedom in naming subsequent pages, index.html remains the universal standard for your site's entry point.

In this demonstration, I'll walk you through adding images to enhance our webpage's visual appeal and functionality. Working in Sublime Text (though these principles apply across all modern code editors), I'll open our project files and preview them in Chrome. This side-by-side workflow—code editor alongside browser preview—represents industry best practice for efficient development and real-time troubleshooting.

Our sample page features a main heading announcing "Latest News," with individual headlines serving as subtopic hierarchies. Rather than forcing users to scroll through dense text blocks, we'll implement a visual preview system using strategically placed images. This approach aligns with current user experience principles: visitors should grasp your content's essence within seconds of arrival.

Modern web development supports multiple image formats, each serving distinct purposes. Your images folder might contain JPEG files (ideal for photographs), PNG files (perfect for graphics with transparency), GIF files (suitable for simple animations), or SVG files (scalable vector graphics that remain crisp at any size). The key principle here mirrors how we handle internal page links: we use relative file paths rather than absolute URLs. From our index.html file, we navigate into the images folder and specify the exact filename—a process that requires precision and attention to detail.

Professional developers understand that typos in file paths are among the most common errors that break websites. Modern code editors offer intelligent autocomplete features to mitigate this risk. In Sublime Text, I utilize the AutoFileName package, which provides real-time file suggestions as I type. Similar functionality exists across all major editors—VS Code, Atom, WebStorm—though implementation varies. These tools aren't just conveniences; they're professional necessities that prevent deployment issues and reduce debugging time.

Once you refresh the browser, notice something important about image behavior: unlike headings and paragraphs, which stack vertically as block-level elements, images display horizontally as inline elements. This distinction is fundamental to web layout understanding. Block-level elements (headings, paragraphs, divs) behave like building blocks, naturally stacking atop one another and occupying full available width. Inline elements (images, spans, links) behave like words in a sentence, flowing horizontally until they run out of space. To force images onto separate lines, you'll need to wrap them in block-level containers or insert manual breaks.

Accessibility isn't optional in professional web development—it's a legal requirement in many jurisdictions and always a moral imperative. Every image must include alternative text (alt attributes) that describes the image's content and purpose to screen readers. Think critically: if someone couldn't see your image, what essential information would they need? For our examples, descriptive alt text might read "Bill Gates holding the Kid A album" or "Radar map showing hurricane formation patterns." Never omit alt attributes entirely, as screen readers may then announce unhelpful filename strings.

There's one strategic exception to descriptive alt text: purely decorative elements like ornamental dividers or background flourishes should include empty alt attributes (alt=""). This signals to assistive technologies that the element serves no informational purpose and can be safely ignored. The goal is ensuring all users receive 100% of your content's value, regardless of their abilities or the technologies they use to access your site.

Beyond accessibility, alt attributes serve a secondary function during page loading. When images haven't yet downloaded—common on slower connections or mobile networks—browsers display the alt text as a placeholder. This behavior varies across browsers: Chrome shows a broken link icon alongside the text, Safari presents a simple outlined box, and Firefox opts for minimal visual indication. Understanding these cross-browser differences helps you design more robust user experiences.

Here's a critical performance consideration that separates amateur from professional development: layout shift during page loading. When browsers don't know an image's dimensions ahead of time, they can't reserve appropriate space. This creates jarring user experiences where content jumps around as images load—particularly problematic on mobile devices where users might lose their reading position entirely. Google's Core Web Vitals now penalize sites with excessive layout shift, directly impacting search rankings.

The solution is explicitly declaring image dimensions using width and height attributes. But how do you determine these dimensions without opening Photoshop or specialized image editors? Here's a professional shortcut: drag any image file directly into your browser tab. The browser displays the filename and dimensions in parentheses—in our case, 190×145 pixels. If the filename is too long to display completely, hover over the tab for a tooltip with full information. This technique works across all modern browsers and saves considerable time during development.

When specifying dimensions, accuracy is paramount. Incorrect values will stretch or distort your images, creating unprofessional results. If you specify only width, browsers will proportionally scale height, but understand the implications: scaling images up degrades quality significantly, while scaling down can actually improve appearance on high-resolution displays. However, there's a crucial distinction between display scaling and file optimization.

One of the most common performance mistakes involves serving oversized images. Picture this scenario: you visit a photo gallery that loads painfully slowly, but when you click thumbnail images, the full-size versions appear instantly. This counterintuitive behavior reveals a fundamental error—the developer is serving massive, unoptimized images (often straight from digital cameras) and using HTML attributes to display them at smaller sizes.

Modern digital cameras produce images exceeding 4,000 pixels in width, often consuming several megabytes each. Displaying a 5MB image at 190 pixels wide doesn't reduce the file size—users still download the entire massive file. This approach devastates page performance and user experience. Professional web development requires creating appropriately sized images for each use case: optimized thumbnails for galleries and reasonably sized full versions that match typical screen resolutions.

Consider current display standards: most users browse on screens ranging from 1280 to 1920 pixels wide, with 1440 pixels representing the sweet spot for desktop optimization. Serving 4,000-pixel images to these screens wastes bandwidth and loading time while providing zero visual benefit. Google's search algorithm explicitly factors page speed into rankings, making image optimization not just a user experience consideration but an SEO necessity.

Moving beyond images, let's explore additional HTML elements that enhance content structure and presentation. The line break tag (<br>) addresses a common need: creating line breaks within the same heading or paragraph without starting entirely new elements. Unlike the visual line breaks you create in your code editor, HTML requires explicit break tags to render line breaks in browsers. Notice that <br> is a self-closing tag—it doesn't wrap around content but simply inserts a break at a specific point.

For more substantial content separation, consider the horizontal rule tag (<hr>). This creates a thematic break between content sections, traditionally rendered as a horizontal line. While modern CSS provides more sophisticated styling options, the HR tag retains semantic value and offers quick visual separation. Like the break tag, HR is self-closing and can be customized using CSS for color, thickness, and style variations.

In contemporary web development, these presentational elements increasingly give way to CSS-based styling solutions. However, understanding their functionality provides essential foundation knowledge and ensures your HTML remains semantic and accessible. The key principle is separation of concerns: HTML defines content structure and meaning, while CSS handles visual presentation and layout.

These fundamental concepts—proper file organization, image optimization, accessibility considerations, and semantic markup—form the bedrock of professional web development. Master these basics, and you'll build faster, more accessible, and better-performing websites that serve users effectively across all devices and connection speeds.

Special File Naming Convention

Index.html is a special name reserved for your homepage. When visitors go to your website's address without specifying a page, the web server automatically looks for and displays index.html.

Adding Images to HTML

1

Organize Files

Create an images folder to store all your image files (JPEG, PNG, GIF, or SVG)

2

Use Relative Links

Link to images using relative paths, just like linking to other pages within your site

3

Write Image Tag

Use the img tag with src attribute pointing to your image file in the images folder

4

Add Alt Text

Include alternate text for accessibility and while images are loading

Block-level vs Inline Elements

FeatureBlock-level ElementsInline Elements
ExamplesHeadings, ParagraphsImages, Words
Display BehaviorStack verticallyLine up horizontally
Layout ImpactCreate new linesFlow with text
Recommended: Understanding element types helps predict how content will layout on your webpage.
Alt Text Best Practices

Always include alt text that describes what the image shows. For decorative elements that don't affect page meaning, use empty alt attributes rather than omitting them entirely.

Setting Image Dimensions

Pros
Prevents content jumping during page load
Reserves correct space before image downloads
Improves user experience on slower connections
Some browsers can pre-allocate layout space
Cons
Must know exact image dimensions
Wrong dimensions can distort images
Less flexible for responsive designs
Requires maintenance if images change

Common Screen Resolutions

Average Range
1,280
High End
1,440
HD Resolution
1,920
Camera Original
3,450
Image Optimization Impact

Google ranks pages partly based on loading speed. Using oversized images from digital cameras can hurt your search rankings due to slow page load times.

Proper Image Gallery Setup

1

Create Thumbnails

Resize images to small dimensions for gallery display (e.g., 190x145px)

2

Optimize Full Size

Resize large versions to match common screen sizes (1280-1920px wide)

3

Compress Files

Reduce file quality appropriately to decrease file size without sacrificing visual quality

4

Use Separate Files

Maintain different files for thumbnails and full-size images rather than scaling one image

Additional HTML Tags

Break Tag (br)

Creates a line break within the same element without adding extra spacing. No closing tag required.

Horizontal Rule (hr)

Inserts a horizontal line across the page. Can be styled with CSS or sized with HTML attributes.

Image Implementation Checklist

0/6

Key Takeaways

1Index.html serves as the default homepage file that web servers automatically display when no specific page is requested
2Images are inline elements that display horizontally next to each other, unlike block-level elements like headings and paragraphs that stack vertically
3Always include alt text for accessibility and to provide fallback content while images are loading or if they fail to load
4Setting width and height attributes helps prevent content from jumping around during page load by reserving proper space
5Optimize image file sizes by resizing them to appropriate dimensions rather than using oversized files that slow page loading
6Use separate optimized images for thumbnails and full-size versions in galleries rather than scaling one large image
7Page loading speed affects Google search rankings, making image optimization crucial for SEO performance
8Different browsers handle broken images differently, but all will display the alt text as fallback content

RELATED ARTICLES