CSS hover не работает должным образом в строке меню

Я пытаюсь изменить background-color меню, а mouse-hover. Но это не работает.

Я использовал следующий код CSS:

#access a:hover{
background: -moz-linear-gradient(center top , #F99733, #E47300) repeat scroll 0 0     transparent; 
 }

Пожалуйста, взгляните на страницу НАЖМИТЕ ЗДЕСЬ


person Sun    schedule 23.07.2013    source источник
comment
какой браузер ты используешь? Фаерфокс, хром, IE?   -  person zey    schedule 23.07.2013
comment
происходит смена цвета фона, и ваш a:hover закончился поездкой на a:focus посмотрите на это   -  person Thirumalai murugan    schedule 23.07.2013
comment
Я хотел бы работать во всех основных браузерах   -  person Sun    schedule 23.07.2013
comment
Спасибо, Тирумалай Муруган, но как я могу это решить?   -  person Sun    schedule 23.07.2013


Ответы (5)


Лично мне нравится использовать серый inset box-shadow для стилизации моего элемента, а затем я могу просто менять цвета фона при наведении.

HTML

<div>
    Example
</div>

CSS

div
{
    border: 1px solid black;
    padding: 10px;
    font-size: 20px;
    background-color: #0ff;
            box-shadow: inset 0px -50px 75px -50px #000;
       -moz-box-shadow: inset 0px -50px 75px -50px #000;
    -webkit-box-shadow: inset 0px -50px 75px -50px #000;
}

div:hover
{
    background-color: #bff;
}

JSFiddle

http://jsfiddle.net/gvee/5Q5h9/

person gvee    schedule 23.07.2013

Попробуйте использовать это,

background:  linear-gradient(....          
background: -moz-linear-gradient(....      ///  FF3.6+ 
background: -webkit-linear-gradient(....   ///  Chrome10+,Safari5.1+
background: -o-linear-gradient(....        ///  Opera 11.10+
background: -ms-linear-gradient(....       ///  IE10+

вы можете создать линейный градиент ЗДЕСЬ!

person zey    schedule 23.07.2013

Попробуйте использовать этот сайт и сгенерируйте градиент для всех браузеров Создать градиент CSS3

person Krasimir    schedule 23.07.2013

Разные браузеры используют разные правила градиента, попробуйте использовать код ниже:

div:hover {
    background: -webkit-gradient(linear, 0 0, 0 bottom, from(#F99733), to(#E47300)); /* safari & chrome */
    background: -moz-linear-gradient(#F99733, #E47300); /* Firefox */
    -ms-filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#FFF99733,endColorstr=#FFE47300); /* IE8 */
    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#FFF99733,endColorstr=#FFE47300); /* IE 7 */
    zoom: 1;
    background: linear-gradient(#F99733, #E47300);
}
person Jon    schedule 23.07.2013

Это не работает, потому что у него проблемы с вашим псевдоселектором :focus, который применяется к вашему <a>.

Во-первых, вам нужно понять, что вы поддерживаете только браузеры на основе gecko (Mozilla Firefox), добавив префикс поставщика -moz в свой CSS.

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

Таким образом, это будет выглядеть так:

#access li a:hover,
#access li a:focus {
  background: #f99733;
  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPHJhZGlhbEdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY3g9IjUwJSIgY3k9IjUwJSIgcj0iNzUlIj4KICAgIDxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNmOTk3MzMiIHN0b3Atb3BhY2l0eT0iMSIvPgogICAgPHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjZTQ3MzAwIiBzdG9wLW9wYWNpdHk9IjEiLz4KICA8L3JhZGlhbEdyYWRpZW50PgogIDxyZWN0IHg9Ii01MCIgeT0iLTUwIiB3aWR0aD0iMTAxIiBoZWlnaHQ9IjEwMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
  background: -moz-radial-gradient(center, ellipse cover,  #f99733 0%, #e47300 100%);
  background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,#f99733), color-stop(100%,#e47300));
  background: -webkit-radial-gradient(center, ellipse cover,  #f99733 0%,#e47300 100%);
  background: -o-radial-gradient(center, ellipse cover,  #f99733 0%,#e47300 100%);
  background: -ms-radial-gradient(center, ellipse cover,  #f99733 0%,#e47300 100%);
  background: radial-gradient(ellipse at center,  #f99733 0%,#e47300 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f99733', endColorstr='#e47300',GradientType=1 );
}

Я считаю, что это работает для меня в большинстве случаев и основано на том, что я понимаю в ваших конкретных потребностях.

person sulfureous    schedule 23.07.2013