В моем последнем вопросе меня попросили включить код.Я не знал, отредактировал ли я это сообщение, если бы кто-нибудь его увидел, поэтому я публикую это ..
Подводя итог моей проблеме ... Я завершил (или я так думал) проектдля школы, чтобы сделать сайт.Я забыл, что он должен быть кросс-браузерным, он работает на всех браузерах, кроме IE, где он разбит на несколько областей.
Я знаю, что могу использовать caniuse.com и отследить, что вызывает несовместимостьна IE и попытаться исправить это, но должен ли я отказаться от тех аспектов веб-сайта, которые не работают на IE?Или есть способ указать в зависимости от браузера, какие стили использовать / не использовать ...
Он плохо работает на странице галереи, где я использовал CSS-сетку для разметки изображений, он должен выглядетьвот так:
Второе изображение выглядит так, как в IE.Я думаю, это потому, что IE не поддерживает автоматическое размещение, и я использовал grid-auto-row.Я попытался заменить это явными строками, и изображения остались сложенными друг на друга, так что, возможно, нет.
Это основная проблема, с которой я столкнулся.
html (при использовании только одного изображения, чтобы оно не было слишком повторяющимся, imgContainer повторяется для каждого img с соответствующим src.)
<div class="Gallery">
<div class=" imgContainer big"><img src="images/chair.jpg" class="img">
</div>
</div>
css
.Gallery{
display:-ms-grid;
display:grid;
grid-gap: 5px;
grid-template-columns:repeat(auto-fit, minmax(170px, 1fr));
grid-auto-rows:95px;
grid-auto-flow: dense;
}
.horiz{
-ms-grid-column-span: 2;
grid-column: span 2;
}
.vert{
-ms-grid-row-span: 2;
grid-row: span 2;
}
.big{
-ms-grid-column-span:2;
grid-column:span 2;
-ms-grid-row-span: 2;
grid-row: span 2;
}
.imgContainer {
width: 100%;
height: 100%;
}
.backgroundCover {
background-size: cover;
background-position: center center;
}
.imgContainer .backgroundCover .img {
opacity: 0;
}
.img {
width: 100%;
height: 100%;
-o-object-fit: cover;
object-fit: cover;
}
t{
-ms-grid-row-span: 2;
grid-row: span 2;
}
.big{
-ms-grid-column-span:2;
grid-column:span 2;
-ms-grid-row-span: 2;
grid-row: span 2;
}
.imgContainer {
width: 100%;
height: 100%;
}
.backgroundCover {
background-size: cover;
background-position: center center;
}
.imgContainer .backgroundCover .img {
opacity: 0;
}
.img {
width: 100%;
height: 100%;
-o-object-fit: cover;
object-fit: cover;
}
javascript, чтобы попытаться приспособить объект к размеру, например, изменив его на фоновое изображение и используя обложку ... на самом деле он не выглядит как работающий ..
это беспорядок, я знаю ... я новичок и нуждаюсь в руководстве.
function hasClass(el, className) {
return el.classList ? el.classList.contains(className) : new RegExp('\\b' + className + '\\b').test(el.className);
}
/**
* helper function to add a class to an element
*/
function addClass(el, className) {
if (el.classList) {
el.classList.add(className);
} else if (!hasClass(el, className)) {
el.className += ' ' + className;
}
}
var imgContainers;
var len;
if (!Modernizr.objectfit) {
imgContainers = document.querySelectorAll('.imgContainer');
len = imgContainers.length;
for (var i=0; i<len; i++) {
var $container = imgContainers[i],
imgUrl = $container.querySelector('img').getAttribute('src');
if (imgUrl) {
$container.style.backgroundImage = 'url(' + imgUrl + ')';
addClass($container, 'backgroundCover');
}
}
}