Step 4

Navigation Bars


Navigation bars are crucial for any website, providing a user-friendly way to navigate through the site.
With CSS, you can transform simple HTML menus into stylish navigation bars.


Navigation Bar = List of Links
A navigation bar is fundamentally a list of links, making the <ul> and <li> elements a logical choice.
Example

<ul>
<li><a href="default.asp">Home</a></li>
<li><a href="news.asp">News</a></li>
<li><a href="contact.asp">Contact</a></li>
<li><a href="about.asp">About</a></li>
</ul>

To style the list as a navigation bar, start by removing bullets, and default margins and paddings:
Example
ul {
list-style-type: none;
margin: 0;
padding: 0;
}


Example explained:
list-style-type: none; - This removes the bullets, making it more suitable for navigation bars.
Set margin: 0; and padding: 0; to clear browser defaults, ensuring consistency across different browsers.
This code forms the basis for both vertical and horizontal navigation bars.


Vertical Navigation Bar
For a vertical navigation bar, style the <a> elements within the list, in addition to the previous styles:
Example
li a {
display: block;
width: 60px; /* Adjust as necessary */
}


Example explained:
display: block; - Makes the entire area of the link clickable, not just the text, and allows for setting dimensions like width.
width: 60px; - By default, block elements take up the full width available. Specifying width helps control the layout.
Setting the <ul> width and removing the <a> width lets them fill the available space, useful for a clean vertical bar look.


Example
ul {
list-style-type: none;
margin: 0;
padding: 0;
width: 60px; /* This controls the navigation width */
}

li a {
display: block;
}


Vertical Navigation Bar Examples
Create a basic vertical navigation bar with a gray background and change the background color of links on hover:

Example
ul {
list-style-type: none;
margin: 0;
padding: 0;
width: 200px; /* Adjust width as needed */
background-color: #f1f1f1;
}
li a {
display: block;
color: #000;
padding: 8px 16px;
text-decoration: none;
}

/* Change the link color on hover */
li a:hover {
background-color: #555;
color: white;
}



2. Adding Images to Web Pages


Images can be embedded in a webpage via CSS, offering advantages such as responsive design adjustments. CSS can change an image's display properties based on the screen size, ensuring optimal layout across devices.


Image File Types
Each image file type has its unique characteristics. Understanding these can help you choose the most suitable format for your website's needs.

.jpg: Small file sizes facilitate quicker loading times, ideal for photographs due to good color reproduction. However, quality may decrease when scaled up.

.png: Known for supporting transparencies and maintaining color depth with high quality, but larger file sizes may slow down web loading times.

.gif: Best suited for animations, offering small file sizes and sharp image quality. Though it supports transparency, it can result in a halo effect around images.

.svg (Scalable Vector Graphics): Excellent for graphics that need to scale without loss of quality, such as logos and icons.
Pros:
- Maintains quality at any size
- Efficient for logos and icons
Cons:
- Can require more code for complex illustrations

.webp: Offers superior compression techniques, achieving high quality with smaller file sizes compared to jpg and png. Well-supported in modern browsers.

.pdf: While not traditionally used for web images, PDFs are becoming more common for certain types of web content.
Pros:
- Broad compatibility across operating systems
Cons:
- Not originally designed for web use, which may impact performance

.tiff: Once used in early web design, TIFF files are now impractical for web use due to their size.
Pros:
- High-quality image representation
Cons:
- Extremely large file sizes result in slow loading times



Steps for Implementing an Image


Step 1: Determine the maximum display dimensions of the image.

Step 2: Use an image editor like Photoshop or a free alternative to create a canvas at the desired size.

Step 3: Insert the image onto the canvas and adjust its size appropriately.

Step 4: Save the image in the chosen format, considering the balance between quality and file size.

Step 5: Include the image in your HTML using the <img> tag or CSS, depending on the context and requirements for responsiveness.

Step 6: For responsive design, use CSS to control the image's max-width and height properties, ensuring it scales properly across devices.



Steps for Getting an Image Ready for Web Use


Follow these steps to optimize an image for the web, ensuring it loads quickly and appears correctly across all devices.

Step 1: Edit the image to the largest needed size, considering the viewing context and device types.

Step 2: Save the image for the web, choosing a format that offers a good balance between quality and load time.

Step 3: Use tools or plugins within your image editing software to further optimize the image size without sacrificing quality.

Step 4: Test the image's load time on various devices and connections to ensure a good user experience.

Always store original, unedited image files separately for future editing needs.

To embed an image in your page:

1. Determine the correct placement in your HTML code.

2. Embed the image using the <img> tag, and then adjust its width and height for responsiveness.

3. Ensure the 'alt' attribute is descriptive and accessible, improving SEO and accessibility for users with visual impairments.

Photograph of skier on snowy slopes

<img src="images/_skier-700x380.jpg" style="max-width:100%;height:auto;" alt="Photograph of skier on snowy slopes"/>