How to Use CSS in HTML: Your Ultimate Guide to Web Design Basics

By Cristian G. Guasch •  Updated: 09/18/23 •  9 min read

I’ve always believed that the beauty of a website lies not only in its content, but also in its design. And when it comes to web design, CSS plays an undeniably pivotal role. It’s the magic wand that brings color and structure to your HTML elements, turning plain text into visually compelling web pages.

Now you might be wondering, “How exactly do I use CSS with HTML?” Well, that’s exactly what we’re going to dive into today. There are three primary methods for incorporating CSS into your HTML – Inline styles, Internal style sheets, and External style sheets. Each method has its own unique applications and benefits.

Whether you’re just starting out or looking to expand your knowledge on CSS integration with HTML, I’m here to guide you step by step through this process. So let’s get started on our journey towards creating beautiful websites!

Understanding CSS in HTML Context

First off, let’s get some groundwork covered. CSS stands for Cascading Style Sheets. It’s a style sheet language used to describe the look and formatting of a document written in HTML or XML. Imagine you’re an artist; your HTML file is your canvas, while the CSS is your set of paints and brushes that allow you to design and beautify your web page.

Let’s dive right into some examples of how CSS integrates with HTML. Consider this simple piece of code:

<html>
  <body>
    <h1 style="color:blue;">This is a Blue Heading</h1>
    <p style="color:red;">This is a red paragraph.</p> 
  </body>
</html>

Here we’ve applied inline CSS directly within our HTML tags using the “style” attribute. The h1 tag has been styled to display text color in blue whereas the p tag shows the text color in red.

But what if we have numerous elements or complex designs? Inline styles can become messy very quickly! To avoid cluttering up our HTML document with styles, we often use internal or external stylesheets instead. Here’s an example:

<html>
<head>
<style>
body {background-color: powderblue;}
h1   {color: blue;}
p    {color: red;}
</style>
</head>

<body>

<h1>This is a Blue Heading</h1> 
<p>This is a Red Paragraph.</p> 

</body>

</html>

In this case, all h1 headings will be blue, and all paragraphs (p) will be red across the whole webpage as specified under the <style> tag.

Another way would be using an external stylesheet which involves creating separate .css files holding all styling rules then linking them to our HTML documents like so:

<html>
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>

<body>

<h1>This is a Heading</h1> 
<p>This is a Paragraph.</p> 

</body>

</html>

In the mystyle.css file, we could have:

body {background-color: powderblue;}
h1   {color: blue;}
p    {color: red;}

This approach of using an external CSS file helps keep our HTML clean and easy to read. Plus, it allows us to reuse the same styles across multiple HTML pages which can be incredibly efficient!

To sum up, CSS brings your HTML documents to life. It’s like giving your website its unique personality, setting it apart from millions of others out there. From simple color changes to complex animations, you can do all that and more with CSS in HTML!

Steps to Implement CSS into HTML

Let’s dive right in. The first step is to understand that there are three different ways you can apply CSS into your HTML document: inline, internal, and external.

  1. Inline CSS means applying the styles directly onto an individual HTML element using the ‘style’ attribute. Here’s how it looks:
<p style="color:red;">This text will be red</p>

But hold on! I’m not advocating for this method because it’s not efficient when you’ve got a large webpage or multiple pages to style. It’s like crafting each brick of a building individually!

  1. Internal CSS is used within the head section of your HTML file by wrapping your stylesheet with <style> tags. An example would look like this:
<head>
  <style>
    p {
      color: red;
    }
  </style>
</head>
<body>
  <p>This text will be red</p>
</body>

While this approach is more efficient than inline styling, it still bogs down when we’re dealing with several pages.

  1. That brings us to External CSS, which I recommend most often. This involves creating a separate .css file and linking it in the head section of your HTML document using <link> tag as shown below:
<head>
  <link rel="stylesheet" type="text/css" href="styles.css">
</head> 

And then in your styles.css file, you would write something like:

p {
  color: red;
}

With external CSS, one change can affect every page of your site – quite handy when you have dozens or hundreds of pages!

