2013-04-23 7 views
10

क्या सभी ब्राउज़र समर्थन के लिए मैन्युअल रूप से विंडो न्यूनीकरण के न्यूनतम आकार को सेट करने के लिए वैसे भी है?ब्राउज़र की खिड़की को कम करने के लिए न्यूनतम आकार सीमा निर्धारित करना?

प्रश्न पूछने में संकोच न करें और प्रश्न भी संपादित करें।

अच्छे उत्तरों की निश्चित रूप से सराहना की जाती है।

+3

यदि आप ब्राउज़र विंडो को प्रतिबंधित करना चाहते हैं तो एक निश्चित ** नहीं ** (* अच्छे कारण के लिए *)। यदि आपका मतलब वास्तविक साइट है तो 'min-width' आपका मित्र है .. –

+2

@ गैबाकाजी। पेट्रीओली _" निश्चित ** नहीं ** "_ निश्चित रूप से गलत है - [मेरा उत्तर] (http://stackoverflow.com/a/16174183/356541) एक समाधान प्रदान करता है जो क्रोम में काम करता है। मैं विनम्रतापूर्वक सुझाव देता हूं कि उपरोक्त टिप्पणी को ऊपर उठाने के बारे में सोचने वाले किसी भी व्यक्ति को मेरे उत्तर को कम करने के बारे में सोचें, वंश के लिए! – Barney

+0

@ बार्नी ओपी ने "सभी ब्राउज़र समर्थन के लिए *** ***" कहा है और आप समाधान केवल तभी काम करेंगे जब विंडो 'window.open' के माध्यम से खोली जाती है। अपने उत्तर का जवाब कम नहीं किया जाना चाहिए क्योंकि यह कुछ परिदृश्यों का समाधान प्रदान करता है और भविष्य के संदर्भ के लिए प्रश्न/उत्तर के लिए एक अच्छा जोड़ा है .. –

उत्तर

20

आप कोशिश कर सकते हैं

body { min-width:600px; } 

आप एक क्षैतिज स्क्रॉलबार एक बार व्यूपोर्ट 600px से कम हो जाता है मिल जाएगा। यह केवल आधुनिक ब्राउज़र में काम करेगा जो न्यूनतम चौड़ाई सीएसएस संपत्ति का समर्थन करता है।

मुझे नहीं लगता कि उपयोगकर्ता को आकार बदलने से प्रतिबंधित करना संभव है, और यह नहीं होना चाहिए!

+1

आप _can_ तकनीकी रूप से उपयोगकर्ताओं को आकार बदलने से प्रतिबंधित करते हैं (देखें [मेरा जवाब] (http://stackoverflow.com/a/16174183/356541)), हालांकि मैं आपकी राय से सहमत हूं कि आपको सक्षम नहीं होना चाहिए। आपके उत्तर के लिए – Barney

18

आपको जावास्क्रिप्ट का उपयोग करना होगा और अधिकांश समय काम करने के लिए विंडो में सवाल बनाना होगा, क्योंकि टैबबड बाउंस आपको अन्य टैब वाले विंडो के आकार को फिर से परिभाषित नहीं करने देगा। फिर भी, कुछ ब्राउज़र आपको ऐसा करने नहीं देंगे।

window.open उपयोग करके, आप निर्दिष्ट करने के द्वारा आकार 640 * 480 की दी गई खिड़की बना सकते हैं:

window.open('http://www.your.url/','yourWindowsName','width=640,height=480'); 

खिड़की के भीतर आप कोशिश कर सकते हैं और resizeTo ऊंचाई और चौड़ाई निम्नलिखित की तरह resize ईवेंट हैंडलर से शुरू हो रहा:

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) 

आप उस खाते से ऊपर दोनों व्यवहार विवादास्पद हैं में रखना चाहिए, और क्या आप को प्रभावी ढंग से वर्णन कर रहे हैं उपयोगकर्ता की स्वतंत्रता को प्रतिबंधित करता है अपने ब्राउज़र का उपयोग करने के रूप में वे फिट देख। इस प्रकार, मैं यह हर जगह काम करने की उम्मीद नहीं करता - लेकिन जहां स्थानों पर यह करता है, यह वह कोड है जो आपको ऐसा करने की अनुमति देगा।

+1

+1 ... –

2
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) 
0

वास्तविक न्यूनतम सामग्री चौड़ाई और ऊंचाई सुनिश्चित करने के लिए मेरा समाधान यहां है, जिसमें विभिन्न ब्राउज़र के "क्रोम" आयामों से निपटना शामिल है। यह फ़ायरफ़ॉक्स के साथ काम नहीं करता है, लेकिन मैंने इसे एज और क्रोम में परीक्षण किया है।

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); 
संबंधित मुद्दे