Медиа-запросы для элемента Canvas

#html #css #html5-canvas

Вопрос:

В настоящее время я учусь основам веб-дизайна. При создании веб-сайта, реагирующего на различные размеры экрана (телефон, планшет, компьютер,…), как я понимаю, вы бы использовали запросы CSS-мультимедиа. Тем не менее, на моем веб-сайте есть элемент canvas, и я на собственном горьком опыте (после довольно долгого размышления о том, почему он не работал) узнал, что для правильной работы вам нужно задать ширину и высоту не только в CSS, но и в HTML-атрибутах элемента. Итак, теперь мой вопрос: как лучше всего сделать элемент холста отзывчивым, то есть он меняет размер в зависимости от размера экрана, когда для его работы необходимо изменить обе эти вещи?

Ответ №1:

Вы можете просто «описать» свои атрибуты в CSS. например:

<div class="responsive"></div>

это ваш HTML, поэтому добавьте

.responsive{ ... width: 100%;}

для div, чтобы сделать его отзывчивым.

Добавление width: 100%; заставляет атрибуты изменять свою форму вместе с сайтом.

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

1. Может быть, я неправильно сформулировал свой вопрос. У меня есть элемент canvas с атрибутами ширины и высоты (HTML) и свойствами ширины и высоты (CSS), установленными на 500px . Теперь я хочу, чтобы это значение было 250px (HTML и CSS), если общий размер экрана меньше 500 пикселей. Чтобы изменить значения CSS, я могу сделать что-то вроде @media (max-width: 500px) { canvas { width: 250px; height: 250px } } этого . Что я хочу знать: как я также могу изменить атрибуты HTML, когда экран становится меньше?

2. теоретически вы можете просто применить максимальную и минимальную ширину, чтобы сделать div отзывчивым. если это не то, что вы ищете, проверьте препроцессоры CSS, такие как SASS, чтобы сделать операторы if else. Проблема в том, что условия SASS оцениваются во время компиляции, а не во время выполнения. Другой способ-использовать 2 разных изображения( 1 меньше 250 пикселей и 1 больше 500 пикселей) и скрыть больший элемент с непрозрачностью: 0; когда страница становится меньше и показывает другой, снимите другой. Если этот комментарий был полезен, пожалуйста, закройте сообщение, если нет, просто опубликуйте еще один комментарий с проблемой здесь.