Как отобразить неупорядоченный список в строке с маркерами?
Вопрос
У меня есть html-файл с неупорядоченным списком.Я хочу показать элементы списка по горизонтали, но при этом сохранить маркеры.Независимо от того, что я пытаюсь, всякий раз, когда я устанавливаю стиль inline для соответствия горизонтальному требованию, я не могу заставить маркеры отображаться.
Решение
Лучшим вариантом, который я видел в других ответах, было использование float:left;
. К сожалению, это не работает в IE7, что является здесь обязательным требованием * & # 8212; ты все еще теряешь пулю. Я не очень заинтересован в использовании фонового изображения.
Вместо этого я собираюсь сделать то, что никто другой не предложил, а значит, и сам ответ, - добавить вручную •
в мой HTML, а не стилизовать это. Это далеко не идеально, но это самый совместимый вариант, который я нашел. Р>
<Ч>
edit : * Текущие читатели принимают к сведению исходную дату публикации. IE7 вряд ли станет проблемой.
Другие советы
У меня была та же проблема, но только в Internet Explorer (я тестировал версию 7), а не в Firefox 3 или Safari 3. Использование селектора : before работает для меня:
ul.tabs li {
list-style: none;
float: left;
}
ul.tabs li:before {
content: '\ffed';
margin-right: 0.5em;
}
Я использую здесь квадратную пулю, но обычная пуля \ 2022 будет работать так же.
Вы также можете использовать фоновое изображение на < li > элементы с отступом, чтобы текст не перекрывал его.
li {
background-image: url(i/bullet.gif) no-repeat center left;
padding-left: 20px;
display: inline;
}
Браузер отображает маркеры, потому что свойство стиля " display " изначально установлен на " list-item " ;. Изменение свойства отображения на & Quot; inline & Quot; отменяет все специальные стили, которые получают элементы списка. Вы должны иметь возможность смоделировать его с помощью селектора: before и свойства content, но IE (по крайней мере до версии 7) не поддерживает их. Симуляция с фоновым изображением, вероятно, лучший кросс-браузерный способ сделать это.
На самом деле это очень просто исправить. Добавьте следующее к ul:
display:list-item;
Добавление этой строки CSS добавит маркеры.
Держите их заблокированными, укажите ширину и оставьте их влево. Р>
Это заставит их сидеть бок о бок, как в строке, и должно поддерживать стиль списка. Р>
Ты пробовал float: left
на вашем <li/>
?Что - то вроде этого:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<style type="text/css">
ul li {
float: left;
margin-left: 2em;
}
</style>
</head>
<body>
<ul>
<li>test</li>
<li>test2</li>
</ul>
</body>
</html>
Я тестировал только Firefox 3.0.1, он там работает.Тот Самый margin
установлен, потому что в противном случае ваш маркер перекрывает предыдущий элемент.
дополнение:Будьте осторожны, что при перемещении элементов вы удаляете их из обычного потока, что, в свою очередь, приводит к <ul/>
не иметь высоты.Если вы захотите добавить рамку или что-то в этом роде, вы получите странные результаты.
Один из способов исправить это - добавить в свои стили следующее:
ul {
overflow: auto;
background: #f0f;
}
Я просто возился и столкнулся с той же проблемой с теми же ограничениями браузера;когда я искал ответ, ваш пост появился без ответа.Вероятно, уже слишком поздно помогать вам, но я подумал, что ради потомков я должен опубликовать это.
Все, что я сделал, чтобы решить свою проблему, это встроил еще один список с одним элементом в каждый элемент списка первого списка;вот так...
HTML:
<div class="block-list">
<ul>
<li><ul><li>a</li></ul></li>
<li><ul><li>b</li></ul></li>
<li><ul><li>c</li></ul></li>
</ul>
</div>
CSS:
.block-list > ul > li { display: inline; float: left; }
Страница IE7:
o a o b o c
... это глупое решение, но, похоже, оно работает.
Вы можете использовать символьные объекты, см. ссылку: http://dev.w3.org / html5 / html-автор / charref
<ul class="inline-list>
<li> • Your list item </li>
</ul>
В HTML я добавлял разрыв после каждого li следующим образом:
<li>Water is Sacred</li><br>
<li>Water is Sacred</li><br>
<li>Water is Sacred</li><br>
<li>Water is Sacred</li><br>
<li>Water is Sacred</li><br>
<li>Water is Sacred</li><br>
И CSS:
li { float:left; }
Вы можете использовать следующий код
li {
background-image: url(img.gif) no-repeat center left;
padding-left: 20px;
display: inline;
}