Home Web Front-end CSS Tutorial Fundamentals of HTML and CSS

Fundamentals of HTML and CSS

Jan 06, 2025 pm 10:11 PM

HTML and CSS are the most fundamental building blocks of a webpage, and they are also your first step towards becoming a web developer. HTML provides the layout and content of the webpage, and CSS defines its style and appearance. In this tutorial, we are going to cover the basics of HTML and CSS, and by the end, you will be able to design responsive webpages that work seamlessly on devices of all sizes.

What is HTML?

HTML is the standard markup language used to create webpages. It defines the structure and content of webpages using HTML elements such as headings, paragraphs, images, links, forms, and more.

To start writing HTML code, you can use the CodePen demo below:

Code Demo ?

On the left side, you will find the HTML source code, which is essentially the blueprint for what will be displayed. The browser will then transform this blueprint into the webpage you see on the right side.

You can modify the source code directly to see how it affects the displayed webpage.

Prepare your computer for web development

Of course, in practice, you cannot rely on tools such as CodePen to create a working and fully featured web application. You need something more powerful, so, let's set up your computer for web development.

To get started, make sure you have a browser installed. Any popular web browser such as Google Chrome, Microsoft Edge, Safari, or Firefox, should be sufficient for this course. You may download and install the browser from the linked websites.

In addition, you'll need a code editor to write and edit your code. Visual Studio Code is a great option for beginners (and professionals, for that matter). It is the most commonly used code editor in the world. Simply download the appropriate installer for your operating system from their official website.

Fundamentals of HTML and CSS

After you've installed VSCode, make sure to install the Live Server extension as well. Navigate to the Extensions tab on the left sidebar, and type in Live Server in the search box. From there, you'll be able to download and install the extension.

Fundamentals of HTML and CSS

Live Server will create a local development server with the auto-reload feature. For example, create a new work directory and open it using VSCode.

Fundamentals of HTML and CSS

Create a new file named index.html under this directory. The .html extension indicates that this is an HTML document. Type in ! in VSCode, and you will see suggestions like this:

Fundamentals of HTML and CSS

This is a shortcut for creating HTML documents quickly. You can navigate with the ↑ or ↓ keys. Select the first option, and the following code should be generated.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body></body>
</html>
Copy after login
Copy after login

Notice that at the bottom right corner of the VSCode window, there is a Go Live button.

Fundamentals of HTML and CSS

Clicking this button will activate the Live Server extension. A local development server will be started, hosting the index.html file you just created.

Fundamentals of HTML and CSS

Of course, the file is still empty right now, so you can't see anything. Add something between the and tags.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    Hello, world!
  </body>
</html>
Copy after login
Copy after login

Save the changes, and the webpage will be automatically refreshed with the new content.

Fundamentals of HTML and CSS

The structure of an HTML document

A typical HTML document always has the following structure:

<!DOCTYPE html>
<html lang="en">
  <head>
    . . .
  </head>
  <body>
    . . .
  </body>
</html>
Copy after login
Copy after login

The tag defines the document type. When the web browser encounters , it understands that the page should be parsed and displayed according to the specifications of HTML5, the latest version of HTML standard. This ensures that modern browsers interpret the webpage's content and layout correctly.

Everything else in the file should be enclosed inside an element, defined by an opening tag () and a closing tag ().

lang is called an attribute, and it has the value "en". This tells the browser as well as the search engine that English is the primary language used for this webpage.

Inside the element, there are two child elements, and . contains metadata and other information about the HTML document. This information will not be displayed in the browser but is often used by search engines for SEO (Search Engine Optimization) purposes.

, on the other hand, contains the main content of the webpage that is visible to the users, and for that reason, it is also the part of the HTML file we are going to focus on in this course.

Elements and attributes

Let's take a closer look at the previous example and notice that the HTML document comprises different elements in a nested structure. In HTML, most elements have both an opening tag and a closing tag:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body></body>
</html>
Copy after login
Copy after login

In this case, is the opening tag, and is the closing tag, and together, they form an HTML element. An element could hold textual content between the opening and closing tags.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    Hello, world!
  </body>
</html>
Copy after login
Copy after login

The element can also wrap around other elements, forming a nested structure.

<!DOCTYPE html>
<html lang="en">
  <head>
    . . .
  </head>
  <body>
    . . .
  </body>
</html>
Copy after login
Copy after login

Inside the opening tag, you can define attributes, which are used to specify additional information about the element, such as its class, id, and so on.

<tag>. . .</tag>
Copy after login

The attribute is usually in a key/value pair, and the value must always be enclosed inside matching quotes (double or single).

There are some exceptions to these general formats. For example, the
element, which creates a line break, does not need a closing tag. Some attributes, such as multiple, do not require a value. We will discuss these exceptions later in this course as we encounter them.

However, you should remember that if an element does require a closing tag, then it should never be left out. In most cases, the webpage could still render correctly, but as the structure of your HTML document grows more complex, unexpected errors may occur. Take a look at our best practice guidelines for writing HTML and CSS if you are interested.

Further readings

  • Introducing the Cascading Style Sheet (CSS)
  • Introduction to JavaScript
  • What is Responsive Design
  • How to Build Interactive Forms Using HTML and CSS

The above is the detailed content of Fundamentals of HTML and CSS. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

It&#039;s out! Congrats to the Vue team for getting it done, I know it was a massive effort and a long time coming. All new docs, as well.

Building an Ethereum app using Redwood.js and Fauna Building an Ethereum app using Redwood.js and Fauna Mar 28, 2025 am 09:18 AM

With the recent climb of Bitcoin’s price over 20k $USD, and to it recently breaking 30k, I thought it’s worth taking a deep dive back into creating Ethereum

Can you get valid CSS property values from the browser? Can you get valid CSS property values from the browser? Apr 02, 2025 pm 06:17 PM

I had someone write in with this very legit question. Lea just blogged about how you can get valid CSS properties themselves from the browser. That&#039;s like this.

Stacked Cards with Sticky Positioning and a Dash of Sass Stacked Cards with Sticky Positioning and a Dash of Sass Apr 03, 2025 am 10:30 AM

The other day, I spotted this particularly lovely bit from Corey Ginnivan’s website where a collection of cards stack on top of one another as you scroll.

A bit on ci/cd A bit on ci/cd Apr 02, 2025 pm 06:21 PM

I&#039;d say "website" fits better than "mobile app" but I like this framing from Max Lynch:

Comparing Browsers for Responsive Design Comparing Browsers for Responsive Design Apr 02, 2025 pm 06:25 PM

There are a number of these desktop apps where the goal is showing your site at different dimensions all at the same time. So you can, for example, be writing

Using Markdown and Localization in the WordPress Block Editor Using Markdown and Localization in the WordPress Block Editor Apr 02, 2025 am 04:27 AM

If we need to show documentation to the user directly in the WordPress editor, what is the best way to do it?

Why are the purple slashed areas in the Flex layout mistakenly considered 'overflow space'? Why are the purple slashed areas in the Flex layout mistakenly considered 'overflow space'? Apr 05, 2025 pm 05:51 PM

Questions about purple slash areas in Flex layouts When using Flex layouts, you may encounter some confusing phenomena, such as in the developer tools (d...

See all articles