Не удаляет разделительные линии на мышью

StackOverflow https://stackoverflow.com/questions/19844743

  •  29-07-2022
  •  | 
  •  

Вопрос

Я разрабатывал меню для своего сайта. Я достиг проблемы с преобразованием в HTML/CSS. Идея состоит в том, чтобы иметь разделительную линию на каждой стороне текста, а на мыши через линии навигации исчезнет и покажет изображение паха. Но что бы я ни делал, все еще находится на одной из сторон.

Изображение моего меню навигации

Nav-lnie.png: только линейка Hover.png-это изображение Mouseover

У кого -нибудь есть решение или объяснение, как это сделать?

CSS выглядит так:

.navigation{
width:370px; 
float:left;
position: absolute;
left: 300px;
background:url(../images/nav-lnie.png) repeat-y 0 0;
padding:0 0 0 4px; font-size:14px;
font-family:Arial, Helvetica, sans-serif;
color:#fff; text-shadow:1px 1px 1px #333
}

.navigation ul li{background:url(../images/nav-lnie.png) repeat-y right 0;
margin:0 2px 0 0; 
}

.navigation ul li a{
display:block;
float:left;
width:90px;
height:38px;
padding:70px 0 0 0;
text-align:center;
color:#fff;
text-decoration:none;
}

.navigation ul li a:hover{
background:url(../images/hover.png) repeat-x;
}

И HTML нравится это:

<div class="navigation">
    <ul>
       <li><a href="index.php">Videos</a></li>
       <li><a href="top.php">Top Videos</a></li>
       <li><a href="upload_video.php">Upload</a></li>
       <li><a href="faq.php">FAQ</a></li>
    </ul>
</div>
Это было полезно?

Решение

Скорее всего, из -за кода маржи, который у вас есть здесь:

.navigation ul li{
    background:url(../images/nav-lnie.png) repeat-y right 0;
    margin:0 2px 0 0; 
}

Поскольку справа от каждого пункта меню есть 2PX -края, левый край не будет скрыт, если вы мышитесь на следующем элементе. Если маржа действительно не нужна, вы можете удалить его, и он должен работать нормально, учитывая, что места достаточно. Если это необходимо, то по команде Hover вы можете изменить расстояние на элементе:

.navigation ul li a:hover{
    background:url(../images/hover.png) repeat-x;
    margin-left: -2px;
    padding-left: 2px;
}

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top