Code Conquest

  • Home
  • What is Coding?
  • Tutorials
  • Training
  • Reviews
  • Knowledge Center
  • Versus
  • Blog
You are here: Home / Don’t Mix HTML or CSS with JavaScript

Don’t Mix HTML or CSS with JavaScript

On a website, HTML describes the structure, CSS describes the styling and JavaScript controls the behavior. Developers call this the separation of concerns, and it’s something which you’ll need to understand and follow if you want to be an efficient coder.

Why is it so important to be aware of this? Because when writing code for a website, it can sometimes be ‘the easier option’ to break this rule and mix a bit of HTML or CSS into your JavaScript code. However, in the long run, blurring the line between behavior, content and styling is not really making your coding easier – in fact, it will make it a lot harder.

In this article, you’ll see two examples of mixing HTML or CSS with JavaScript, why it’s a bad coding practice, and what you should do instead.

Mixing CSS with JavaScript

Here’s an example of CSS being mixed in with JavaScript:

$('h1').mouseover(function(){
    $(this).css('color','green');
}​);​

This code uses the jQuery CSS method to change the color of the heading text to green on mouse over.

But now one of your CSS declarations is in your JavaScript. Say you decide a month later you want to remove that CSS declaration – you go into your style sheet, and you can’t find the declaration. Where is it?

Oh, that’s right, it’s in your JavaScript.

Your CSS should really be all in the one place. Mixing CSS in with JavaScript fragments it and turns it into a disorganized mess.

So as you can see, mixing CSS in with JavaScript is not ideal. What should you do instead?

The Solution

Change your JavaScript to this:

$('h1').mouseover(function(){
    $(this).addClass('classname');
}​);​

And add a new CSS rule:

.classname {
    color: green;
}

Of course, the class name can be whatever you want. By adding a class name in the JavaScript and leaving the styling to the CSS, you’ve got a clean solution which allows the same result, while also allowing all your CSS to remain together.

On a side note, the jQuery CSS method should only really be used for two purposes. One is when you may want to query the CSS properties but not set them, and the other is when you may need to calculate the CSS value before you can actually set it.

Mixing HTML with JavaScript

Here’s an example of HTML being mixed in with JavaScript:

$('h1').mouseover(function() {
    $(this)​.append('<h2>A hidden subheading.</h2>');
});

This example code adds an <h2> heading after the <h1> heading when it’s hovered over.

But for the same reason as CSS, mixing in HTML with your JavaScript is not ideal. There’s a better way:

The Solution

Instead, what you can do is hide the content with CSS initially, and then show it with JavaScript when required, like this:

$('h1').mouseover(function(){
    $('h2')​.show();
});

This way, the actual content and structure is left to the HTML, while the functionality remains the same – the hidden subheading appears when the main heading is moused over.



Disclosure of Material Connection: Some of the links in the post above are “affiliate links.” This means if you click on the link and purchase the item, I will receive an affiliate commission. Regardless, I only recommend products or services I use personally and believe will add value to my readers.

Popular Series

  • What is Coding?
  • How to Make Your First Website
  • Understanding Hex Color Codes
  • How to Become a Coder in 6 Months: a Step-by-Step Action Plan
  • How to Start a Coding Project

Get Our Newsletter

Enter your email address and we'll notify you whenever we add something new to the site.

Popular Blog Posts

  • The 50 Best Websites to Learn Python
  • The 50 Best Websites to Learn JavaScript
  • The 50 Best Websites to Learn PHP
  • Want to Switch Careers? Coding May Be the Perfect Solution!
  • 9 of the Hottest Tech Skills Hiring Managers Look for on LinkedIn

Latest Blog Posts

  • Effective Strategies For Debugging Code
  • Effective Time Management Tips for Programmers
  • Code Documentation: Tools and Techniques
  • Is Data Analytics Hard to Learn?
  • Comparing Data Science vs Computer Science

Explore Code Conquest

  • What is Coding?
  • Free Code Tutorials
  • Coding Training Recommendations
  • Coding Training Reviews
  • Knowledge Center
  • Cheat Sheets
  • Coding Quizzes
  • Versus

Deals, Discounts and Coupons

Deals

Code Conquest

  • Home
  • About
  • Privacy Policy
  • Contact Us
  • Terms of Use
  • Write for Us
  • Featured Review

Copyright © 2025 Code Conquest · About · Terms · Privacy · Contact Us · Write For Us