Как справиться с разным разрешением экрана / размером экрана при разработке сайта? - PullRequest
5 голосов
/ 29 мая 2010

Я хотел бы разработать сайт с использованием jQuery, который будет работать со всеми основными браузерами. Я подумал начать с основного макета (заголовок, пара вкладок с контентом и нижний колонтитул). Интересно, как мне создать этот макет для поддержки другого разрешения экрана, размера экрана или размера окна. Должен ли я работать в пикселях / точках / процентах при определении ширины и высоты компонентов? Существуют ли плагины jQuery, которые могут помочь мне с этой задачей? Спасибо!

Ответы [ 4 ]

7 голосов
/ 29 мая 2010

Существует несколько решений этой проблемы, но они в первую очередь зависят от того, какой контент вы хотите поделиться через сайт (например, встроенные видео или изображения, которые могут иметь конечный размер), а также от того, как вы выглядите и чувствуете собираются за

Для веб-макетов, которые хорошо работают в нескольких браузерах и в широком диапазоне размеров окон, вам следует обратить внимание на «Liquid Layouts». Ниже приведены несколько ссылок на руководства по этим макетам.

Вы также можете использовать Javascript (включая jQuery) для настройки стиля / содержимого на основе разрешения окна (например, переход от макета с несколькими столбцами к макету с одним столбцом для небольших экранов, таких как мобильные телефоны). Это называется «Адаптивный контент».

4 голосов
/ 29 мая 2010

Это несколько простых сценариев, которые я использовал в прошлом (используя jQuery):

$(document).ready(function(){
 $('body').append('<div id="screencss"></div>');
 adjustCSS();
 $(window).resize(function(){ adjustCSS() });
})
function adjustCSS(){
 var pageWidth = $(window).width();
 var sizeSelected = "css/blue-800.css";
 if (pageWidth > 900) { sizeSelected = "css/blue-1024.css"; }
 if (pageWidth > 1010) { sizeSelected = "css/blue-1280.css"; }
 if (pageWidth > 1420) { sizeSelected = "css/blue-1600.css"; }
 $("#screencss").html('<link href="' + sizeSelected + '" media="screen" rel="Stylesheet" type="text/css" />');
}

Значения ширины страницы, используемые в коде, являются произвольными и были настроены для работы с конкретным сайтом, поэтому не стесняйтесь настраивать их по своему усмотрению.

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


Обновление № 2: если вы пытаетесь поддерживать действительный HTML. Затем вы можете добавить все таблицы стилей CSS в заголовок вашей страницы (включая атрибут title в каждой):

<link title="blue1" href="blue-320.css" media="screen" rel="Stylesheet" type="text/css" />
<link title="blue2" href="blue-640.css" media="screen" rel="Stylesheet" type="text/css" />
<link title="blue3" href="blue-800.css" media="screen" rel="Stylesheet" type="text/css" />
<link title="blue4" href="blue-1024.css" media="screen" rel="Stylesheet" type="text/css" />
<link title="blue5" href="blue-1280.css" media="screen" rel="Stylesheet" type="text/css" />
<link title="blue6" href="blue-1600.css" media="screen" rel="Stylesheet" type="text/css" />

Тогда используйте этот скрипт. Вы можете получить вспышку белого цвета, если вы включили фоновые изображения в свой CSS, поэтому не забудьте установить базовый стиль CSS.

$(document).ready(function(){
 $('body').append('<div id="screencss"></div>');
 adjustCSS();
 $(window).resize(function(){ adjustCSS() });
})
function adjustCSS(){
 var pageWidth = $(window).width();
 var sizeSelected = "blue1";
 if (pageWidth > 510) { sizeSelected = "blue2"; }
 if (pageWidth > 580) { sizeSelected = "blue3"; }
 if (pageWidth > 900) { sizeSelected = "blue4"; }
 if (pageWidth > 1010) { sizeSelected = "blue5"; }
 if (pageWidth > 1420) { sizeSelected = "blue6"; }
 var lnk = $('head').find('link[title=' + sizeSelected + ']').removeAttr('disabled');
 $('head').find('link[title]').not(lnk).attr('disabled', 'disabled');
}
1 голос
/ 29 мая 2010

Исходя из ваших описанных потребностей, я настоятельно рекомендую проверить css-файл "Grids" из библиотеки пользовательского интерфейса Yahoo (YUI), файл с документацией можно найти здесь: http://developer.yahoo.com/yui/grids/.

Базовая настройка пакета grid включает заголовок, текст и нижний колонтитул. При желании вы можете удалить верхний и нижний колонтитулы. Тело можно разделить, используя вложенную сеточную модель, и включены различные шаблоны.

Лично я запускаю все HTML / CSS-страницы, которые я создаю, с помощью объединенного файла "reset-fonts-grids" из YUI. Он предоставляет вам кросс-браузерный файл сброса CSS, файл сетки и некоторые стандартизированные классы для шрифтов.

1 голос
/ 29 мая 2010

jQuery сам не может помочь вам сделать это. Вы должны освоить основы HTML и CSS. Используйте Javascript и jQuery, если вам это нужно, не используйте его только для его использования. Вы должны работать с пикселями или процентами, когда дело доходит до измерений в Интернете. Очки для печати. Размер шрифта должен быть установлен в EM или пикселях.

Фиксированный макет является наиболее распространенным для обычных веб-страниц, и с помощью каркасов сетки, таких как 960gs , у вас есть простой способ заставить пропорции выглядеть прилично, при этом поддерживая подавляющее большинство разрешений экрана. Кроме того, гораздо проще адаптировать графику к макету с фиксированной шириной, и в то же время сделать страницу простой в использовании.

Имейте в виду, когда / если используются проценты, что текстовые строки длиннее 600-800 пикселей трудно или медленно читаются. Ака с областью содержимого 80% может быть хорошей идеей для области просмотра шириной 1000 пикселей, но если у вас область просмотра 1900 пикселей, сайт становится в основном непригодным для использования.

И обычно никто явно не устанавливает высоту вещей, так как высота будет автоматически увеличиваться при увеличении содержимого контейнера. Конечно, вы можете установить высоту для определенных вещей, но все зависит от того, что на самом деле.

Итак, использование динамической или фиксированной ширины зависит от вашего контента.

...