Я создаю код для веб-сайта, который я использую. Существует несколько разных областей для цвета ссылок, и они, похоже, перекрываются, и я не уверен, как это исправить.
Мой HTML-код
<div class="floatbox" style="width:200px;height:200px;padding:5px;font-size:15px;position:fixed;left:2px;bottom:10px;overflow:auto;font-color:#3c5eb2;">
</div>
Внутри этого у меня есть ссылки. Мой CSS
#floatbox a:link, a:visited, #a:active{color: #BF00FF;}
#floatbox a:hover {color: #BF00FF;text-decoration: underline;}
Я попытался использовать тег "! Important", и ничего не работает. Если тега нет, все ссылки на странице остаются белыми. Если я добавлю тег "! Important", половина ссылок на веб-сайт станет фиолетовой. Я начинающий кодер, и я, возможно, не настроил таргетинг на класс.
Любая помощь приветствуется!
Для работы с CSS важно познакомиться с инструментами, которые вам нужны. Когда вы получаете неожиданное поведение, используйте либо инструменты разработчика в Chrome, либо Firebug For Firefox. Эти инструменты позволяют вам проверять элемент inplace в браузере и видеть, какие правила CSS влияют на них, и также важно, какие правила переопределяются.
Вам также необходимо понять принципы каскадирования и специфики
Обновить
У вас есть класс в html (как и должно быть) и идентификатор в CSS.
Попробуйте следующее:
div.floatbox a:link,
div.floatbox a:visited,
div.floatbox #a:active
{
color: #BF00FF !important;
}
div.floatbox a:hover {color: #BF00FF !important;text-decoration: underline;}
ИЛИ
Поскольку .floatbox
является дочерним элементом #white
вы можете использовать правила специфики, чтобы избежать использования !important
#white
:
#white div.floatbox a:link,
#white div.floatbox a:visited,
#white div.floatbox #a:active
{
color: #BF00FF;
}
#white div.floatbox a:hover {color: #BF00FF ;text-decoration: underline;}
Ваша исходная проблема возникла из-за двух проблем: вы нацеливали идентификатор на свой CSS, когда он был классом, а во-вторых, идентификаторы занимают место выше, чем классы в правилах специфики.
Если это ваш фактический код, есть несколько (простых) вещей, которые несовместимы с тем, что вы пытаетесь достичь:
1) вы определяете #floatbox: это селектор CSS, предназначенный для определенного идентификатора, равного "floatbox", тогда как вы хотите настроить таргетинг на класс. Правильный синтаксис для задания класса - это префикс имени ".". поэтому вы хотите ".floatbox" в вашем файле CSS
2) у вас есть то, что выглядит как маленькая опечатка в первой строке CSS: "#a: active" следует читать "a: active"
В школах w3C есть простое объяснение простых селекторов:
http://www.w3schools.com/css/css_selectors.asp
the: link,: visited и т.д. псевдоселекторы также чувствительны к порядку, который они объявлены, снова объясняется здесь:
http://www.w3schools.com/css/css_pseudo_classes.asp
Я никогда не помню этот порядок :)
ETA: Глядя на вашу скрипку, проблема в том, что у вас есть идентификатор - "белый" - который включает div с классом "floatbox". Стили идентификаторов имеют приоритет над стилями классов, даже если они применяются здесь очень конкретно. Я бы сказал, что проще всего изменить стиль "idwhite" на основе стиля ".white", тогда вы должны увидеть приоритет, примененный по своему усмотрению.
definition lists
div based layout
иdiv based layout
если вы хотите использоватьsections
HTML5. Сейчас это может показаться болезненным, но вы поблагодарите меня позже, особенно если вы хотите сделать простые настройки макета. Гораздо проще с без таблиц макетов.