To sum up these steps concisely:

Alright, now that we’ve got the basics down let’s look at how to actually write that CSS code. You’ll want to understand selectors, properties, and values – but that’s a topic for another section!

Exploring Inline, Internal and External CSS

When diving into the world of CSS in HTML, it’s crucial to understand the difference between inline, internal, and external styles. Let’s unpack these three methods one by one.

Inline CSS is about adding style directly within your HTML tags using the ‘style’ attribute. It’s like giving a specific instruction to an individual element on your page. For example:

<p style="color:blue;">This is a blue paragraph.</p>

In this case, only this particular paragraph will turn blue.

Next up is internal CSS. Here we’re talking about placing styles in the <head> section of your HTML document using <style> tags. Unlike inline styling that affects just one tag at a time, internal CSS allows you to style multiple elements simultaneously. Here’s how you do it:

<head>
  <style>
    p { color: red; }
  </style>
</head>

<body>
  <p>This paragraph will be red.</p>
  <p>So will this one!</p>
</body>

Now let’s explore external CSS – think of it as a dedicated .css file that contains all your styles. You then link this stylesheet to your HTML files using the <link> tag in the <head> section:

<head>
   <link rel="stylesheet" type="text/css" href="mystyles.css">
</head>

<!-- Contents of mystyles.css -->
body {
   background-color: lightblue;
}

With external CSS, you can maintain consistency across multiple pages while keeping your code clean and organized.

Remember though, these aren’t set-in-stone rules but rather different tools for different tasks! Whether you use inline or go with external or stick with internal depends entirely on what suits your project best.

Common Mistakes When Using CSS in HTML

I’ve stumbled upon a fair share of common mishaps while using CSS in HTML during my years as a web developer. Let’s delve into some of these typical mistakes and how to avoid them.

Not specifying units when setting properties like width, height, or margin is one mistake I’ve often seen beginners make. It can cause your styles not to render correctly. For instance, if you write width: 500; instead of width: 500px;, the browser won’t understand what you mean and will ignore it.

<div style="width: 500;"> This is wrong </div>
<div style="width: 500px;"> This is correct </div>

Another common pitfall is not properly understanding the cascade in Cascading Style Sheets (CSS). The ‘cascade’ refers to the rules determining which styles apply when multiple conflicting rules could potentially apply. Not knowing this leads to unexpected results and makes debugging a nightmare.

<head>
    <style>
        .myDiv {color: red;}
        .myDiv {color: blue;} 
    </style>
</head>

<body>
    <div class="myDiv">This text will be blue, not red.</div> 
</body>

Using inline styles too frequently is another blunder I regularly come across. While they’re handy for quick fixes or overriding other styles, overusing them can create messy code that’s hard to maintain.

<p style="font-size:16px;color:red;">Avoid excessive use of inline styles like this.</p> 

Remembering specificity rules also trips up many developers. Specificity determines which CSS rule applies if more than one rule matches a particular element. Ignoring this can lead to huge headaches down the line!

<!DOCTYPE html>
<html>

<body>    
    <style> 
        #content p {color: green;} /* This will apply */
        p {color: red;} /* This won't apply */
    </style>

    <div id="content">
        <p>This paragraph will be green, not red.</p>
    </div>
</body>

</html>

Lastly, not leveraging CSS shorthand properties can make your stylesheets unnecessarily lengthy. For example, margin: 10px 20px 30px 40px; is much cleaner and shorter than writing out each side individually.

<!DOCTYPE html>
<html>

<body>    
    <style> 
        div {margin-top: 10px; margin-right: 20px; margin-bottom: 30px; margin-left: 40px;} /* Long version */
        div {margin: 10px 20px 30px 40px;} /* Short version */
    </style>

    <div>I'm a div with a shorthand margin!</div>
</body>

</html>

By keeping these common mistakes in mind while you’re crafting your HTML and CSS, you’ll save yourself from many headaches down the line!

Cristian G. Guasch

Hey! I'm Cristian Gonzalez, I created HTML Easy to help you learn HTML easily and fast.

Related articles