Wednesday, 19 February 2025

Assignments Of Class 15: Flexbox - Part 2

 


Assignments Of Class 15: Flexbox - Part 2

Assignment 1: Understanding justify-content

Task: Create a Flexbox container with multiple items, and experiment with all the values of the justify-content property.

Steps:

1.   Create an HTML file with a Flexbox container and multiple items.

2.   Apply different values of the justify-content property and observe how the items align.

html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Justify Content</title>
  <style>
    .container {
      display: flex;
      height: 200px;
      border: 1px solid black;
    }
    .item {
      width: 50px;
      height: 50px;
      margin: 5px;
      background-color: lightblue;
    }
  </style>
</head>
<body>
  <div class="container" style="justify-content: flex-start;">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
  </div>
  <div class="container" style="justify-content: center;">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
  </div>
  <div class="container" style="justify-content: space-between;">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
  </div>
  <div class="container" style="justify-content: space-around;">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
  </div>
  <div class="container" style="justify-content: space-evenly;">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
  </div>
</body>
</html>

Explanation:

  • flex-start: Aligns items at the start of the container.
  • center: Centers items within the container.
  • space-between: Distributes items with the first and last items at the edges, and equal space between the rest.
  • space-around: Items have equal space before the first and after the last, as well as between each item.
  • space-evenly: Distributes items with equal space between each item, including the edges.

Assignment 2: Using align-items for Vertical Alignment

Task: Use align-items to vertically align items within a Flexbox container.

Steps:

1.   Create a container with Flexbox.

2.   Apply different values of align-items to see how items align vertically.

html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Align Items</title>
  <style>
    .container {
      display: flex;
      height: 200px;
      border: 1px solid black;
    }
    .item {
      width: 50px;
      height: 50px;
      margin: 5px;
      background-color: lightgreen;
    }
  </style>
</head>
<body>
  <div class="container" style="align-items: flex-start;">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
  </div>
  <div class="container" style="align-items: center;">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
  </div>
  <div class="container" style="align-items: flex-end;">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
  </div>
  <div class="container" style="align-items: stretch;">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
  </div>
</body>
</html>

Explanation:

  • flex-start: Aligns items at the start (top) of the container.
  • center: Centers items vertically.
  • flex-end: Aligns items at the end (bottom) of the container.
  • stretch: Stretches items to fill the container's height.

Assignment 3: Flex Items Wrapping with flex-wrap

Task: Apply flex-wrap to allow items to wrap when there is insufficient space.

Steps:

1.   Create a Flexbox container with a set number of items.

2.   Apply flex-wrap to allow the items to wrap onto new lines.

html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Flex Wrap</title>
  <style>
    .container {
      display: flex;
      flex-wrap: wrap;
      border: 1px solid black;
    }
    .item {
      width: 100px;
      height: 100px;
      margin: 10px;
      background-color: lightcoral;
    }
  </style>
</head>
<body>
  <div class="container">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
  </div>
</body>
</html>

Explanation:

  • The items will wrap to the next line once the container is filled. The flex-wrap property allows this behavior.

Assignment 4: Creating a Centered Flex Container

Task: Create a container with three items that are centered both horizontally and vertically using Flexbox.

Steps:

1.   Set the container to display: flex.

2.   Apply justify-content and align-items to center the items.

html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Centered Flexbox</title>
  <style>
    .container {
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100vh;
      border: 1px solid black;
    }
    .item {
      width: 50px;
      height: 50px;
      margin: 5px;
      background-color: lightblue;
    }
  </style>
</head>
<body>
  <div class="container">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
  </div>
</body>
</html>                                                                           

Explanation:

  • justify-content: center: Horizontally centers the items.
  • align-items: center: Vertically centers the items.

Assignment 5: Creating a Vertical Flexbox Layout

Task: Create a container with a vertical Flexbox layout and align the items at the center.

Steps:

1.   Set the container's display to flex and the flex-direction to column.

2.   Center the items using justify-content and align-items.

html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Vertical Flexbox Layout</title>
  <style>
    .container {
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      height: 100vh;
      border: 1px solid black;
    }
    .item {
      width: 50px;
      height: 50px;
      margin: 5px;
      background-color: lightgreen;
    }
  </style>
</head>
<body>
  <div class="container">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
  </div>
</body>
</html>

Explanation:

  • flex-direction: column: Arranges the items vertically.
  • justify-content: center: Centers items along the main axis (vertically).
  • align-items: center: Centers items along the cross axis (horizontally).

Assignment 6: Creating a Navbar Using Flexbox

