Reputation: 4158
Is there anything wrong with having a css class and id with the same name? Like .footer for the article/post's footer and #footer for the page footer.
Upvotes: 85
Views: 37525
Reputation: 5508
It's completely valid but you should be aware where you put those id attributes, e.g. you can have element like this:
<main id="main" class="main">...</main>
And this is completely valid because you cannot have more main
elements on specific page
But here's the situation that may occure some issues with duplicates
<section>
<header class="header" id="header">...</header>
</section>
<article>
<header class="header" id="header">...</header>
</article>
You may have multiple header
elements on your website so you need to be sure that your id differs from each other header elements
<header class="header" id="unique-header">...</header>
<header class="header" id="another-unique-header">...</header>
With this approach you can share your styles and have two unique elements
Upvotes: 1
Reputation: 51
Yes, you can use same name for both id and class because both parameters have their own significance.
Upvotes: 3
Reputation: 35
The only problem with having same name for class and id is code readability and maintainability. They can have the same names, the browser will render the correct CSS as classes and ids are marked differently (. for class and # for id), but an upgrade or bug fix can be a problem for the developer.
Upvotes: 1
Reputation: 50832
No, there is nothing wrong, but it might be better to use different names to not confuse other developers. It is more (human) error prone to use different names.
Upvotes: 15
Reputation: 68456
Nope, perfectly acceptable.
A class is defined using a .
and an ID is defined using a #
. So as far as the browser is concerned, they're two totally separate items.
The only thing to be careful of is generating any confusion for yourself. It's probably best practise to keep the names different purely for code readability, but there's no harm in them being the same.
Upvotes: 107