Центрировать изображение над элементами списка - PullRequest
0 голосов
/ 15 июля 2011

Я работаю над проектом и испытываю проблемы с моим стилем UL> LI.

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

1 апельсин и 1 синий

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

enter image description here

коды:

HTML:

<div id="TopMenu">
    <ul style="display:">
        <li class="HeaderLiveChat" style="display:none"></li>
        <li class="First" style="display:">
            <a href="/account.php">My Account</a>
        </li>
        <li style="display:">
            <a href="/orderstatus.php">Order Status</a>
        </li>
        <li style="display:">
            <a href="/wishlist.php">Wish Lists</a>
        </li>
        <li>
            <a href="/giftcertificates.php">Gift Certificates</a>
        </li>
        <li class="CartLink" style="display:">
            <a href="/cart.php">
        </li>
        <li style="display:">
        <div>
            <a onclick="" href="/login.php">Sign in</a>
            or
            <a onclick="" href="/login.php?action=create_account">Create an account</a>
        </div>
        </li>
    </ul>
    <br class="Clear">
</div>

CSS:

/* Top Navigational Menu */
#TopMenu {
    position: absolute;
    right: 10px;
    top: 70px;
    font-size: 10px;
    text-align: right;
}

#TopMenu ul, #TopMenu li {
    list-style: none;
    padding: 0;
    margin: 0;
}

#TopMenu ul li {
    display: inline;
    list-style-image: none;
    list-style-position: outside;
    list-style-type: none;
    margin: 0px;
    padding: 0px 4px 0 6px;
}

#TopMenu ul li.First {
    border-left: 0;
}

#TopMenu ul li.home {
    background:url('http://cdn1.iconfinder.com/data/icons/munich/16x16/home.png') no-repeat;
    height:16px; width:16px;
}

#TopMenu a {
    color: #333;
}

#TopMenu a:hover, #TopMenu a:visited {
    color: #333;
}

#TopMenu li div {
    display: inline;
}

Пожалуйста, помогите мне решить эту проблему

Примечание:

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

Спасибо

Ответы [ 3 ]

1 голос
/ 15 июля 2011

Вам необходимо добавить CSS для якорей:

a {
  padding-top: 20px;
  background: url('http://cdn1.iconfinder.com/data/icons/munich/16x16/home.png') no-repeat 50% 0px;
  height: 16px;
  width: 16px;
}

50% центрирует фон.Конечно, вы должны использовать более конкретный селектор для всех ваших якорей, а не просто a.

Чтобы изменить изображение при наведении курсора, вам необходимо:

a:hover {
 background-image: url('http://icons.iconarchive.com/icons/3xhumed/mega-games-pack-32/16/Team-Fortress-2-new-16-icon.png');
}

см. Демо здесь

1 голос
/ 15 июля 2011

Сделано два изменения

  1. Добавлен верхний отступ 25px для li для изображения

    #TopMenu ul li {
    display: inline;
    list-style-image: none;
    list-style-position: outside;
    list-style-type: none;
    margin: 0px;
    padding: 25px 4px 0 6px;
    }
    
  2. изменены логотипы background-position:center;(Обратите внимание, что я использовал сокращенную запись)

    #TopMenu ul li.home {
    background:url('http://cdn1.iconfinder.com/data/icons/munich/16x16/home.png') no-repeat center;
    height:16px; width:16px;
    }
    #TopMenu ul li.home:hover {
    background:url('http://cdn1.iconfinder.com/data/icons/cologne/16x16/home.png') no-repeat center;
    }
    

Рабочая демонстрация: http://jsfiddle.net/naveen/HuTge/1/

PS: Обратите внимание, что я использую #TopMenu иУценка не работает должным образом.

0 голосов
/ 15 июля 2011

HTML:

<ul class="navigation">
    <li>
        <a id="nav-myaccount" href="/account.php">My Account</a>
    </li>
    <li>
        <a id="nav-orderstatus" href="/orderstatus.php">Order Status</a>
    </li>
</ul>

CSS:

ul.navigation {
    list-style: none;
    margin: 0;
    padding: 0;
}

ul.navigation li {
    display: inline;
    margin: 0px;
    padding: 0px 4px 0 6px;
}

ul.navigation li a#nav-myaccount {
    background-image: url(nav-myaccount.png);
    background-repeat: no-repeat;
    background-position: center top;
}

ul.navigation li a#nav-myaccount:hover {
    background-image: url(nav-myaccounthover.png);
    background-repeat: no-repeat;
    background-position: center top;
    color: #333;
}

ul.navigation li a#nav-orderstatus {
    background-image: url(nav-orderstatus.png);
    background-repeat: no-repeat;
    background-position: center top;
}

ul.navigation li a#nav-orderstatus:hover {
    background-image: url(nav-orderstatushover.png);
    background-repeat: no-repeat;
    background-position: center top;
    color: #333;
}

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

...