Подтвердить что ты не робот

Как я могу дать каждому <li> собственное изображение пули?

Я пробовал

<ul id="contact_list">
    <li id="phone">Local 604-555-5555</li>
    <li id="i18l_phone">Toll-Free 1-800-555-5555</li>
</ul>

с

#contact_list
{
    list-style: disc none inside;
}

#contact_list #phone
{
    list-style-image: url(images/small_wood_phone.png);
}

#contact_list #i18l_phone
{
    list-style-image: url(images/i18l_wood_phone.png);
}

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

Изменить: я обнаружил, что, несмотря на то, что говорит мне firebug, правило списка-стиля-образа переопределяется каким-то образом. Если я встраиваю правило так:

    <li id="phone" style="list-style-image: url(images/small_wood_phone.png);">Local 604-555-5555</li>

тогда все хорошо. Поскольку у меня нет других правил в тестовом примере, который я запускаю, который содержит ul или li в селекторе, я не уверен, почему inlining дает другой результат.

4b9b3361

Ответ 1

Сначала определите, находитесь ли вы в режиме "quirks" или нет, потому что для многих свойств CSS это имеет значение.

Во-вторых, W3c указывает, что URL-адрес должен быть в двойных кавычках (хотя я также не использую кавычки). Пойдите со спецификацией, чтобы сэкономить проблемы на линии.

Если вы указываете "строго" в своем DOCTYPE, браузер может потребовать двойные кавычки в стандарте.

Ответ 2

Попробуйте следующее:

#contact_list li
{
    list-style: none;
}

#contact_list li#phone
{
    list-style-image: url('images/small_wood_phone.png');
}

#contact_list li#i18l_phone
{
    list-style-image: url('images/i18l_wood_phone.png');
}

Ответ 3

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

Ответ 4

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

ПРИМЕЧАНИЕ: В обоих firefox и т.д.

Ответ 5

Я бы предложил сделать это несколько иначе, в CSS - i.e.:

#contact_list
{
  list-style: none;
}

#contact_list li {
  padding-left: 20px; /* assumes the icons are 16px */
}

#contact_list #phone
{
  background: url(images/small_wood_phone.png) no-repeat top left;
}

#contact_list #i18l_phone
{
  background: url(images/i18l_wood_phone.png) no-repeat top left;
}

Ответ 6

Вы можете дважды проверить, что эти изображения находятся там, где вы думаете. Этот пример отлично работает, если изображения отсутствуют.

Ответ 7

Я бы никогда не подумал. Если я приведу URL-адрес, например:

#contact_list #phone
{
    list-style-image: url("/images/small_wood_phone.png");
}

он начинает работать. Я его недооцениваю, и он останавливается. Я думал, что это не должно меняться.

Спасибо за вашу помощь, всем.

Ответ 8

Не могли бы вы попытаться добавить тип list-style-type: none; в # контакт-лист? Возможно, даже вместо вашего списка: декларация.

Ответ 9

Мне больно это предлагать, но вы пробовали важный флаг? Кроме того, он ведет себя одинаково в других браузерах? Что, если это что-то, что у вас есть в вашем файле userChrome.css Firefox?

Ответ 10

Вы можете попробовать добавить! важно после свойства list-style-image, которое предотвратило бы его переопределение.

Ответ 11

#contact_list
{
    list-style: disc none inside;
}

#contact_list #phone
{
    background-image: url(images/small_wood_phone.png) no-repeat top left;
    padding-left: <image width>px;
}

#contact_list #i18l_phone
{
    background-image: url(images/i18l_wood_phone.png) no-repeat top left;
    padding-left: <image width>px;
}