Все, что я могу думать, - это то, что у вас есть какой-то javascript, который проверяет, является ли хеш пустым.Если это так, он добавляет класс к тегу body с именем "noHash".Затем вы можете использовать тот факт, что в ваших правилах CSS есть класс noHash.
if (window.location.hash.length <= 1) {
document.body.className += " noHash";
}
Тогда ваш CSS может выглядеть следующим образом:
div {
background: blue;
}
div:target, body.noHash div {
background: red;
}
Если есть какие-либо обстоятельствагде пользователь может добавить хеш-значение после факта, тогда вам, возможно, придется следить за этим, чтобы убедиться, что класс noHash удаляется надлежащим образом.
Примечание: вам не нужно добавлять имя класса ктег тела.Вы можете добавить его к любому родительскому объекту, который охватывает все объекты, на которые вы хотите повлиять.