Oba są całkowicie poprawne, a ich użycie zależy od tego, co chcesz zrobić.
Jeśli tworzysz rodzajowe klasy, który chcesz mieć możliwość korzystania z całej całej witryny niezależnie od tego elementu i gdzie element jest zalecana tylko użycie .class
. Dobrym tego przykładem jest coś takiego, jak .icon
, którego możesz używać w linkach, elementach list, nagłówkach itp. A chcesz mieć możliwość używania ich wszędzie pod numerem wszędzie pod numerem.
Jeśli tworzysz klasę, która jest specyficzna dla/tylko działa na jednym określonym typie elementu, najlepiej użyć tego elementu również w selektorze.Przykładem może być lista punktowana, którą chcesz wyświetlić w jednym wierszu, ponieważ ta klasa wymaga, aby kod HTML był numerem <ul>
, powinieneś także podać go w CSS; ul.inline
. W ten sposób możesz użyć nazwy klasy "inline" również dla innych elementów, bez wpływu na styl.
Jeśli używasz tylko klasy, aby wybrać element, ale nie powinna ona mieć żadnej ogólnej stylizacji, powinieneś być konkretny. Na przykład możesz chcieć, aby pierwszy akapit w twoim elemencie #blog-post
był większy, wtedy powinieneś określić zarówno klasę, jak i #blog-post
i. #blog-post p.first
(zwróć uwagę, że te typy klas są rzadko potrzebne dzięki zaawansowanym selektorom, takim jak :first-of-type
, h2 + p
itd.).
Mówiąc, że ".link
jest najlepszy, a.link
jest drugi najlepszy, a długi selektor jest zły" jest po prostu źle. Wszystko zależy od sytuacji.
Może to doprowadzić do bardzo złego przypadku klasycznego zapalenia naczyń, czego nie można zarzucić IMO w milisekundach, które nie składają się nawet na czas spędzany na wpisywaniu pojedynczej litery. – BoltClock