Оптимизация сайта для планшетов и телефонов - 2

Frelly
На сайте с 12.02.2016
Offline
31
#11
qilly:
Народ, а кто что скажет? Лучше делать адаптивную верстку или же отдельный мобильный шаблон с фильтром по user-agent?

Если проект новый, то адаптивная верстка, я за нее.

Если дизайн недавно сделан, но он под desktop, то надо взвешивать за и против.

D.iK.iJ
На сайте с 26.05.2013
Offline
225
#12

Сделал тут простую кнопку переключения на полную версию сайта для адаптивного дизайна:

В Хедер, вместо meta name=viewport:

<? if (isset($_COOKIE['mobile'])) { ?><meta name=viewport content="width=device-width, initial-scale=1"><? } else { ?><meta name=viewport content="width=1024, initial-scale=0.1"><? } ?>

Сама кнопка:

<? if (isset($_COOKIE['mobile']) and $_COOKIE['mobile']=="no") { ?><a href="" onclick="SetCookie('mobile=yes', 0);">На обычную версию</a><? }else{ ?> <a href="" onclick="SetCookie('mobile=no', 30);">На мобильную версию</a><? } ?>
<script>
//Ставим Куки
function SetCookie(id, days){
var ws=new Date();
ws.setDate((days-0+ws.getDate()));
document.cookie=id+"; path=/; expires="+ws.toGMTString();
}
</script>

Куки на 30 дней, страница перегружается по ссылке. Работает, проверил.

На здоровье :)

Если кому-то интересны технические моменты, то мы меняем width=device-width на width=1024, делая сайт "шире" для мобильного устройства. Также, я изменил начальный масштаб загрузки страницы с initial-scale=1 на initial-scale=0.1 - так работа очевиднее.

Адаптивный дизайн в 2 строчки ( https://dikij.com/wm/adaptaciya-saytov.php ). + Принимаю заказы любой сложности ( https://searchengines.guru/ru/forum/926323 ). 💎 Еще я делаю классные кулоны с опалами ( https://mosaicopal.ru/ ).
A
На сайте с 02.03.2016
Offline
0
#13
DiKiJ:
Сегодня переделывал сайт pleervox.ru и получил у Гугла 100 / 100 Удобство для пользователей. :)
Даже слайдер и просмотрщик фотографий переделан под мобильные устройства.

Подтверждаю сказанное. Владелец Плеервокса мой давнишний друг и SEO клиент. Когда потребовался адаптив, он сам нашел Андрея, который на удивление быстро и недорого сделал адаптив. В итоге я попросил контакты такого шустрого исполнителя и передал Андрею еще один проект autovyhlop.ru.

Теперь я знаю, кто может быстро и безболезненно сделать адаптив и всячески рекомендую Андрея.

Отзыв реальный, мой номер телефона для сомневающихся +7 499 391-35-99

D.iK.iJ
На сайте с 26.05.2013
Offline
225
#14

Спасибо! :)

А сегодня у нас интересная тема!

Как сделать таблицу адаптивной и не сойти с ума

В общем, адаптация под "резиновую верстку" табличного сайта часто выглядит примерно вот так. Особенно, если нет легкого доступа к самой таблице.

У меня есть полная статья на эту тему, но давайте тут просто приведу список полезностей по пунктам:

1) td {hyphens: auto;} - корректный перенос слов в таблице. Жаль, не во всех браузерах.

2) word-break: break-all; - принудительно разбиваем строки и слова в таблице. Не очень красиво, но работает.

3) <WBR> сами расставляем места переносов.

4) Заключаем таблицу в DIV c фиксированной шириной и overflow: auto. Это включит прокрутку по горизонтали.

5) Иногда достаточно уменьшить отступы в ячейках.

6) td {display: inline-block !important; width: 100% !important;} - а этот способ дошел до меня совсем недавно. Можно сделать столбцы таблицы блоками или инлайн-блоками. Это настолько легко и круто, что даже слов нет!

Любые карточки товаров легко складываются друг под друга, а ячейки переносятся. И все это - без физической разбивки таблицы на 2 части (у таблиц вообще много глюков с float: left в разных браузерах).

Да, подход применим и к строкам (tr). В принципе, стилями таблицу можно даже пересобрать заново.

D.iK.iJ
На сайте с 26.05.2013
Offline
225
#15

max-width не работает в Firefox и IE 11 для изображений. И буду рад, если кто-то знает другое решение :)

Большинство современных браузеров вполне корректно понимают max-width: 100% и уменьшают изображение, если оно не помещается в контейнер. С IE 11 и Firefox такого не происходит. По какой-то причине эти браузеры считают, что max-width: 100% относится к истинной ширине изображения, а не к ширине в контейнере.

Решение довольно простое: Мы дополнительно задаем изображению width: 100% (не забываем про height: auto).

Картинка растягивается на весь контейнер и уменьшается вместе с ним. Как минус - нужно очень точно указывать стили, чтобы не растягивать маленькие изображения.

Если у разных картинок нет разных классов, иногда можно воспользоваться медиа запросами и CSS селекторами.

Например: img[src$="-560.jpg"] {width: 100% !important; height: auto !important;}

Есть еще одно нудное и долгое решение.

Указывать каждому изображению width: 100%; height: auto; max-width: 800px; max-height: 600px;

Где 800 и 600 я указал просто для примера. Тут max-height больше всего нужен для IE 11. Там все будет работать корректно только в том случае, если на сайте указан доктайп.

tommy-gung
На сайте с 22.11.2006
Offline
287
#16
DiKiJ:
max-width не работает в Firefox

у меня работает

Здесь не могла быть ваша реклама
D.iK.iJ
На сайте с 26.05.2013
Offline
225
#17
tommy-gung:
у меня работает

Зайдите и восхититесь: http://dikij.com/test.php

Код

<table border="1" width="100%"><tr><td>
<img style="max-width: 100%;" src="http://dikij.com/foto/661.jpg">
</td></tr></table>
tommy-gung
На сайте с 22.11.2006
Offline
287
#18

похоже, что вместе с таблицей они не знают, как себя вести.

изображение растягивает таблицу (при уменьшении ширины), и, соответственно, не уменьшается само

D.iK.iJ
На сайте с 26.05.2013
Offline
225
#19
tommy-gung:
похоже, что вместе с таблицей они не знают, как себя вести.

изображение растягивает таблицу (при уменьшении ширины), и, соответственно, не уменьшается само

Да, нужно было указать в тексте подробнее, что дело в кривой работе с таблицами, в первую очередь.

nastroen
На сайте с 23.08.2013
Offline
77
#20

А обязательно ли упоминание "screen"? Например: @media screen and (max-width:600px)

Google обходится без этого screen и предлагает простое @media(min-width: 468px) в рекомендациях по стилям адаптивного блока.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий