Skip to content
Home » META » Meta Front-End Developer Professional Certificate » Course 8: Front-End Developer Capstone » Module 2: Project foundations

Module 2: Project foundations

In this module, you’ll use semantic HTML, meta tags and Open Graph protocol to create a modern HTML structure for the web app. You will also use CSS grid and other CSS styling to set up a responsive, clear and inviting website.

Learning Objectives

  • Set up a responsive website
  • Use React components to create multiple views
  • Design and style a responsive UI

Semantic structure


Video: Setting up a semantic HTML document

Summary of Module 2: Semantic Structure

In this lesson, you’ll review and apply techniques for organizing the structure of your capstone project, specifically focusing on semantic HTML. You’ll:

  1. Brush up on HTML: Review HTML5 syntax and focus on semantic HTML, which makes webpages more understandable for people, screen readers, and search engines.
  2. Set up an HTML document: Properly format your HTML structure using semantic HTML5 tags, such as nav, header, footer, main, aside, and article.
  3. Understand the importance of semantic HTML: Learn why using div elements everywhere is not a best practice and how semantic HTML5 tags help signal intent for both people and machines.
  4. Work with meta tags and Open Graph protocol: Set up meta tags and Open Graph protocol settings to assist with search engine optimization and social media sharing.
  5. Complete readiness checks: Complete two readiness checks, one for meta tags and Open Graph protocol settings, and another for tracking progress with Git.
  6. Take a quiz and access additional resources: Complete a quiz and access additional reading materials to further reinforce your knowledge of semantic HTML, meta tags, and Open Graph tags.

By the end of this lesson, you’ll have a solid understanding of semantic HTML and how to apply it to your capstone project.

With HTML 5, you should use the <div> element instead of semantic tags.

False

That’s correct. In line with the proper HTML 5 semantics, you should focus instead on using the many semantic HTML 5 tags that are available today, rather than relying on the <div> element.

Welcome to Module 2 of this
course, Project Foundations. In this lesson entitled
Semantic Structure, you’ll revise the techniques
and technologies related to properly organizing
the structure of your capstone project, continuing your work on the reserve a table Web
App for Little Lemon. From the vantage
point of this lesson, this means that you’ll need
to brush up on your HTML. Specifically, you’ll be
focusing on semantic HTML, a more modern HTML5 syntax that makes webpages
convey more meaning, allowing people, screen readers, and search engines to better
understand a site’s markup. The first exercise of this
lesson will deal with properly setting up
your HTML document. You will subsequently
be quizzed on your progress regarding
the semantic HTML. You may be wondering
why this is important. Well, the point of
these lesson items is to ensure that
you properly format your HTML structure
so that it’s in line with a proper
HTML5 semantics. You’ll be reminded that using the div element everywhere
is not a best practice, and that you should
focus on using the many semantic HTML5 tags that are available
today instead. These tags which
can be used to find the various web page sections include but are not limited
to the nav element, the header element,
the footer element, the main element,
the aside element, and the article element. You’ll also be reacquainted
with the history of HTML, the difference between
HTML4 and HTML5, and why HTML5 spec has such
a focus on semantic tags. You’ll revisit the need to
have a more expressive syntax to help signal intent for
both people and machines, including search engine bots, crawling countless
HTML pages online. After you’ve set up a
semantic HTML document, you’ll need to shift your
focus onto working with meta tags and setting
up Open Graph protocol. To assist you with this part
of the capstone project, you will revisit what you
learned on the subject in the HTML and CSS
in-depth course. You’ll then be tasked with completing two readiness checks, one for completing the meta tags in the Open Graph
protocol settings, and the other one related to tracking your progress with Git. You will complete
this lesson with a quiz and a reading
linking you to additional related resources
and useful reading materials to further reinforce
your knowledge related to semantic HTML, meta tags and Open Graph tags. Now, let’s get going.

Reading: Recap: Semantic HTML

Reading

Reading: Exercise: Setting up the HTML document

Reading

Reading: Recap: Meta tags and Open Graph protocol

Reading

Reading: Exercise: Adding meta tags and setting up OGP

Reading

Practice Assignment: Knowledge check: Semantic structure

Which of the following are semantic HTML tags? Choose all that apply.
<article>
<div>
<h1>
<header>
<table>

Complete the sentence: Semantic tags are a way to…
Give meaning to the content of a webpage or document.
Create a layout for a webpage or document.
Create a table of data.
Add style to a webpage or document.

What is Open Graph protocol (OGP)?
A protocol for sending and receiving email messages
A protocol for describing the shared content on social media platforms
A protocol for transmitting audio and video over the internet
A protocol for encrypting data transmitted over the internet

HTML meta tags are used to provide information about a webpage to search engines and other web services.
True
False

