Интересный вопрос! Вот то, что я считаю «низкотехнологичным» решением с помощью jQuery:
$(function() {
var lastElement = false;
$("ul > li").each(function() {
if (lastElement && lastElement.offset().top != $(this).offset().top) {
lastElement.addClass("nobullet");
}
lastElement = $(this);
}).last().addClass("nobullet");
});
Алгоритму несложно следовать, но вот идея: перебирайте элементы, используя все их свойства (размер, поле, встроенный дисплей и т. Д.), Которые влияют на их положение, когда браузер вычисляет макет. Сравните вертикальное смещение каждого элемента с предыдущим; если они различаются, предыдущий должен быть в конце строки, поэтому отметьте его для особой обработки. Наконец, отметьте также самый последний элемент в наборе для специальной обработки, поскольку по определению это последний элемент в строке, в которой он появляется.
ИМХО тот факт, что это решение на основе Javascript (можно ли обойтись без него, интересно?), Не представляет здесь никакой проблемы, поскольку даже если скрипт не запускается, это будет очень слабое визуальное представление. деградация вашей веб-страницы.
См. Это в действии .