Лучшее решение / фреймворк для адаптивного дизайна для IE7
для тех, кто еще не знает об отзывчивом дизайне, я предлагаю этой ссылке
пока он не понимает СМИ querys как:
@media screen and (max-width: 1280px) {
h1 { font-size: 120px; padding: 10px; color:#999999 !important; }
h2{font-size:35px;}
}
@media screen and (max-width: 1024px) {
h1 { font-size: 90px; padding: 1px; color:#999 !important; }
h2{font-size:25px;}
}
@media screen and (max-width: 740px) {
h1 { font-size: 70px; padding: 1px; color:#999 !important; }
h2{font-size:16px;}
.left-col { width: 100%; }
.sidebar { width: 100%; }
}
@media screen and (max-width: 480px) {
}
@media screen and (max-width: 478px) {
h1 { font-size: 50px; padding: 1px; color:#999; }
h2 { font-size: 12px; padding: 1px; }
body { font-size: 13px; }
}
Я рассматривал возможность использования адаптация.js что с вами можно сделать:
<script>
// Edit to suit your needs.
var ADAPT_CONFIG = {
// Where is your CSS?
path: 'assets/css/',
// false = Only run once, when page first loads.
// true = Change on window resize and page tilt.
dynamic: true,
// First range entry is the minimum.
// Last range entry is the maximum.
// Separate ranges by "to" keyword.
range: [
'0px to 760px = mobile.min.css',
'760px to 980px = 720.min.css',
'980px to 1280px = 960.min.css',
'1280px to 1600px = 1200.min.css',
'1600px to 1940px = 1560.min.css',
'1940px to 2540px = 1920.min.css',
'2540px = 2520.min.css'
]
};
</script>
<script src="assets/js/adapt.min.js"></script>
Он предназначен для использования с 960 сетки но вы все равно можете использовать все, что вам нравится в них .в CSS
но проблема в том, что вам необходимо включить javascript. Я был надеюсь, любой из вас знает более гибкий (отзывчивый!) решение, любое?
3 ответов
просто изучаю это. Я собирался использовать adapt.js, но я нашел некоторые JS, которые позволяют функциональность медиа-запросов в старых браузерах (включая IE7).
таким образом, новые браузеры без JS все равно будут работать должным образом, единственная ситуация, когда отзывчивый дизайн вернется к самой маленькой версии
вот два из лучших резервных копий JS media query, которые у меня есть найдено:
ответить
https://github.com/scottjehl/Respond
Respond составляет около 3 КБ при сжатии и поддерживает основные медиа-запросы, которые вам понадобятся для простого адаптивного дизайна (min/max-width)
С помощью CSS3-mediaqueries-Яш
http://code.google.com/p/css3-mediaqueries-js/
немного больше при
Я не знаю, как сделать веб-сайт отзывчивым в IE6-8 без использования Javascript. Однако можно просто обслуживать настольную версию вашего сайта в этих браузерах и сделать ее отзывчивой во всех других браузерах. Я считаю, что это лучший подход, так как IE6-8 (почти?) используется исключительно на настольных компьютерах.
Основы Каскад является единственной CSS-структурой, которую я знаю, с сеточной системой, которая реализует эту технику.
мне не понравилась идея некоторых альтернатив, чтобы заставить старые браузеры работать с медиа-запросами. Загрузка CSS-файла через AJAX и его разбор для меня не слишком эффективны.
другой вариант создания адаптивных веб-сайтов для IE7 или даже IE5/6-использовать JavaScript для применения классов на основе ширины экрана, подобных медиа-запросам. Это работает со всеми браузерами пока включен JavaScript. Вы можете иметь разрешение по умолчанию, которое обслуживается, если JavaScript нетрудоспособный.
это описано здесь.
некоторые примеры JavaScript для выполнения этого:
<script type="text/javascript">
function hasClass(el, cls) {
return el.className.match(new RegExp('(\s|^)' + cls + '(\s|$)'));
}
function addClass(el, cls) {
if (!this.hasClass(el, cls)) el.className += " " + cls;
}
function removeClass(el, cls) {
if (hasClass(el, cls)) {
var reg = new RegExp('(\s|^)' + cls + '(\s|$)');
el.className = el.className.replace(reg, ' ');
}
}
var addEvent = function (elem, type, eventHandle) {
if (elem == null || elem == undefined) return;
if (elem.addEventListener) {
elem.addEventListener(type, eventHandle, false);
} else if (elem.attachEvent) {
elem.attachEvent("on" + type, eventHandle);
} else {
elem["on" + type] = eventHandle;
}
};
function responsive() {
var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
for (var i = 0; i < breakpoints.length; i++) {
if (breakpoints[i][0] == "max-width") {
if (w <= breakpoints[i][1]) {
addClass(document.getElementById(id), breakpoints[i][2]);
}
else {
removeClass(document.getElementById(id), breakpoints[i][2]);
}
}
else if (breakpoints[i][0] == "min-width") {
if (w >= breakpoints[i][1]) {
addClass(document.getElementById(id), breakpoints[i][2]);
}
else {
removeClass(document.getElementById(id), breakpoints[i][2]);
}
}
}
}
var resizeTimeoutId;
function resized() {
window.clearTimeout(resizeTimeoutId);
resizeTimeoutId = window.setTimeout('responsive();', 10);
}
var id = "body";
var breakpoints = [["max-width", 630, "max630"], ["min-width", 1890, "min1890"]];
addEvent(window, "resize", resized);
responsive();
</script>