Итак, у меня есть набор элементов списка, и я пытаюсь выделить курсор мыши, чтобы они выглядели правильно.Вот HTML:
<div id="wrapper">
<div id="box">
<div class="item">Lorem ipsum dolor sit amet, sit nonumy utamur ponderum ex</div>
<div class="item">Eu liber libris sit, qui aeque primis an</div>
</div>
</div>
Затем я даю оболочку overflow: auto
.Таким образом, если элементы списка слишком длинные, оболочка разрешит горизонтальную прокрутку:
#wrapper {
overflow: auto;
}
А вот JSFiddle, с которым я работаю:https://jsfiddle.net/codesmith32/e9se5120/
Теперь моя цель такова:
- Когда все элементы в списке короче ширины, чем обертка (таким образом, горизонтальная прокрутка отсутствует),выделение должно проходить слева направо:
![Case 1. Working](https://i.stack.imgur.com/xxGrT.png)
Но когда элементы достаточно длинные, чтобы сделать прокрутку обертки, выделение должно растягивать длину самого длинного элемента, то есть полную ширину прокрутки обертки.
![Case 2. Working](https://i.stack.imgur.com/aHgsg.png)
По умолчанию, вариант 1. работает нормально, и выделение растягивается, когда элементы не вызывают горизонтальную прокрутку.Но когда они слишком длинные, выделение простирается только на ширину окна, но не на ширину элементов, что приводит к неудаче. Случай 2.:
![Case 2. Fails by default](https://i.stack.imgur.com/fIxaJ.png)
Кажется, я обнаружил, что установка display: flex
на обертке приведет к тому, что ширина элементов будет соответствовать тексту и будет правильно выделяться, когда они вызывают горизонтальную прокрутку.Однако тогда он не растягивается на всю ширину окна, когда элементы не генерируют горизонтальную прокрутку, неудачный случай 1.:
![Case 1. Fails with display: flex](https://i.stack.imgur.com/N9uD9.png)
Я также думал, что если дать элемент #box
min-width: 100%
, то он будет по крайней мере такой ширины.Но вместо этого он работает для случая 1., а не для случая 2. опять же, несмотря на display: flex
.
обертки. Есть идеи?