Task: Build a horizontal navigation bar using Flexbox.

Steps:

1.   Create a container and use Flexbox to align navigation links horizontally.

2.   Apply justify-content to distribute the links evenly.

html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Flexbox Navbar</title>
  <style>
    nav {
      display: flex;
      justify-content: space-around;
      background-color: #333;
      padding: 10px;
    }
    nav a {
      color: white;
      text-decoration: none;
      padding: 10px 15px;
    }
    nav a:hover {
      background-color: #575757;
    }
  </style>
</head>
<body>
  <nav>
    <a href="#">Home</a>
    <a href="#">About</a>
    <a href="#">Services</a>
    <a href="#">Contact</a>
  </nav>
</body>
</html>

Explanation:

  • justify-content: space-around: Distributes links evenly with equal space around them.

Assignment 7: Creating a Gallery Layout Using Flexbox

Task: Create a responsive gallery layout with Flexbox.

Steps:

1.   Use Flexbox to arrange images in a row.

2.   Make the gallery responsive by adjusting the width of each image based on screen size.

html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Flexbox Gallery</title>
  <style>
    .gallery {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
    }
    .gallery img {
      width: 100%;
      max-width: 200px;
      height: auto;
    }
  </style>
</head>
<body>
  <div class="gallery">
    <img src="https://via.placeholder.com/200" alt="Image 1">
    <img src="https://via.placeholder.com/200" alt="Image 2">
    <img src="https://via.placeholder.com/200" alt="Image 3">
    <img src="https://via.placeholder.com/200" alt="Image 4">
  </div>
</body>
</html>

Explanation:

  • flex-wrap: wrap: Allows the images to wrap into multiple lines.
  • Responsive design: Images adjust their size based on the screen width.

Assignment 8: Creating a Card Layout

Task: Build a simple card layout with Flexbox.

Steps:

1.   Create a Flexbox container to hold the cards.

2.   Apply styling to make each card look like a distinct block.

html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Flexbox Cards</title>
  <style>
    .card-container {
      display: flex;
      justify-content: space-between;
      flex-wrap: wrap;
    }
    .card {
      width: 30%;
      padding: 20px;
      border: 1px solid #ddd;
      margin-bottom: 20px;
      background-color: #f9f9f9;
    }
  </style>
</head>
<body>
  <div class="card-container">
    <div class="card">
      <h3>Card 1</h3>
      <p>This is card number 1.</p>
    </div>
    <div class="card">
      <h3>Card 2</h3>
      <p>This is card number 2.</p>
    </div>
    <div class="card">
      <h3>Card 3</h3>
      <p>This is card number 3.</p>
    </div>
  </div>
</body>
</html>

Explanation:

  • justify-content: space-between: Distributes the cards with space between them.
  • flex-wrap: wrap: Cards wrap onto new lines when necessary.

Assignment 9: Building a Footer with Flexbox

Task: Create a footer with three sections: left, center, and right aligned.

Steps:

1.   Create a Flexbox container for the footer.

2.   Use justify-content to align the sections.

html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Flexbox Footer</title>
  <style>
    footer {
      display: flex;
      justify-content: space-between;
      padding: 20px;
      background-color: #333;
      color: white;
    }
    footer div {
      width: 30%;
    }
  </style>
</head>
<body>
  <footer>
    <div>Left Section</div>
    <div>Center Section</div>
    <div>Right Section</div>
  </footer>
</body>
</html>

Explanation:

  • justify-content: space-between: Spaces out the three sections with equal space between them.

Assignment 10: Creating a Responsive Navigation Bar

Task: Create a responsive navbar using Flexbox that stacks the items on smaller screens.

Steps:

1.   Create a Flexbox navbar with links.

2.   Use media queries to make the navbar items stack on smaller screens.

html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Responsive Navbar</title>
  <style>
    nav {
      display: flex;
      justify-content: space-around;
      background-color: #333;
      padding: 10px;
    }
    nav a {
      color: white;
      text-decoration: none;
      padding: 10px;
    }
    nav a:hover {
      background-color: #575757;
    }
    @media (max-width: 600px) {
      nav {
        flex-direction: column;
        align-items: center;
      }
    }
  </style>
</head>
<body>
  <nav>
    <a href="#">Home</a>
    <a href="#">About</a>
    <a href="#">Services</a>
    <a href="#">Contact</a>
  </nav>
</body>
</html>

Explanation:

  • Media query: When the screen width is 600px or smaller, the navbar items stack vertically.

No comments:

Post a Comment

Search This Blog

Powered by Blogger.