Можете ли вы использовать разные изображения значков для каждого элемента списка в неупорядоченном списке?
Я не продвинутый пользователь CSS, но у меня есть достойные рабочие знания, я полагаю. Я пытаюсь сделать неупорядоченный список, который использует разные значки для каждого элемента списка. Я также хотел бы, чтобы цвет фона элемента списка изменялся при наведении.
Есть ли способ сделать это с помощью CSS, или вы просто включите образ значка в элемент списка (например, ниже)?
<li><img src="voters.jpg"><a href="voters.html">Voters</a></li>
Использование стиля list-style на уровне ul делает все значки одинаковыми, и я не смог найти другой способ. Большинство примеров, которые я нашел, показывают, как использовать изображения в списке, но только если маркированные изображения одинаковы. Я определенно открыт для предложений и улучшений в том, как я пытаюсь это сделать.
спасибо
<div class="content-nav">
<ul>
<li class="instructions"><a href="instructions.html">Instructions</a></li>
<li class="voters"><a href="voters.html">Voters</a></li>
</ul>
</div>
.content-nav {
font-size:12px;
width:160px;
z-index:0;
}
.content-nav ul {
padding:0 20px;
margin:30px 0;
}
.content-nav li {
padding:5px;
margin:5px 5px;
}
.content-nav li a {
color:#666;
text-decoration:none;
}
.content-nav li.voters a {
background:#FFF;
color:#666;
text-decoration:none;
list-style-image:url(images/voters.jpg);
}
.content-nav li.voters a:hover {
background:#0CF;
color:#000;
}
.content-nav li.instructions a {
background:#FFF;
color:#666;
text-decoration:none;
list-style-image:url(images/voters.jpg);
}
.content-nav li.instructions a:hover {
background:#0CF;
color:#000;
}
Ответы
Ответ 1
Вы можете добавлять фоновые изображения к каждому элементу списка и использовать отступы, чтобы оттолкнуть текст от него.
<ul>
<li class="li1">List 1</li>
<li class="li2">List 2</li>
</ul>
.li1 {
background:url('li1.gif') 50% 50% no-repeat no-repeat;
padding-left: 5px;
}
.li2 {
background:url('li2.gif') 50% 50% no-repeat no-repeat;
padding-left: 5px;
}
Просто убедитесь, что padding-left имеет тот же размер, что и изображение (или немного больше, если вы хотите разделить)
Ответ 2
Использование селектора CSS3 :nth-child()
не требует дополнительной разметки для каждого элемента <li>
:
Live Demo
HTML:
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
CSS:
ul li:nth-child(1) {
list-style-image: url('http://google-maps-icons.googlecode.com/files/teal01.png');
}
ul li:nth-child(2) {
list-style-image: url('http://google-maps-icons.googlecode.com/files/teal02.png');
}
ul li:nth-child(3) {
list-style-image: url('http://google-maps-icons.googlecode.com/files/teal03.png');
}
Поддержка браузера: IE9+, FF3. 5+, SA3. 1+, OP9. 5+, CH2+
Ответ 3
Я бы предложил использовать значки в качестве фоновых изображений для каждого элемента списка. При таком подходе вы также можете легко позиционировать "пункты пули" (особенно горизонтальное позиционирование).
Ответ 4
Вы пытаетесь установить свойство list-style-image
в элементе a
. Попробуйте установить его вместо элемента li
.
Ответ 5
Если вы хотите использовать разные значки для каждого списка, чем дать каждому списку уникальное имя и использовать фоновое изображение и соответствующим образом поместить его в CSS.