2015-11-28 3 views
2

У меня есть этот бит css, который работает для изменения курсора при зависании, но не для изменения цвета. Почему курсор меняется, но не цвет?Шрифт удивительный цвет не изменится при зависании

.fa-star-o:hover { 
    cursor: pointer; 
    color: red; 
} 

Описание Вот некоторые html. Это похоже на это

<div [email protected](i).BandyProfileImageId class="item profile-image-item"> 
    <img style="position: relative; left: 0; top: 0;" src="data:image/jpg;base64, @(Html.Raw(Convert.ToBase64String(Model.ProfileImages.ElementAt(i).ImageThumbnailCropped)))" alt="no profile images"> 
    <i style="z-index: 200; position: absolute; top: 5px; right: 5px; color: whitesmoke;" class="fa fa-trash-o fa-2x trashImage"></i> 
    <i style="z-index: 200; position: absolute; top: 5px; right: 35px; color: yellow;" class="fa fa-star-o fa-2x"></i> 
</div> 
+0

Работает для меня: http://jsfiddle.net/b22LneLz/ – jcuenod

+1

Это потому, что стили, определенные в строке с использованием 'style =" ... "' переопределяют стили, определенные в любом файле css. Вы должны рассмотреть возможность перемещения встроенного css в специальную таблицу стилей. –

+0

, поэтому встроенный цвет здесь переопределяет зависание? Я думал, что они разные стили css? – user1186050

ответ

3

Проблема в том, что вы устанавливаете цвет значка со встроенными стилями. Они не будут изменены стилями в таблице стилей, если вы не используете !important. Это работает для меня, если я использую это:

.fa-star-o:hover { 
    cursor: pointer; 
    color: red !important; 
} 

См this fiddle.

Это, как говорится, лучше всего перемещать все ваши встроенные стили в таблицу стилей и избегать использования !important.

Edit: Кстати, по этой причине вы хотите, чтобы избежать !important, когда это возможно, что он может сделать отладку трудно, потому что CSS больше не каскадирование, как и ожидалось, и если вы или кто-то еще хочет, чтобы переопределить цвет зависать в будущее, вам/им придется снова использовать !important, и это станет порочным циклом.

+0

да, я вижу. Я только что внес изменения, и он работает. Но теперь мне интересно, повлияет ли это на любые другие шрифты, удивительные значки на других страницах? – user1186050

+0

@ user1186050 Это касается только значков с классом '.fa-star-o'. Кстати, причина, по которой вы хотите избежать «! Important», когда это возможно, заключается в том, что она может затруднить отладку, потому что CSS больше не каскадирует, как ожидалось, и если вы или кто-либо еще захотите переопределить цвет наведения в будущем, вы/они придется снова использовать '! important', и это становится порочным циклом. –

+1

спасибо за совет! – user1186050

0

Мне нужен остальная часть HTML, чтобы проверить это. Тем не менее, я закодировал фрагмент HTML, добавив свой CSS, и он сработал. Посмотрите:

CSS:

.fa-star-o:hover { 
    cursor: pointer; 
    color: red; 
} 

HTML:

<i class="fa fa-star-o">Hi</i> 

И, наконец, jsfiddle: http://jsfiddle.net/b22LneLz/5/

0

Это из-за inline стилей, как все говорят. Inline имеет преимущество перед classes или ids (если только вы не добавите ! Important). :hover - pseudoclass поэтому имеет преимущественную силу над :hover.

Вот небольшой пример, чтобы вы могли видеть его

.fa-star-o:hover { 
 
    cursor: pointer; 
 
    color: red; 
 
} 
 

 
.stdColor{ 
 
    color: gray; 
 
}
<a class="fa-star-o" style="color: gray" href="www.google.com"> Inline style </a> 
 
</br> 
 
<a class="fa-star-o stdColor" href="www.google.com"> Not inline style </a>

0

Вы не можете написать аргумент "цвет" в HTML. Как только вы удалите «цвет: желтый»; из html все работает нормально. Используйте только файл css для таких стилей, что у вас не будет проблем.

CSS:

<style> 
    .fa-star-o{color:yellow;} 
    .fa-star-o:hover { 
     cursor: pointer; 
     color: red; 
    } 
</style> 

HTML:

<i class="fa fa-star-o fa-2x">hi</i> 

(i).BandyProfileImageId class="item profile-image-item"> 

<img style="position: relative; left: 0; top: 0;" src="data:image/jpg;base64, @(Html.Raw(Convert.ToBase64String(Model.ProfileImages.ElementAt(i).ImageThumbnailCropped)))" alt="no profile images"> 

<i style="z-index: 200; position: absolute; top: 5px; right: 5px;" class="fa fa-trash-o fa-2x trashImage">hi</i> 

<i style="z-index: 200; position: absolute; top: 5px; right: 35px; " class="fa fa-star-o fa-2x">hi</i> 
+0

Цвет не в html он в стиле. И я уверен! Я сделал! Поэтому я не уверен, что вы тоже имеете в виду. – user1186050

0

Move ссылка этого CSS-файла (в котором написано выше CSS) в нижней части других ссылок CSS.

Это будет работать.

Смежные вопросы