Роли пользователя и специфичность CSS - Могу ли я использовать! Важно?CSS

Разбираемся в CSS
Ответить Пред. темаСлед. тема
Anonymous
 Роли пользователя и специфичность CSS - Могу ли я использовать! Важно?

Сообщение Anonymous »

Я использую CSS, чтобы скрыть определенные элементы от пользователя, если он не должен видеть его с классом только для администратора . Если пользователь является администратором, мой JavaScript проходит все элементы только для администратора и добавляет класс Show-Admin-vis , которые мой CSS поднимает и удаляет дисплей: none; он изначально наносил их. Проблема возникает, когда другие стили с более высокой специфичностью применяются к этим элементам только администратора , которые переопределяют дисплей: None; стиль, где вместо этого они не должны до тех пор, пока не будет применен класс Show-Admin-vis . У меня есть большой проект, и ниже-лишь минимально воспроизводимый пример, поэтому я не хочу кропотливо писать: не (. Admin Only: Not (.show-admin-vis)) на каждом стиле, который может повлиять на мои элементы . Я не использую эти классы, чтобы скрыть действительно важную информацию, пользователи, пытающиеся просматривать элементы только для администратора через Devtools, ничего не увидят, потому что они на самом деле не будут заполнены/пригодны для использования, если они не должны его увидеть. Это просто для того, чтобы скрыть элементы, потому что они все еще могут покинуть пробелы от прокладки и поля.

Код: Выделить всё

const adminOnlyElements = Array.from(document.getElementsByClassName("admin-only"));

setAdmin(false);

function setAdmin(isAdmin) {
if (isAdmin) adminOnlyElements.forEach(x => x.classList.add("show-admin-vis"));
else adminOnlyElements.forEach(x => x.classList.remove("show-admin-vis"));
}< /code>
#topnav {
display: flex;
width: 100%;
background-color: #DDDDDD;
gap: 10px;
}

#topnav a {
display: flex;
justify-content: center;
align-items: center;
}

.admin-only:not(.show-admin-vis) {
display: none; /* Adding !important here fixes the issue, but is that what I should be doing? */
}

#control-panel {
position: absolute;
bottom: 0;
left: 50%;
translate: -50% -100%;
}< /code>

[url=#home]Home[/url]
[url=#admin-dashboard]Admin Dashboard[/url]

Normal text :)
Admin should be the only ones viewing this!

I'm an admin!
I'm a normal user!
< /code>
< /div>
< /div>
< /p>
Проблема выше заключается в том, что «панель администратора» видна в топнаве, даже если пользователь не является администратором. Должен ли я использовать Easy! Wating 
флаг? Есть ли другое решение, о котором я не думаю?

Подробнее здесь: https://stackoverflow.com/questions/796 ... -important
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как повысить специфичность внешнего CSS по сравнению с внутренним CSS?
    Гость » » в форуме CSS
    0 Ответы
    22 Просмотры
    Последнее сообщение Гость
  • Почему @Media только экран CSS не работает! Важно;?
    Anonymous » » в форуме CSS
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • Почему группировка CSS влияет на специфичность селектора в этом примере?
    Anonymous » » в форуме CSS
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Почему группировка CSS, похоже, влияет на специфичность селектора в этом примере?
    Anonymous » » в форуме CSS
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • Как просматривать рассчитанную специфичность CSS в браузере?
    Anonymous » » в форуме CSS
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous

Вернуться в «CSS»