Почему мои CSS не применяются к моему html коду? - PullRequest
0 голосов
/ 25 февраля 2020

Я пытался решить эту проблему, но я все еще заблокирован из-за ошибки, как эта lol. Я не понимаю, почему мой CSS не относится к моим HTML элементам.

a{
	text-decoration: none;
}

.test{
	text-decoration: none;
}
<a href="#" class="test">
	        <div id="blue-card" class="card h-150">
	          <div class="card-body">
	          	<p class="info-card"><strong><?php echo $_SESSION["_nbruser"] ?></strong></p>
	          	<p class="sub-info-card">Utilisateurs actifs</p>
	          </div>
	        </div>
        </a>

Сначала я попробовал только с балисом в CSS, а после того, как он не работает, я попробовал с классом "test". Но это все еще не работает.

Другая CSS моей страницы работает. Это только на моем balise ..

, если у кого-то есть идея, как решить мою проблему, пожалуйста!

Спасибо,

Ответы [ 3 ]

0 голосов
/ 25 февраля 2020

Итак, вы сталкиваетесь с тем, что определяющие CSS правила по отдельности, основанные на имени тега или имени класса, не применяются, но, если вы укажете CSS в качестве значения атрибута, то оно будет применено. Давайте подумаем вместе:

Правило по тэгу

a{
    text-decoration: none;
}

Вы разумно ожидаете, что это правило будет применено к привязке, но это не так. Это, очевидно, означает, что какое-то другое правило CSS (или Javascript) отменяет его. Инструменты разработки браузера могут помочь вам, просто щелкните правой кнопкой мыши в любом месте вашей страницы и нажмите «Проверить» (или аналогичный вариант). Внутри панели Dev Tools вы должны увидеть вкладку Elements, которая показывает HTML и нажимая на элементы, вы должны увидеть CSS правила справа, как на рисунке ниже:

enter image description here

Итак, я советую вам нажать на якорь, где вы ожидаете, что ваше правило будет применено, и посмотреть, что CSS применяется там. Правило, которое вы намереваетесь указать здесь, будет зачеркнуто, потому что что-то с более высоким приоритетом переопределяет его (другой случай - правило с аналогичным уровнем prio оценивается позже и переопределяет это). Вы должны увидеть, какое правило text-decoration применено, и можете осторожно навести указатель мыши на это правило и установить его флажок, чтобы отключить его. Это включит правило, применяемое к этому атрибуту со вторым уровнем приоритета в иерархии и так далее. Этот процесс еще не является решением, он исследует проблему. После этого исследования вы узнаете, в чем проблема.

Правило по классу

.test {text-decor: none; }

Ситуация либо аналогична описанной в предыдущем разделе (переопределение правил из-за более высокого приоритета или аналогичного приоритета, но позже в коде), либо возможно, что по какой-то причине test class удалено из тега. Итак, на вкладке Элементы консоли браузера вы увидите, есть ли у этого элемента еще класс. Если нет, то поэкспериментируйте, отредактировав тег и записав в него этот класс, и посмотрите, применимо ли ваше правило или нет. Если у тега есть класс, но правило не применяется, то у нас есть проблема, аналогичная описанной в предыдущем разделе.

Решение

Лучшее решение - выяснить, что проблема в том, почему другие элементы применяются к этому элементу и действуют соответственно. Сейчас вы можете применить правило типа

a.test#test {
    text-decoration: none;
}

и, конечно, добавить test в качестве идентификатора к вашему tag, как показано ниже:

<a href="#" class="test" id="test">

, и если это все еще не работает, тогда есть большая вероятность, что другое правило, которое вызывает у вас проблемы, имеет важное значение. Если это так, попробуйте удалить другое правило. Если это не вариант, посмотрите, что представляет собой селектор другого правила, и убедитесь, что селектор вашего тега противоречит ему.

0 голосов
/ 26 февраля 2020

Из вашего первоначального поста не сразу было ясно, какая проблема с отображением возникла. Но в ваших комментариях вы указали нежелательное оформление текста, предположительно в одном из элементов html. Похоже, что ваше первоначальное сообщение показывает ваши первоначальные усилия по исправлению нежелательного оформления путем переопределения элемента * 10027 * css в вашем стиле. css листа, который предназначен для переопределения bootstrap css.

Но ваша проблема действительно связана с тем, что css наиболее точно определяет c отображаемого элемента. Чем ближе стиль к элементу, тем больше у него приоритета.

К каждому из элементов html в вашем элементе a применяются классы "card h-150","card-body","info-card","sub-info-card". Это множество классов для сортировки.

<a href="#" class="test">
            <div id="blue-card" class="card h-150">
              <div class="card-body">
                <p class="info-card"><strong><?php echo $_SESSION["_nbruser"] ?></strong></p>
                <p class="sub-info-card">Utilisateurs actifs</p>
              </div>
            </div>
        </a>

То, как эти классы взаимодействуют, будет иметь приоритет над вашим a определением, потому что они более конкретны c, другими словами, ближе к элементу.

Попытка исправить проблему путем переопределения элемента a с помощью переопределения типа text-decoration: none!important, безусловно, будет работать, но это не очень хорошая практика ( см. Первый ответ здесь ). Вы должны внимательно посмотреть, что делают вызываемые классы в ваших html элементах. Если эти классы не то, что вам нужно, используйте другой класс, или это может быть хорошей возможностью для вас написать свой собственный класс в стиле. css. Однако написание собственного класса, если вы только начинаете знакомиться с css, может оказаться сложным. Вероятно, лучше найти класс, который вы действительно хотите из bootstrap. Это значение bootstrap.

Чтобы ответить на ваш первоначальный вопрос, который в основном why doesn't your css apply to your html elements, это потому, что к элементу применен класс, который имеет приоритет. CSS сложно со спецификой, и поначалу трудно учиться. См. Некоторые ответы в этом сообщении , а также эту ссылку , упомянутую в этом же сообщении.

0 голосов
/ 25 февраля 2020

Попробуйте получить доступ к атрибуту 'link' тега привязки, как показано ниже, и установите значение равным none, также добавьте к нему ! Важный , это сработало для меня.

a:link {
text-decoration: none!important;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...