Как исправить неправильное отображение символа вложенной группировки в теге «сведения»?

#html #css #hierarchy

Вопрос:

Если верхний уровень развернут, то всем вложенным уровням присваивается символ» -«, даже если они свернуты: jsfiddle.net/acces969/4eh6puvk/1/

 <div class="treeHTML">Root
  <div>level 1
    <details><summary></summary>
      <div >level 2
        <details><summary></summary>
          <div >
            level 3
          </div>
        </details>
      </div>
    </details>
  </div>
</div>
 

Ответ №1:

Ваш CSS-селектор для открытых сведений немного отключен:

 .treeHTML details[open] summary:before {/* styles */}
 

При этом будут выбраны все summary элементы, которые являются дочерними элементами элемента открытых сведений (включая непрямых дочерних элементов).

Чтобы выбрать только прямой дочерний элемент открытых сведений, следует использовать > селектор:

 .treeHTML details[open] > summary:before {/* styles */}
 

Комментарии:

1. Вау. Большое вам спасибо, вы очень помогли. И проблема решена, и теперь я знаю, что делает этот селектор (я много раз видел это раньше).