Адаптивность в создании сайтов

Сейчас Мы поговорим о такой вещи, как адаптивность сайта. Смысл урока можно понять, посмотрев на картинку:
Адаптивность в создании сайта

Адаптивность с помощью CSS


Строки кода CSS, которые Я написал ниже, помогут Вам понять суть идеи адаптивности с помощью CSS.

Применение стилей в зависимости от разрешения экрана:
/*Стиль будет применяться при ширине экрана большей 1000 пикселей*/
@media screen and (min-width: 1000px) {
	body { color:red; }
}
/*Стиль будет применяться при ширине экрана меньшей 1600 пикселей*/
@media screen and (max-width: 1600) {
	body { color:red; }
}
/*Стиль будет применяться при ширине экрана большей 1000 пикселей и  меньшей 1600 пикселей*/
@media screen and (min-width: 1000px) and (max-width: 1600px)  {
	body { color:red; }
}
// Для высоты (height) аналогично


Применение стилей в зависимости от ориентации устройства (портретная, ландшафтная):
/*Стиль будет применяться при ландшафтном(альбомном) расположении экрана*/
@media screen and (orientation: landscape) { 
	body { color:red; }
}
/*Стиль будет применяться при ширине портретном расположении экрана*/
@media screen and (orientation: portrait) { 
	body { color:red; }
}


Адаптация с помощью JavaScript


Еще один, простой способ сделать сайт адаптивным - это динамическое изменение размера сайта в зависимости от размера экрана.
Суть этого метода такова:
Имеем HTML страницу:
<HTML>
	<HEAD>
		<TITLE>Адаптация с помощью JavaScript</TITLE>
		<link rel="stylesheet" type="text/css" href="css/style.css">
		<script src="js/jquery-2.1.3.min.js"></script>
		<script src="js/myscript.js"></script>
	</HEAD>
	<BODY>
		<div class="head_block"></div>
		<div class="main_content"></div>
		<div class="footer"></div>
	</BODY>
</HTML>

Как видно из кода, у нас есть 3 блока "head_block - самый верхний блок(логотипы, верхнее меню и т.п.)", "main_content - блок с основным содержимым сайта", "footer - так называемый футер, или низ страницы".
Добавляем динамическое изменение с помощью JavaScript.
// Берем размер экрана пользователя
var devWidth = $(window).width();
// Размеры блоков при загрузке страницы
$(document).ready(function() {
	// Выставляем ширину для всех блоков равной ширине устройства
	$(".head_block").width(devWidth);
	$(".main_content").width(devWidth);
	$(".footer").width(devWidth);
});
// Изменение размеров блоков при событии изменения размеров экрана
$(window).resize(function() {
	$(".head_block").width(devWidth);
	$(".main_content").width(devWidth);
	$(".footer").width(devWidth);
});
// Изменение размеров блоков при событии изменения ориентации дисплея
window.addEventListener("orientationchange", function() {
	$(".head_block").width(devWidth);
	$(".main_content").width(devWidth);
	$(".footer").width(devWidth);
});

Также можно применять фиксированные значения в зависимости от разрешения экрана:
// Берем размер экрана пользователя
var devWidth = $(window).width();
// Размеры блоков при загрузке страницы
// Аналогично будут строится и реакции на другие события
$(document).ready(function() {
	// Для экранов больше 600, но меньше 1000 пикселей
	if(devWidth>600 && devWidth<1000) {
		$(".head_block").width(700);
		$(".main_content").width(700);
		$(".footer").width(700);
	}
	// Для экранов больше 1000, но меньше 1600 пикселей
	else if(devWidth>1000 && devWidth<1600) {
		$(".head_block").width(1200);
		$(".main_content").width(1200);
		$(".footer").width(1200);
	}
	// Для остальных экранов, которые не подошли под предыдущие условия
	else {
		$(".head_block").width(1800);
		$(".main_content").width(1800);
		$(".footer").width(1800);
	}
	// Внимание! последнее условие также сработает на мобильные устройства
	// с небольшим разрешением (320, 480 пикселей), т.к. они не подходят
	// ни под одно наше условие
});


Помощь PHP в адаптации

В самом языке нету каких либо определенных функций, с помощью которых можно было адаптировать сайт под мобильные устройства.
Но! Язык PHP может помочь в адаптации сайта с помощью специальных плагинов, которые могут определять является ли устройство мобильным(планшет, телефон) или нет. А уже исходя из этого определения, можно подключать отдельные JavaScript скрипты или CSS стили, специально подготовленные для мобильных устройств.

Одним из таких плагинов является Mobile Detect. Это небольшой, простой в использовании плагин, который позволяет определить является ли устройство мобильным, какая операционная система используется на устройстве, а также какой браузер. Впринцепи, эти параметры можно "поймать" и самим, но т.к. мы на начале нашего пути, эти подробности опустим.
Самым простым способом использования плагина Mobile Detect это определение, является ли устройство мобильным или нет:
<?
	// Подключаем плагин
	require_once 'Mobile_Detect.php';
	// Создаем объект
	$detect = new Mobile_Detect;
	// Проверяем является ли устройство мобильным
	if ( $detect->isMobile() ) {
		// Устройство мобильное, подключаем определенные стили и скрипты
	}
?>

Более подробно о плагине Mobile Detect можно почитать на официальном сайте Mobile Detect

Скачать плагин Mobile Detect

Это основы адаптации сайта под различные устройства. Но все же основным методом адаптации сайта является HTML - верстка.