DEV Community

rohitsondigala
rohitsondigala

Posted on

5 Common CSS Mistakes: What to Avoid for Clean & Efficient Code | Part 1

Cascading Style Sheets (CSS) is the backbone of web design, allowing developers to transform a plain HTML document into an aesthetically pleasing and functional website. However, even seasoned developers can fall into certain traps that lead to messy, inefficient, or buggy CSS. Here are five common mistakes to avoid when working with CSS to ensure cleaner, more maintainable code.

Absolutely! Let's enhance each point with an example to illustrate these common CSS mistakes and how to avoid them.

1. Overusing !important

❌ Bad:

.button {
  color: red !important;
}
Enter fullscreen mode Exit fullscreen mode

✔ Good:

/* Avoid !important by increasing specificity */
.container .button {
  color: red;
}
Enter fullscreen mode Exit fullscreen mode

Using a more specific selector helps to avoid the need for !important. By adjusting the specificity of the selector, you can achieve the desired styling without resorting to overrides.

2. Not Utilizing CSS Resets or Normalization

❌ Bad:

/* No CSS reset */
body {
  margin: 0;
  padding: 0;
}
Enter fullscreen mode Exit fullscreen mode

✔ Good:
Utilize a CSS reset or normalization library like Normalize.css:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css">
Enter fullscreen mode Exit fullscreen mode

By using a CSS reset or normalization library, you establish a consistent baseline across browsers, reducing unexpected differences in default styling.

3. Writing Inline Styles Extensively

❌ Bad:

<p style="font-size: 16px; color: #333;">Lorem ipsum dolor sit amet</p>
Enter fullscreen mode Exit fullscreen mode

✔ Good:

/* External CSS file or style block */
p {
  font-size: 16px;
  color: #333;
}
Enter fullscreen mode Exit fullscreen mode

Avoid inline styles and instead use external stylesheets or style blocks within your HTML document to keep styles centralized and easily maintainable.

4. Not Using Preprocessors Wisely

❌ Bad:
Overcomplicating Sass with excessive nesting:

.nav {
  ul {
    li {
      a {
        color: blue;
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

✔ Good:

/* Use nesting judiciously for improved readability */
.nav {
  ul {
    li {
      a {
        color: blue;
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

While preprocessors offer nesting capabilities, avoid excessive nesting to prevent overly specific selectors and bloated CSS output.

5. Neglecting Browser Compatibility and Performance

❌ Bad:
Not considering vendor prefixes for CSS properties:

/* Missing vendor prefixes */
.example {
  display: flex;
}
Enter fullscreen mode Exit fullscreen mode

✔ Good:

/* Consider vendor prefixes for better browser support */
.example {
  display: -webkit-flex; /* Safari */
  display: flex; /* Standard */
}
Enter fullscreen mode Exit fullscreen mode

Always test CSS across different browsers and devices, and consider vendor prefixes and optimization techniques to ensure compatibility and performance.

These examples highlight common mistakes in CSS and demonstrate better practices to improve code readability, maintainability, and overall website performance.

Thank you for Reading!

Top comments (3)

Collapse
 
syeo66 profile image
Red Ochsenbein (he/him) • Edited

Point 4 good and bad look exactly the same
Point 5 Safari does not require the webkit prefix for flex since 2015. Check the can I use database.

Collapse
 
anitaolsen profile image
Anita Olsen • Edited

Thank you so much for this! I think I have done some of those mistakes. I am looking forward to part 2!

Collapse
 
rohitsondigala profile image
rohitsondigala

Absolutely! I'm glad you found the information helpful. Part 2 has been released! You can check it out. It covers additional tips and strategies to help further avoid common mistakes. I hope you find it as helpful as the first part.