Я не могу понять, почему min-width
не работает на мобильном телефоне на моем сайте. Вероятно, есть действительно простое решение для этого, но я ничего не могу найти.
По сути, у меня есть элемент с этим CSS:
fullscreen {
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
position: absolute;
min-width: 100%;
min-height: 100%;
}
Это прекрасно работает в браузерах настольных компьютеров, ввсе разрешения и соотношения сторон, но на мобильных устройствах он полностью разбивается, хотя при изменении min-width
на width
он отлично заполняет экран на настольном компьютере и мобильном устройстве.
И когда вместо этого я использую height
из min-height
, он работает как положено, и я могу позиционировать элементы с помощью bottom
на мобильном телефоне, но при использовании min-height
он использует произвольную позицию примерно посередине экрана. max-width
и max-height
, кажется, также работают правильно
Что еще более странно для меня, так это то, что при использовании «эмулятора» мобильного устройства в Chrome результаты кажутся совершенно случайными, иногда работают, иногда с такимина полпути на том же месте, что и мой настоящий телефон, иногда он находится в совершенно другом месте.
Мой телефон постоянно имеет линию на полпути на том же месте.
Я видел многолюдей рекомендуют использовать мета-тег viewport, и я уверен, что он реализован правильно:
<meta name = "viewport" content = "width = device-width, initial-scale = 1.0">
Идеальным решением для меня было бы просто повторить то же поведение, что и на рабочем столена мобильном телефоне, поскольку мой настольный сайт уже работает для всех разрешений.
Большое спасибо за вашу помощь, я потратил не менее 3 часов, чтобы выяснить это!
РЕДАКТИРОВАТЬ: Я 'мы пытались реализовать поведение, которое я хочу, в JavaScript, и по какой-то причине он по-прежнему не хочет работать на мобильных устройствах. Вот тест, который я сделал:
<!DOCTYPE html>
<html>
<head>
<title>Mobile fit test</title>
<meta name = "viewport" content = "width = device-width, initial-scale = 1.0, maximum-scale = 1.0">
<style>
body {
margin: 0;
padding: 0;
overflow-x: hidden;
overflow-y: hidden;
}
</style>
</head>
<body>
<img id = "fit" src = 'http://placehold.it/1000'>
<script>
var image = document.getElementById("fit");
var image_width, image_height;
window.onresize = function() {
console.log(image_width, image_height);
var width = 1.0 / window.innerWidth * window.innerHeight / image_height * image_width;
var height = 1.0;
if (width < 1.0) {
width = 1.0;
height = 1.0 / window.innerHeight * window.innerWidth / image_width * image_height;
}
width *= window.innerWidth;
height *= window.innerHeight;
image.style.width = width + "px";
image.style.height = height + "px";
image.style.position = "absolute";
image.style.left = window.innerWidth / 2 - width / 2 + "px";
image.style.top = window.innerHeight / 2 - height / 2 + "px";
}
document.body.onload = function() {
image_width = image.width;
image_height = image.height;
window.onresize();
}
</script>
</body>
</html>
С этим я все еще могу увеличить, window.innerWidth
и window.innerHeight
не кажутся такими, какими они должны быть, и он все еще отлично работает слюбое разрешение и плагин, который предложил Mileta Dulovic. Это сводит меня с ума!