Менее болезненный способ добавить другой значок для каждой ссылки в <li>(HTML-список) - PullRequest
6 голосов
/ 05 сентября 2011

взгляните на это: http://jsfiddle.net/PFQke/

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

Вот что мне нравится:

enter image description here

Спасибо за любую помощь!

Ответы [ 3 ]

7 голосов
/ 05 сентября 2011

Добавление к каждому

такого класса:
<div id="vertmenu"> 
   <ul>
      <li class="home-ico"><a href="#" tabindex="1">Home</a></li>

Затем добавьте код CSS:

#vertmenu .home-ico {
   background: url("path_to_img") no-repeat top left;
   padding: 2px 0 0 25px;
}

Это всего лишь пример, но вы можете начать с этого.
Например, отступы должны быть скорректированы, если ваш значок больше 25 пикселей.

2 голосов
/ 05 сентября 2011

В первую очередь используйте классы для различения предметов.

Это разные значки, поэтому вам нужно присвоить различный атрибут url для свойства background-image каждого из этих <a>.Даже если они у вас есть в одном изображении (спрайтах), вам все равно придется давать им разные координаты.

#vertmenu a.link1 {
  background-image: /* background image for a#1 */
}
#vertmenu a.link2 {
  background-image: /* background image for a#2 */
}

Используете ли вы одно изображение для каждого значка (спрайтов)?1010 *


Кроме того, вы можете вставить свое изображение в div, содержащий ваше меню, и использовать только одно изображение.Таким образом, вам понадобится только одно правило CSS, но у вас не будет эффекта прокрутки для отдельных изображений.

Что-то вроде this .

1 голос
/ 05 сентября 2011

HTML:

<ul id="vertmenu">
  <li class="home"><a href="#">Home</a></li>
  <li class="about"><a href="#">About Us</a></li>
  ...
  <li class="links"><a href="#">Links</a></li>
</ul>

CSS:

#vertmenu {
  font-family: Helvetica, Arial, Verdana, sans-serif;
  font-size: 12pt;
  width: 160px;
  padding: 0;
  margin: 0;
  border: none;
}
#vertmenu li {
  list-style: none;
  margin: 0;
  padding: 0;
  background: none no-repeat left 50%;/* left and centered */
}
#vertmenu .home {
  background-image: url(home.jpg);/*specify image here*/
}
#vertmenu .about {
  background-image: url(about.jpg);
}
/* ... etc. ... */
#vertmenu a {
  font-size: .8em;
  display: block;
  padding: 5px 0px 2px 20px;/* change 20px to width of icon+some padding*/
  text-decoration: none;
  color: #666666;
  /*width:160px; not needed. also should have be 156px because of the 4px left padding */
}
#vertmenu a:hover, #vertmenu a:focus {
  color: #000;
  background-color: #eeeeee;/* will hide the icon!!*/
}
...