Вопрос по CSS

Geers
На сайте с 12.04.2011
Offline
487
664

Доброй ночи!

Вопрос такой:

Имеется рисунок такого вида:

Имеется текст, например "Новости", новости имеют class "news" в css получается такой код:

.news {

background: url("../img.png") no-repeat scroll right center #E9DDC4;
border-radius: 3px 0 0 3px;
font-size: 12px;
line-height: 17px;
margin: 0 7px;
padding: 0 9px 0 5px;
}

В итоге в браузере получается так:

А мне надо перед словом Новости вставить иконку 16*16px.

Как это сделать? т.к. двойной background нельзя применять в одном классе. :confused:

mff
На сайте с 21.02.2008
Offline
282
mff
#1

К какому тегу применяется класс .news?

<div class="news"><img src="" width="16" height="16" alt="" /> Новости</div>
не?
Управление репутацией в сети: https://timbook2.ru/
Geers
На сайте с 12.04.2011
Offline
487
#2
mff:
К какому тегу применяется класс .news?

Вот так:

<span class="news">Новости</span>
Skreep
На сайте с 27.03.2012
Offline
12
#3

Как вариант изменение разметки - сами новости делаете текстом, но добавляете перед ним тег <span>:

<a class="news" href="ссылка" title="Новости"><span></span>Новости</a>
В таком случаем просто прописываете


.news {
background: url("../img.png") no-repeat scroll right center #E9DDC4;
border-radius: 3px 0 0 3px;
font-size: 12px;
line-height: 17px;
margin: 0 7px;
padding: 0 9px 0 5px;
}
.news span{
background: url("../img.png")
width: 16px;
height: 16px;
}

Излишняя разметка - не есть гут, но это самый простой способ)

Ну а с padding'ами там разберетесь.

Geers
На сайте с 12.04.2011
Offline
487
#4

Skreep

Вот этот код точно правильный?

<a class="news" href="ссылка" title="Новости"><span></span>Новости</a>

А не так?

<a class="news" href="ссылка" title="Новости"><span>Новости</span></a>

?

---------- Добавлено 13.04.2012 в 03:06 ----------

mff, не не, немного не так. :)

Skreep
На сайте с 27.03.2012
Offline
12
#5

Geers, не, не так. Смысл как раз в том, чтобы добавить перед самим текстом элемент, которому потом припишется background - та самая иконка. И получится, что на фоне класса рисунок спана)

Geers
На сайте с 12.04.2011
Offline
487
#6
Skreep:
Geers, не, не так. Смысл как раз в том, чтобы добавить перед самим текстом элемент, которому потом припишется background - та самая иконка. И получится, что на фоне класса рисунок спана)

Все, понял! Спасибо, буду пробывать. :)

Skreep
На сайте с 27.03.2012
Offline
12
#7

Не за что)

Эта хитрость часто применяется в меню, где нужно прописать динамичные фоны, hover и т.п. К слову: если необходимо выровнить текст по иконке, экспериментируйте с line-height или display:block.

Geers
На сайте с 12.04.2011
Offline
487
#8
Skreep:
Geers, не, не так. Смысл как раз в том, чтобы добавить перед самим текстом элемент, которому потом припишется background - та самая иконка. И получится, что на фоне класса рисунок спана)

Хотя еще можно так попробывать:

<a class="news" href="ссылка" title="Новости"><span>Новости</span></a>  

CSS

.news span{

background: url("../img.png")
padding-left: -20px;
width: 16px;
height: 16px;
}

:)

Ладно, вообщем отпишусь если что)

Skreep
На сайте с 27.03.2012
Offline
12
#9

Geers, нет, боюсь. Получится наложение текста на иконку. Слово "новости" вряд ли уложатся в 16px, да и сам текст сдвинется вместе с тегом.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий