2017-02-15 23 views
0

Я нашел эту библиотеку для отзывчивого CSS на github, а затем я начал спрашивать себя ... Elm отзывчивый? Теоретически, Elm делает все, что могут делать HTML, CSS и JavaScript ... Я не вижу никаких способов читать данные, такие как операционная система или размер экрана. И могут быть и другие факторы, которых я пренебрегаю.Каким образом Elm обрабатывает отзывчивый веб-дизайн?

Возможно, можно написать порт?

Я видел хотя бы один случай, F #, где внешние эффекты или требования обрабатываются comonads, но это довольно сложное решение. Вот блог на co-effects, в котором рассказывается о программировании, ориентированном на контекст. Это звучит сложнее, но это именно то, что мы хотим на быстро реагирующих веб-страницах.

Изображение из Wikipedia.

ответ

6

Большая часть отзывчивого дизайна исходит из CSS с помощью @media запросов, поэтому основная задача Elm - просто вывести HTML, который не является сложным для стиля (например, избегать таблиц для макета или несоответствующих встроенных стилей).

Если Вы желаете, чтобы динамически сделать что-то на основе размера экрана, вы можете использовать Window package, который может либо выдать Task для получения текущего размера или подписаться на resizes событий.

В целом, я ожидаю, что выход программы Elm не будет противоречить реализации адаптивного дизайна.

+0

OK. нет специальных способов обработки медиа-запросов, но у меня был порт или что-то, что задавало мои вопросы. достаточно хорошо, Elm is great –

+0

@johnmangual, я обновил свой ответ, чтобы показать, что вам не нужно использовать порт, чтобы получить информацию о размере экрана, надеюсь, что это поможет! – bdukes

+0

о! [Window] (http://package.elm-lang.org/packages/elm-lang/window/1.0.1/Window) уже существует! –

 Смежные вопросы

  • Нет связанных вопросов^_^