मैं कई टैबलेट उपकरणों के साथ काम कर रहा हूं - दोनों एंड्रॉइड और आईओएस। वर्तमान में मेरे पास सभी टैबलेट के लिए रिज़ॉल्यूशन भिन्नताएं हैं।
- 1280 x 800
- 1280 x 768
1024 x 768 (स्पष्ट रूप से iPad)- iPad के पास यह मुद्दा नहीं है
डिवाइस ओरिएंटेशन आधारित शैली को लागू करने का सबसे सरल तरीका मीडिया क्वेरी के अभिविन्यास का उपयोग करके वाक्यविन्यास का उपयोग करना है।
@media all and (orientation:portrait)
{
/* My portrait based CSS here */
}
@media all and (orientation:landscape)
{
/* My landscape based CSS here */
}
यह सभी टैबलेट उपकरणों पर पूरी तरह से ठीक काम करता है। लेकिन , समस्या यह है कि जब डिवाइस पोर्ट्रेट मोड में है और उपयोगकर्ता किसी भी इनपुट फ़ील्ड (जैसे। सर्च) पर सॉफ्ट-कीबोर्ड पॉप अप करता है - जो वेब पेज के दृश्य क्षेत्र को कम करता है और इसे लैंडस्केप आधारित सीएसएस में प्रस्तुत करने के लिए मजबूर करता है। एंड्रॉइड टैबलेट उपकरणों पर, यह कीबोर्ड की ऊंचाई पर निर्भर करता है। तो, अंततः वेब पेज टूटा हुआ दिखता है। इसलिए, मैं अभिविन्यास पर आधारित शैलियों को लागू करने के लिए CSS3 के अभिविन्यास मीडिया क्वेरी का उपयोग नहीं कर सकता (जब तक कि उन्मुखीकरण को लक्षित करने के लिए बेहतर मीडिया क्वेरी नहीं है)। यहाँ एक फिडेल है http://jsfiddle.net/hossain/S5nYP/5/ जो इसका अनुकरण करता है - डिवाइस परीक्षण के लिए पूर्ण परीक्षण पृष्ठ का उपयोग करें - http://jsfiddle.net/S5nYP/embedded/result/
यहाँ डेमो पेज से लिए गए व्यवहार का स्क्रीनशॉट है।
तो, क्या इस समस्या को हल करने का कोई विकल्प है, मैं जावास्क्रिप्ट आधारित समाधान के लिए खुला हूं यदि देशी सीएसएस आधारित समाधान काम नहीं करता है।
मुझे http://davidbcalhoun.com/2010/deal-with-device-orientation पर एक स्निपेट मिला जिसमें क्लास को जोड़ने और उसके आधार पर लक्ष्य बनाने का सुझाव दिया गया है। उदाहरण के लिए:
<html class="landscape">
<body>
<h1 class="landscape-only">Element Heading - Landscape</h1>
<h1 class="portrait-only">Element Heading - Portrait</h1>
<!-- .... more... ->
# CSS
.landscape .landscape-only { display:block; }
.landspace .portrait-only { display:none; }
.portrait .portrait-only { display:block; }
.portrait .landscape-only { display:none; }
आप लोग इस बारे में क्या सोचते हैं? क्या आपके पास बेहतर समाधान है?