To complement @Beet’s reply, I’ll leave a opinion, on the subject:
In addition to the official CSS specifications Dashes (strokes), I believe that Dashes is recommended also for code convention issues, example:
pseudo-elements: first-letter
, first-line
...
pseudo-classes: :first-child
, :nth-child
...
estates: text-decoration
, background-color
, and etc...
Note that the second option below seems better written according to the language
.minha_classe:first-letter {font-size:300%;}
.minha-classe:first-letter {font-size:300%;}
It can be difficult to notice in this simple code, but imagine in hundreds or thousands of lines written in the first way.
Now imagine when we use Bootstrap for example, to add a specific class to the code, example:
<div class="col-lg-12 minha_classe"></div>
<div class="col-lg-12 minha-classe"></div>
Again it seems better to use Dash.
Now a curiosity unrelated to CSS doubt, as this matter Dashes vs Underscores, Until recently, Google treated underscore (css_html) words as a single word and words separated by Dash (css-html) as distinct words. This is why it is very common when we work with user friendly url using Dash instead of underscore.
I believe that today is by nostalgia or by ancient custom, there is no official standardization in the W3C specifying this
– Dorathoto