I am trying to simplify my css selector in CSS sheet
I have something like
.table_test .div, .table_name .div, .table_company .div{
color:black;
}
.table_test .div table input, .table_name .div table input{
color:red;
}
My html is something like
<div class='table_test'>
<div class='div'>......
<table>
<tr>
<td><input>...</td>
</tr>
</table>
</div>
<div class='table_name'>
<div class='div'>......
<table>
<tr>
<td><input>...</td>
</tr>
</table>
</div>
I feel like there are so many selectors clustered together and was wondering if there is a way to make it simpler. Thanks for the help!
A few things:
Don't use generic class names like div
. There's already an element element called div
. If you want to target it based on nesting, do so using CSS.
.table_name > div {} /* or .table_name div */
And not...
.table_name .div {}
Use specific selectors. Is there a reason why you need to go through table_name .div table input
? Why not target the input specifically by giving it a class?
<input class="my_input">
And then:
.my_input {
color: red;
}
Finally, it's up to you what style to use, but most people tend to use double quotes around html attributes. For example:
<div class="table_name">
and not <div class='table_name'>
You could create a class name that tables that are the same style would share
CSS
.similar-table .div{
color:black;
}
.similar-table input{
color:red;
}
HTML
<div class='table_test similar-table'>
<div class='div'>......
<table>
<tr>
<td><input>...</td>
</tr>
</table>
</div>
<div class='table_name similar-table'>
<div class='div'>......
<table>
<tr>
<td><input>...</td>
</tr>
</table>
</div>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With