CodeGym /Courses /Frontend SELF EN /Basics of Responsive Design

Basics of Responsive Design

Frontend SELF EN
Level 25 , Lesson 0
Available

1.1 Mobile-First Approach

Responsive design is a web development approach that allows websites to adapt to different screen sizes and devices, ensuring the best user experience. The main goal of responsive design is to make a website comfortable and accessible for all users, regardless of the device they are using.

Mobile-First Approach means starting web development by designing for mobile devices with small screens, then expanding to larger screens. This method helps focus on the most important site elements and features.

Advantages of Mobile-First Approach:

  • Optimizing content for mobile users
  • Simplifying design and functionality for small screens
  • Improving performance by reducing content amount

Example:

CSS
    
      /* Basic styles for mobile devices */

      body {
        font-size: 16px;
        margin: 0;
        padding: 0;
      }

      /* Styles for larger screens */

      @media (min-width: 768px) {
        body {
          font-size: 18px;
        }
      }
    
  

1.2 Progressive Enhancement

Progressive enhancement focuses on providing basic functionality to all users, then adding enhancements for more powerful browsers and devices. This approach ensures content accessibility even if some features or styles aren't supported by the user's device.

Advantages of Progressive Enhancement:

  • Providing basic functionality for all users
  • Improving user experience for those with modern devices
  • Reducing the risk of losing content or functionality
HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Progressive Enhancement</title>
          <style>
            /* Basic styles for all browsers */

            body {
              font-family: Arial, sans-serif;
            }

            /* Enhanced styles for modern browsers */

            @supports (display: grid) {
              .container {
              display: grid;
              grid-template-columns: 1fr 1fr;
              }
            }
          </style>
        </head>
        <body>
          <div class="container">
          <div>Content 1</div>
          <div>Content 2</div>
          </div>
        </body>
      </html>
    
  

1.3 Fluid Layouts

Fluid layouts mean using flexible elements that can adapt to different screen sizes. This includes using flexible containers that automatically change their sizes based on the screen size.

Advantages of Fluid Layouts:

  • Improving content display on various devices
  • Better adaptation to screen size changes
  • Enhancing usability and content accessibility

Example:

HTML
    
      <div class="container">
        <div class="item-1">Content item 1</div>
        <div class="item-2">
          Etiam scelerisque lectus nulla, eget convallis orci convallis vel. Etiam sed interdum sem. Nunc vestibulum lectus nibh, in volutpat velit fermentum eget. Mauris in risus tincidunt, sodales odio et, rutrum ligula. In iaculis congue ex in laoreet. Sed id eros porttitor, finibus diam ultrices, consectetur leo. Fusce aliquam, nibh ac sollicitudin viverra, felis libero fringilla orci, nec auctor elit sapien non arcu. Proin dolor mi, iaculis ut velit id, vestibulum consectetur metus. Duis venenatis felis a diam elementum, eget ullamcorper leo scelerisque. Sed tempus euismod urna et tristique. Duis at odio quis libero commodo ullamcorper id vel odio. Maecenas volutpat rhoncus sodales. Mauris eget nunc accumsan, rhoncus massa at, placerat lorem.
          Etiam ullamcorper elementum tellus non euismod. Mauris euismod mi nisi, sed egestas ligula varius sed. Nunc tortor elit, hendrerit sed gravida in, tempus nec augue. Aliquam vitae condimentum velit. Sed id massa ac felis tempor elementum. Aenean at nulla ipsum. Fusce sed cursus tortor. Duis sodales rhoncus eros, non aliquam ante ultricies ut. Pellentesque auctor ultricies aliquet. In laoreet enim dolor, vel consectetur sapien laoreet eu.
          In efficitur pharetra ex convallis egestas. Praesent egestas, sapien fermentum consectetur vestibulum, quam dui pharetra urna, vitae finibus arcu lacus quis mauris. Quisque consectetur lorem sapien, nec pulvinar elit varius vitae. Cras elementum risus lacus, a interdum tellus euismod ac. Interdum et malesuada fames ac ante ipsum primis in faucibus. Maecenas pharetra, odio vel facilisis venenatis, ipsum leo viverra ligula, ut venenatis enim ipsum ut lectus. Fusce cursus mollis congue.
        </div>
        </div>
    
  
CSS
    
      .container {
        width: 100%;
        padding: 20px;
        box-sizing: border-box;
        color: white;
      }

      .item-1 {
        min-height: 50px;
        width: calc(100% / 3);
        float: left;
        background: purple;
      }

      .item-2 {
        background: gray;
      }
    
  

1.4 Content Hierarchy

Content hierarchy is important for responsive design because it helps organize information so it’s accessible and understandable on any device. This includes proper use of headings, paragraphs, lists, and other elements to create a clear and logical structure.

Advantages of Content Hierarchy:

  • Improving readability and perception of information
  • Enhancing content accessibility for all users
  • Easy navigation and interaction with the site

Example:

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Content Hierarchy</title>
          <style>
            body {
              font-family: Arial, sans-serif;
              margin: 20px;
            }

            h1 {
              font-size: 2em;
            }

            h2 {
              font-size: 1.5em;
            }

            p {
              font-size: 1em;
              line-height: 1.5;
            }
          </style>
        </head>
        <body>
          <h1>Main Heading</h1>
          <h2>Subheading</h2>
          <p>
            This is a paragraph of text that follows the subheading.
            The text should be easily readable and understandable for all users.
          </p>
        </body>
      </html>
    
  
1
Task
Frontend SELF EN, level 25, lesson 0
Locked
Mobile Text
Mobile Text
1
Task
Frontend SELF EN, level 25, lesson 0
Locked
Flexible Layout
Flexible Layout
Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION