Какой правильный CSS применить к строке меню YUI?

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

У меня есть спрайт CSS со следующим CSS:

.navImg0{width:61px;height:23px;background-repeat:no-repeat;background-position:top left;background-image:url('/dynamicimage/navigation');background-position:-0px -0px;}
.navImg0:hover{width:61px;height:23px;background-repeat:no-repeat;background-position:top left;background-image:url('/dynamicimage/navigation');background-position:-0px -23px;}
.navImg1{width:75px;height:23px;background-repeat:no-repeat;background-position:top left;background-image:url('/dynamicimage/navigation');background-position:-65px -0px;}
.navImg1:hover{width:75px;height:23px;background-repeat:no-repeat;background-position:top left;background-image:url('/dynamicimage/navigation');background-position:-65px -23px;}
.navImg2{width:96px;height:23px;background-repeat:no-repeat;background-position:top left;background-image:url('/dynamicimage/navigation');background-position:-144px -0px;}
.navImg2:hover{width:96px;height:23px;background-repeat:no-repeat;background-position:top left;background-image:url('/dynamicimage/navigation');background-position:-144px -23px;}
.navImg3{width:65px;height:23px;background-repeat:no-repeat;background-position:top left;background-image:url('/dynamicimage/navigation');background-position:-244px -0px;}
.navImg3:hover{width:65px;height:23px;background-repeat:no-repeat;background-position:top left;background-image:url('/dynamicimage/navigation');background-position:-244px -23px;}
.navImg4{width:98px;height:23px;background-repeat:no-repeat;background-position:top left;background-image:url('/dynamicimage/navigation');background-position:-313px -0px;}
.navImg4:hover{width:98px;height:23px;background-repeat:no-repeat;background-position:top left;background-image:url('/dynamicimage/navigation');background-position:-313px -23px;}

Как я могу применить это к меню YUI?

До сих пор я применял стили кнопок navImg0, navImg1 и т. Д. К кнопкам.

Они находятся в правильном положении, но с несколькими проблемами:

  • Есть линии между элементами, и мне нужно идеальный способ удалить их
  • когда я переворачиваю кнопку, работает правильное переворачивание, но затем, если я скатываюсь с меню на основную часть экрана, кнопка исчезает.
  • <a> теги под <li> для каждого из элементов верхнего уровня не работает (больше нет текста внутри).

У них много документации по применению CSS, но я не смог найти примеров того, как использовать CSS Sprites в качестве изображений.

3 ответа

Можете ли вы привести живой пример проблем, с которыми вы сталкиваетесь? Трудно отлаживать только на основе вашего фрагмента CSS.

Не связано с вашей проблемой, но вы можете сделать свой CSS меньше и проще в обслуживании, комбинируя правила, которые повторяются каждый раз. Что-то вроде

.navImg0, 
.navImg0:hover, 
.navImg1, 
.navImg1:hover, 
.navImg2, 
.navImg2:hover, 
.navImg3, 
.navImg3:hover, 
.navImg4, 
.navImg4:hover { background: url('/dynamicimage/navigation') no-repeat top left; }


.navImg0{width:61px;height:23px;background-position:-0px -0px;}
.navImg0:hover{width:61px;height:23px;background-position:-0px -23px;}
.navImg1{width:75px;height:23px;background-position:-65px -0px;}
.navImg1:hover{width:75px;height:23px;background-position:-65px -23px;}
.navImg2{width:96px;height:23px;background-position:-144px -0px;}
.navImg2:hover{width:96px;height:23px;background-position:-144px -23px;}
.navImg3{width:65px;height:23px;background-position:-244px -0px;}
.navImg3:hover{width:65px;height:23px;background-position:-244px -23px;}
.navImg4{width:98px;height:23px;background-position:-313px -0px;}
.navImg4:hover{width:98px;height:23px;background-position:-313px -23px;}

У меня есть несколько меню YUI, которые используют спрайты, но это немного сложно.

Если вы строите из разметки, это легко - просто добавьте ваши имена классов CSS в тег привязки. Если вы создаете свои меню из JavaScript, вам нужно добавить класс после того, как вы отобразите меню.

YAHOO.util.Dom.addClass(theAnchorElemnt, 'the-sprite-css-class');

Несмотря на то, что YUI предоставляет свойство конфигурации имени класса, это не то, что вам нужно. Вы должны применить спрайты на якоре.

Надеюсь, это поможет.

1: звучит как проблема с полями / отступами. Проверьте поля и отступы на тегах a и li.

2: я никогда не слышал об этом, когда это откатывается. Является ли изображение, которое вы используете, динамическим? В CSS, похоже, вы создаете его на лету с помощью некоторого кода на стороне сервера. Это может быть проблема или, возможно, проблема с кешем. Точно сказать не могу.

3: есть ли у вашей спрайт-листа текст того, что показано? Обычно это то, как это работает в таблице спрайтов, и вы обычно скрываете текст из-за этого. Если вы все еще хотите этот текст, проверьте наличие некоторого CSS, который устанавливает отображаемые теги : нет. Это также может быть в JavaScript YUI, я не очень знаком с YUI.;)

Другие вопросы по тегам