Вы не указали, как анализировали, но это возможно в jQuery, поскольку вы можете определить позицию смещения любого элемента из начала координат окна. Посмотрите пример здесь.
Код:
$(function() {
function sameHorizon( obj1, obj2, tolerance ) {
var tolerance = tolerance || 0;
var obj1top = obj1.offset().top;
var obj2top = obj2.offset().top;
return (Math.abs(obj1top - obj2top) <= tolerance);
}
$('p').each(function(i,obj) {
if ($(obj).css('margin-top').replace('px','') < 0) {
var p1 = $(obj).prev('p');
var p2 = $(obj);
var pTol = 4; // pixel tolerance within which elements considered aligned
if (sameHorizon(p1, p2, pTol)) {
// put what you want to do with these objects here
// I just highlighted them for example
p1.css('background','#cc0');
p2.css('background','#c0c');
// but you can manipulate their contents
console.log(p1.html(), p2.html());
}
}
});
});
Этот код основан на предположении, что если <p>
имеет отрицательный margin-top
, то он пытается выровняться с предыдущим <p>
, но если вы знаете jQuery, должно быть очевидно, как его изменить на соответствовать различным критериям.
Если вы не можете использовать jQuery для своей проблемы, то, надеюсь, это будет полезно для кого-то другого, кто или вы можете настроить что-то в jQuery для анализа этого и вывода новой разметки.