Which of the following meta tags are valid? Choose all that apply.
responsive
description
viewport
og:title

Reading: Additional resources

Reading

Styling and responsiveness


Video: Styling elements

The lesson discusses the evolution of CSS layout techniques and the importance of understanding modern CSS layout techniques, specifically CSS Grid and Flexbox.

Key Points:

  1. History of CSS layouts: The lesson briefly covers the history of CSS layouts, from table-based layouts to floats, and then to Flexbox and CSS Grid.
  2. Flexbox and CSS Grid: Flexbox is a one-dimensional layout technique used to arrange items in rows or columns, while CSS Grid is a two-dimensional layout technique used to build web layouts.
  3. Evolution of CSS Grid: CSS Grid was first introduced in the early 2010s, but it wasn’t widely adopted until 2018, when modern browsers caught up with the specification.
  4. Benefits of using CSS Grid and Flexbox: Both CSS Grid and Flexbox have their own benefits and use cases, and it’s essential to know both to make informed decisions about layout choices.
  5. Importance of understanding modern CSS layout techniques: Understanding modern CSS layout techniques is crucial for making informed decisions about layout choices and determining whether existing code is up to modern standards.

Learning Objectives:

By the end of this lesson, you should be able to:

  1. Understand the history of CSS layouts and the evolution of CSS Grid and Flexbox.
  2. Know the benefits and use cases of CSS Grid and Flexbox.
  3. Make informed decisions about layout choices.
  4. Determine whether existing code is up to modern standards.
  5. Choose the right approach for building CSS layouts.

Focus of the lesson: The lesson will mainly focus on building CSS layouts using CSS Grid, as it’s the most comprehensive and versatile tool in the modern CSS layout toolbox.

Which of the following are modern ways to build CSS layouts?

Grid layout, Flexbox layout

That’s correct. Modern CSS layouts use CSS Flexbox, in addition to another modern alternative.

In this lesson, you’ll revisit
the topic of styling web pages and web apps in order to apply
the little lemon style guide and layout designs created
earlier in the course. To begin with, you’ll explore working with CSS in
isolation without focusing on react. After that, you’ll work with CSS. From the perspective of react, you may recall that CSS has been
around since the late 1990s. This means that there have been
various ways of laying out websites. Let’s explore them briefly. It all started off with
table-based layouts, which are now an outdated
way to build layouts. After that in the early two thousand’s,
another technique became popular floats. As a CSS property, a float is intended to remove HTML
element from the normal document flow. In other words, when you float an element, it no longer obeys
the normal document flow. Floats were popular for quite some time,
however, because they were not intended for building web layouts, proper
layout syntax was still needed in CSS. With the consensus that something
better was needed in the early 2010s, there were a few attempts at
introducing the CSS flexible layout module specification or flex box layout. Which is a one dimensional layout
technique used to arrange items in rows or columns. If you’d like to read up
more on flex box layouts, you can consult the additional
resources for this lesson. However, it’s worth noting this initial
attempt at the flex box layout in the CSS specification was not entirely
successful due to constantly shifting specifications and inconsistent and
spotty support across browsers. Finally, in the second half of the 2010s
decade, flex box saw a new specification and wide adoption with the CSS grid
specification following soon after it. The CSS grid layout technique really
took off somewhere around 2018 with the CSS grid layout module
being the part of the CSS spec whose purpose is to build web layouts. The reason is simple, it took a while for the browsers to catch up with the CSS
grid spec and for the older browsers that were not built to support CSS grid
to lose most of their market share. So after modern browsers caught up with
the CSS grid and older browsers that didn’t support it became obsolete,
CSS grid was widely adopted. There are various benefits to using
both CSS flex box and CSS grid. And in this lesson, you’ll revisit
the pros and cons of using each. You should not underestimate the role and
place of CSS flex box. And it’s important to keep in mind
that CSS grid is not a replacement for CSS flex box, it’s good if you know either
of them, but it’s best if you know both. Another reason to be aware of the various
layout techniques out there is to be able to make informed decisions
about layout choices. In their day to day work, developers
are very often faced with having to decide whether a piece of code is
good enough or if it needs changing. A lot of that decision making
process comes with experience. Still having a general idea about
modern CSS layout techniques and where they should be used is important for
a well rounded front end developer. Indeed, the more knowledge
you have on this topic, the better you’ll be at choosing the right
approach and determining whether the existing code in any project you
work on is up to modern standards. Furthermore, you’ll be able to
determine the best tool for the job. All that being said, the focus of this
lesson will mainly be on building CSS layouts using CSS grid as it’s
the most comprehensive and versatile tool in the modern
CSS layout toolbox. Time to get started.

Reading: Recap: CSS grids

Reading

Reading: Exercise: Setting up the CSS layout

Reading

Adding components