Получение функциональности Flex Tile Container в HTML - PullRequest
0 голосов
/ 15 сентября 2009

Контейнеры плиток Flex будут создавать и удалять плитки по мере изменения данных и, по-видимому, целесообразно использовать в областях, где содержимое является динамическим. Как реализовать эту функциональность в HTML? Я предполагаю, что нам нужно использовать некоторые JS и / или CSS. Любые входы?

1 Ответ

0 голосов
/ 17 сентября 2009

Вы можете полностью игнорировать CSS (для макета) и делать это так же, как это реализует flex. Без предоставления самого кода, вот основная идея (при условии горизонтального расположения):

  1. Когда вы добавляете ребенка, добавьте его справа от предыдущего родного брата. (c.y = s.y+s.width).
  2. Проверьте, превышает ли текущий дочерний элемент ширину родительского элемента. (c.y + c.width > p.width). Если это так, поместите его в следующую «строку».

Конечно, все усложняется в зависимости от того, хотите ли вы использовать TileContainer или FlowContainer . Должен ли макет выглядеть как сетка, или он должен быть более органичным, как перенос абзаца? (если все, что вам нужно, это обернуть абзацы, я думаю, что сделать все "float: left" сделает это за вас, но поправьте меня, если я ошибаюсь.). Предполагая идею TileContainer, вам просто нужно перебрать все дочерние элементы и убедиться, что они имеют одинаковую высоту / ширину (== максимальная дочерняя высота, максимальная дочерняя ширина), а затем выполнить шаги макета, упомянутые выше. Возможно, вы захотите поместить каждого дочернего элемента в контейнерный элемент div для более простого управления элементами, размер которых не изменяется.

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

Проверьте алгоритмы в "TileBase.as" во Flex, если вам нужны советы, но может быть проще просто свернуть свои собственные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...