CSS3 переходы при повторной обработке

#css #css-transitions

#css #css-переходы

Вопрос:

Возьмем этот dom в качестве примера.

 <div id="container" style="transition: width 1s ease-in-out;">
  <div style="width: 400px; display: none;"></div>
  <div style="width: 200px;"></div> 
</div>
  

Если я изменю, какой внутренний div скрыт, могу ли я запустить переход CSS3 (через reflow)? Если бы это было возможно, я мог бы добавить много внутренних разделов и плавно чередовать их, не зная, какого они размера.

Ответ №1:

Я бы не подумал, что это возможно только с помощью CSS — переходы не наследуются, поэтому их пришлось бы применять к рассматриваемым вложенным элементам, и переход по ширине в любом случае не мог быть применен без ширины, поэтому, например, вложенному div потребуется, чтобы он width и 0 устанавливался для перехода между ними либо при наведении курсора, либо при щелчке JS, либо при каком-либо событии

однако я думаю, что я действительно не понимаю вопроса;

 #container div {transition: width 1s ease-in-out;}
  

применил бы это ко всем дочерним разделениям, тогда вы просто переключаете отображение и ширину, однако вы все равно думаете это сделать?

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

1. Я пытаюсь выполнить переход между двумя разными размерами, которые может иметь контейнер, на основе видимого содержимого. Когда отображается div # 1, #container изменит ширину до 400 пикселей, когда он скрыт #container изменит ширину обратно до 200 пикселей. Однако это не может быть анимировано с помощью css-переходов (о которых я знаю)

2. Вы можете вроде как это сделать, но я не могу настроить красивый пример .. сам дисплей не перейдет, поэтому, как только будет переключено свойство CSS display: , изменение будет мгновенным, однако как насчет переключения ширины / высоты элемента, скажем, при наведении курсора мыши (я знаю, что здесь может быть задействован скрипт, и в этом случае это может быть сценарий, но я так понимаю, вы говорите теоретически?) — пример — это некрасиво, поскольку я оставил 10 пикселей, чтобы иметь возможность удерживать курсор, но теория может что-то содержать?

3. LOL это довольно умно, мне пришлось открыть его в FF, чтобы увидеть, что наведения здесь немного сумасшедшие. Я думаю, реальный ответ заключается в том, что я должен перенести содержимое, а не просто отображать его на странице. Спасибо, это классный css