Мне было поручено обновить сайт, чтобы он был адаптивным и корректно отображался на смартфонах. К сожалению, с сайтом в его нынешнем виде не очень легко работать - я не могу просто изменить CSS.
Считается ли плохим определять размер браузера и вносить изменения в CSS с помощью jQuery?
Например:
if ($(window).width() < 960) {
//make heaps of CSS changes
}
css
mobile
jquery
optimization
responsive-webdesign
MeltingDog
источник
источник
Ответы:
Конечно. Очевидно, что было бы лучше использовать только CSS, но если вы не можете, используйте то, что у вас есть. Делайте как можно больше с CSS и используйте JS по мере необходимости. Не знаю, почему вы не можете изменить существующий CSS, но вы можете добавить таблицу стилей с помощью JS.
Источник: http://christian-fei.com/add-stylesheets-after-the-head-using-javascript/
затем сходите с ума от CSS / медиа-запросов.
Или с помощью jQuery:
Я сделал адаптивные «скины», где некоторые вещи просто невозможно было сделать без смены DOM. Если у вас нет доступа к HTML, манипуляции с JS DOM иногда являются единственным ответом.
РЕДАКТИРОВАТЬ:
В зависимости от визуальных требований вашей версии для небольшого экрана, вы можете быть удивлены тем, насколько далеко этот фрагмент CSS поможет вам перейти к «дружественному мобильному».
Если первоначальный разработчик CSS слишком любил
!important
и вы не можете найти HTML, вы можете использовать jQuery / JS, чтобы добавить идентификатор в тело или контейнер высокого уровня и добавить его в свой селектор.источник
Я бы сказал, попробуйте сначала использовать медиа-запросы. Один метод, который я нашел более простым, когда имел дело с дизайном, который изначально был только для настольных компьютеров, заключался в следующем:
Начните с двух отдельных таблиц стилей. Один для нового адаптивного дизайна, а другой для старой настольной версии:
Все старые стили могут содержаться в desktop.css . Тем временем вы можете начать с нуля в mobile.css . Вы можете обнаружить, что в этом мобильном CSS можно создать красивую разметку из одного столбца, которая работает и для планшетов.
Этот подход позволяет вам начать все с нуля, и вы можете разрабатывать стили специально для мобильных телефонов и планшетов, не используя при этом настольные стили, которые переопределяют вещи. Вы можете скрыть / показать / позиционировать элементы, как требуется только для мобильных устройств.
Если вам действительно нужно изменить код рабочего стола, чтобы он работал с мобильными и настольными компьютерами, вы можете реорганизовать разметку. В качестве альтернативы, если вы обнаружите, что не можете реально реорганизовать HTML как для адаптивной, так и для мобильной версий, вы можете поместить класс в код рабочего стола, например, класс «рабочий стол», и использовать CSS в мобильной версии, чтобы скрыть его. Затем напишите новый HTML-код для этого раздела и дайте ему
class="mobile"
. Затем стилизуйте его в mobile.css и спрячьте в desktop.css .источник
Я работал на сайте, который использовал этот метод, и у меня были проблемы с поворотом экрана на мобильных устройствах. Поскольку JavaScript будет обнаруживать только один раз при загрузке страницы, если пользователь поворачивает устройство, он не будет расширяться до полной ширины, как это происходит с медиа-запросами. В то время мне было проще просто переключиться на CSS, но, возможно, специалист по JS узнает, есть ли способ обнаружить изменение ширины области просмотра. Похоже, что с AJAX должен быть выход, но я бы поспорил, что все, что вы обнаружите, будет чрезмерным, если речь идет о производительности, как описывает Megasteve.
источник
Отзывчивость и «правильно отображаться на смартфонах» - это совершенно разные задачи.
Это не должно быть основным источником стайлинга. Это работа CSS. Тем не менее, оба могут быть использованы вместе эффективно. В простом примере текст может быть оформлен по-разному в зависимости от результатов какого-либо действия. jQuery может быть использован для изменения CSS-класса.
источник
Раньше мы использовали популярный CSS-фреймворк 960.gs для наших сайтов.
Мы хотели сделать его отзывчивым.
Кто-то создал JS-плагин для 960 gs, поэтому мы подумали, почему бы не использовать его, так как нам не нужно было бы вносить какие-либо изменения в шаблоны структурных сайтов.
Это работало, но в большинстве браузеров, в том числе и в хороших, оно отставало. Как правило, вы получаете «флэш-контент нестандартного формата», который сильно зависит от сложности страницы.
Несмотря на то, что решения JS работают, они не идеальны, медиа-запросы CSS 3 - лучший выбор, если это возможно. В конце мы просто переделали шаблоны нашего сайта с помощью Twitter Bootstrap, который очень хорошо подходил для наших нужд.
Хотя это может быть привлекательно для коротких путей, это часто оказывается более длительным / болезненным в долгосрочной перспективе.
источник