Définition de la taille minimale pour une fenêtre minimisation du navigateur?
Est-il possible de définir manuellement la taille minimale d'une fenêtre de navigateur sur tous les navigateurs?
4 réponses
Vous pouvez essayer
body { min-width:600px; }
Vous obtiendrez une barre de défilement horizontale lorsque le viewport sera inférieur à 600px. Cela ne fonctionnera que dans les navigateurs modernes supportant la propriété CSS min-width.
je ne pense pas qu'il est possible de restreindre l'utilisateur de redimensionner, et il ne devrait pas l'être!
vous devrez utiliser Javascript et créer la fenêtre en question pour que cela fonctionne la plupart du temps, puisque tabbed bowsers ne vous laissera pas redéfinir la taille de la fenêtre contenant d'autres onglets. Même alors, certains navigateurs ne vous laisseront pas faire.
en utilisant window.open
, vous pouvez faire une fenêtre de taille 640 * 480 en précisant:
window.open('http://www.your.url/','yourWindowsName','width=640,height=480');
Dans la fenêtre, vous pouvez essayer et resizeTo
hauteur et largeur déclenchées par le resize
événement gestionnaire comme suit:
function resizeToMinimum(){
var minimum = [640, 480];
var current = [window.outerWidth, window.outerHeight];
var restricted = [];
var i = 2;
while(i-- > 0){
restricted[i] = minimum[i] > current[i] ? minimum[i] : current[i];
}
window.resizeTo(current[0], current[1]);
}
window.addEventListener('resize', resizeToMinimum, false)
vous devriez tenir compte du fait que les deux comportements ci-dessus sont litigieux, et que ce que vous décrivez restreint effectivement la liberté de l'utilisateur d'utiliser son navigateur comme bon lui semble. En tant que tel, je ne m'attendrais pas à ce que cela fonctionne partout - mais dans les endroits où cela fonctionne, c'est le code qui vous permettra de le faire.
function resizeToMinimum(w,h){
w=w>window.outerWidth?w:window.outerWidth;
h=h>window.outerHeight?h:window.outerHeight;
window.resizeTo(w, h);
};
window.addEventListener('resize', function(){resizeToMinimum(100,100)}, false)
voici ma solution pour assurer la largeur et la hauteur minimales réelles du contenu, ce qui inclut le traitement des dimensions "chrome" de différents navigateurs. Cela ne fonctionne pas avec Firefox, mais je l'ai testé dans Edge et Chrome.
function ensureMinimumWindowSize(width, height) {
var tooThin = (width > window.innerWidth);
var tooShort = (height > window.innerHeight);
if (tooThin || tooShort) {
var deltaWidth = window.outerWidth - window.innerWidth;
var deltaHeight = window.outerHeight - window.innerHeight;
width = tooThin ? width + deltaWidth : window.outerWidth;
height = tooShort ? height + deltaHeight : window.outerHeight;
// Edge not reporting window outer size correctly
if (/Edge/i.test(navigator.userAgent)) {
width -= 16;
height -= 8;
}
window.resizeTo(width, height);
}
}
var resizeTimer;
window.addEventListener('resize', function(event) {
clearTimeout(resizeTimer);
resizeTimer = setTimeout(function () {
ensureMinimumWindowSize(<width>,<height>);
}, 250);
}, false);