Lecture Notes Of Class 15: Flexbox - Part 2
Objective:
By the end of this class, students will be able to master key
Flexbox properties, such as justify-content, align-items, and flex-wrap, and will apply these properties to
build a responsive navigation bar.
Topics:
1. justify-content
2. align-items
3. flex-wrap
1. justify-content:
The justify-content property in Flexbox is used to
control the alignment of the flex items along the main axis
(the direction in which the flex container's items are laid out, which can be
horizontal or vertical).
Syntax:
cssjustify-content: value;
Possible Values of justify-content:
flex-start(default): Aligns items at the start of the container (left for row direction, top for column direction).flex-end: Aligns items at the end of the container (right for row direction, bottom for column direction).center: Centers items in the container.space-between: Distributes items evenly, with the first item at the start, the last item at the end, and equal space between the rest.space-around: Distributes items evenly with equal space before the first item and after the last item, as well as between each item.space-evenly: Distributes items with equal space between them, including the start and end of the container.
Example:
css.container { display: flex; justify-content: center; /* Items will be centered */}
2. align-items:
The align-items property is used to align flex items
along the cross axis, which is perpendicular to the main axis
(i.e., vertically when the main axis is horizontal, and horizontally when the
main axis is vertical).
Syntax:
cssalign-items: value;
Possible Values of align-items:
flex-start: Aligns items at the start of the container (top for row direction, left for column direction).flex-end: Aligns items at the end of the container (bottom for row direction, right for column direction).center: Centers items along the cross axis.baseline: Aligns items based on their baseline (i.e., text line).stretch(default): Stretches items to fill the container along the cross axis.
Example:
css.container { display: flex; align-items: center; /* Items will be centered vertically */}
3. flex-wrap:
The flex-wrap property controls whether the flex
items should wrap onto the next line (if there is not enough space in the
container).
Syntax:
cssflex-wrap: value;
Possible Values of flex-wrap:
nowrap(default): All flex items will be on one line, even if they overflow the container.wrap: Flex items will wrap onto the next line if necessary, maintaining their natural order.wrap-reverse: Flex items will wrap onto the next line, but in the opposite direction (from bottom to top for row direction, from right to left for column direction).
Example:
css.container { display: flex; flex-wrap: wrap; /* Items will wrap if there is insufficient space */}
Lab Exercise: Build a Responsive Navbar Using Flexbox
Goal: Create a navigation bar that adjusts its layout on different
screen sizes.
Step-by-Step Guide:
1.
HTML Structure:
Create the basic structure of the navigation bar using nav, ul, and li elements.
html<nav> <ul> <li><a href="#">Home</a></li> <li><a href="#">About</a></li> <li><a href="#">Services</a></li> <li><a href="#">Contact</a></li> </ul></nav>
2.
CSS Styling:
o Set up the container:
The nav element will be the flex container. Set
it to display: flex and use justify-content
and align-items to align the items
properly.
cssnav { display: flex; justify-content: space-between; /* Space between links */ align-items: center; /* Vertically center the items */ background-color: #333; padding: 10px 20px;} ul { list-style-type: none; display: flex; /* Make the list items display in a row */ padding: 0; margin: 0;} li { margin: 0 15px; /* Space between list items */} a { text-decoration: none; color: white; font-size: 16px;}
3.
Make it responsive:
o Use
flex-wrap
to ensure the items wrap on smaller screens, and adjust the layout for smaller
devices using media queries.
css@media (max-width: 600px) { nav { flex-direction: column; /* Stack the items vertically */ justify-content: center; /* Center the items */ } ul { flex-wrap: wrap; /* Allow wrapping */ justify-content: center; /* Center items when wrapped */ } li { margin: 10px 0; /* Space between items when stacked */ }}
4.
Testing Responsiveness:
Test the navbar in various screen sizes to ensure the layout is responsive. On
wider screens, the items will be spaced out and aligned horizontally. On
smaller screens, the items will stack vertically, and the layout will adjust to
the screen size.
Summary:
In this class, you learned about:
justify-contentto align items along the main axis.align-itemsto align items along the cross axis.flex-wrapto allow items to wrap when necessary.
You applied these Flexbox properties by building a responsive navigation bar that adapts to different screen sizes.
These assignments help you practice various aspects of Flexbox, from basic layout control to advanced responsive design principles. Each solution provides clear, beginner-friendly explanations and visual outcomes.


No comments:
Post a Comment