Как вы упоминали, функции сортировки изменяют исходный массив.
С помощью const orderBirth = inventors.sort(...)
вы получаете ссылку на массив. То есть обе переменные фактически указывают на одно и то же место в памяти. Таким образом, при изменении исходного массива вы также изменяете новую переменную. Вам нужно будет создать копию исходного массива, чтобы сохранить результат сортировки.
const orderBirth = inventors.sort(...).slice();
должны сделать свое дело.
Добавление ul {float: left; }
стиль вызовет Ваш список в предпочтительную ширину, которая является тем, что Вы хотите.
проблема, необходимо удостовериться, что следующий элемент понижается список, как это сделало прежде. Очистка должна заботиться об этом.
Можно ли сделать это как это?
<ul>
<li>apple</li>
<li><span class="highlight">orange</span></li>
<li>pear</li>
</ul>
Точно как BoltBait заявил, перенесите свой текст во встроенный элемент, такой как span
и дайте этому класс.
<ul>
<li>apple</li>
<li><span class="highlight">orange</span></li>
<li>pear</li>
</ul>
Мои дополнительные 2 цента - то, что, если у Вас нет доступа для изменения HTML, можно сделать это с помощью JavaScript. В jQuery:
$('li.highlight').wrapInner("<span></span>");
и использование CSS:
li.highlight span { background-color: #f0f; }
<час> редактирование: после перечитывания Вашего вопроса, может Вы разъясняться: Вы хотите, чтобы выделение только пошло столь же широкое как элемент, который выделяется или столь же широкий как самый широкий элемент в списке? например:
- short - items ******************** - here - and then a really long one
..., где звездочки представляют выделение. Если так, затем ответ buti-oxa является самым легким путем. просто будьте осторожны с очисткой Ваших плаваний.