मैं AngularJS और SCSS के साथ एक साइट कोडिंग कर रहा हूं। मैं विकास के मोबाइल चरण में हूं और मैंने जल्दी से (इस परियोजना के लिए) खोज की है कि मुझे @media
क्वेरी का उपयोग करके एकाधिक ब्रेकपॉइंट्स को लक्षित करने का एक तरीका चाहिए। तो मुझे this SO answer और this CSS Tricks Post के साथ-साथ SO पर कई अन्य उत्तरों के माध्यम से मिला। फिर मैंने परीक्षण-मामले में मिले समाधानों को लागू किया, परीक्षण के लिए नीचे स्निपेट देखें।मीडिया प्रश्नों की अल्पविराम से अलग सूची
main {
background-color: grey;
height: 100%;
min-height: 1000px;
@media (max-width: 992px) {
background-color: red
}
@media (max-width: 768px) {
background-color: lightcoral
}
@media (max-width: 992px), (max-width: 992px) and (orientation: landscape) {
background-color: lightgreen;
}
@media (max-width: 768px),
(max-width: 768px) and (orientation: landscape) {
background-color: lightblue;
// Reset the min-height here, because we no longer have the sticky search bar.
min-height: 450px;
}
}
<main>
<h1>Page Title</h1>
<h2>Some Descriptive information</h2>
<div>Content</div>
</main>
लेकिन मैं यह काम करने के लिए प्राप्त करने में सक्षम नहीं किया गया है। मैं जो करने की कोशिश कर रहा हूं, आखिरकार, ऐसी शैलियों हैं जो लागू होती हैं जब उपयोगकर्ता टेबलेट पर परिदृश्य में होता है, या फ़ोन। हालांकि, मुझे नहीं पता कि मैं इसे सही कर रहा हूं, या or
ऑपरेटर का सही ढंग से उपयोग कर रहा हूं।
यह सादा काम नहीं करता है, ठीक है, पहला कथन (उदाहरण के लिए: (max-width: 992px)
) काम करता है, लेकिन दूसरा दूसरा सत्य का मूल्यांकन नहीं करता है। मोज़िला के अनुसार:
अल्पविराम से अलग सूचियां तार्किक ऑपरेटर की तरह व्यवहार करती हैं या मीडिया प्रश्नों में उपयोग की जाती हैं। मीडिया प्रश्नों की अल्पविराम से अलग सूची का उपयोग करते समय, यदि कोई भी मीडिया प्रश्न सत्य लौटाता है, तो शैलियों या स्टाइल शीट लागू हो जाती हैं। अल्पविराम से अलग सूची में प्रत्येक मीडिया क्वेरी को एक व्यक्तिगत क्वेरी के रूप में माना जाता है, और किसी भी ऑपरेटर को एक मीडिया क्वेरी पर लागू किया जाता है जो दूसरों को प्रभावित नहीं करता है। --- Mozilla Documentation
यहां तक कि अगर मैं दो अलग-अलग मीडिया के प्रश्नों में कोड को तोड़ने:
@media (max-width: 992px) {
background-color: lightgreen;
}
@media (max-width: 992px) and (orientation: landscape) {
background-color: lightgreen;
}
यह अभी भी काम नहीं करता। तो मुझे नहीं पता कि मैं गलत चौड़ाई (जब परिदृश्य में) या मैं क्या गलत कर रहा हूं को लक्षित कर रहा हूं। क्या कोई अन्य फ्रंट-एंड डेवलपर्स वहां बता सकता है कि मेरे अल्पविराम से अलग मीडिया प्रश्न क्यों काम नहीं कर रहे हैं?
संपादित करें:
main {
background-color: $mono-90;
height: 100%;
min-height: 1000px;
@media screen and (max-width: map_get($grid-breakpoints, 'md')) {
// Reset the min-height here, because we no longer have the sticky search bar.
min-height: 450px;
}
@media
(max-width: map_get($grid-breakpoints, 'lg')),
(max-width: map_get($grid-breakpoints, 'lg')) and (orientation: landscape){
background-color: lightgreen;
}
@media
(max-width: map_get($grid-breakpoints, 'md')),
(max-width: map_get($grid-breakpoints, 'md')) and (orientation: landscape){
background-color: lightblue;
}
@media
(max-width: map_get($grid-breakpoints, 'sm')),
(max-width: map_get($grid-breakpoints, 'sm')) and (orientation: landscape){
background-color: lightcoral;
}
}
संपादित करें: यहाँ देशी एससीएसएस कोड है,
main {
background-color: $mono-90;
height: 100%;
min-height: 1000px;
@media screen and (max-width: map_get($grid-breakpoints, 'md')) {
// Reset the min-height here, because we no longer have the sticky search bar.
min-height: 450px;
}
@media screen and (max-width: map_get($grid-breakpoints, 'lg')) {
background-color: lightgreen;
}
@media screen and (max-width: map_get($grid-breakpoints, 'md')) {
background-color: lightblue;
}
@media screen and (max-width: map_get($grid-breakpoints, 'sm')) {
background-color: lightcoral;
}
}
हालांकि: @Godwin की सिफारिश के अनुसार मैं इस के लिए मेरे @media
प्रश्नों को सरल बनाया, यह आईपैड लैंडस्केप (1024x768) पर काम नहीं करता है। I लैपटॉप पर दिखाना नहीं चाहते हैं, लेकिन लैंडस्केप स्थिति में आईपैड पर दिखाना चाहते हैं।
तार्किक रूप से यह वास्तव में मतलब नहीं है के लिए काम करेगा। आप अनिवार्य रूप से कह रहे हैं "अगर एक सच है या अगर ए और बी सत्य हैं तो कुछ करना"। यदि अभिविन्यास परिदृश्य या चित्र है, तो क्वेरी सच होगी, तो यह भी एक शर्त क्यों है? – Godwin
सोचा कि मैं उपकरण के ओरिएंटेशन के आधार पर विशिष्ट तत्वों को लक्षित करना चाहते है। जब मैं उन्मुखीकरण छोड़ मैं कह रहा हूँ "इन शैलियों या तो पोर्ट्रेट या लैंडस्केप के लिए लागू किया जा सकता है, कोई फर्क नहीं पड़ता।" लेकिन, जैसा कि बताया गया है, वहां _certain_ चीजें हैं जिन्हें मैं केवल लैंडस्केप पर दिखाना चाहता हूं, लेकिन पोर्ट्रेट पर पहले से ही छुपाया जाएगा। – mrClean
मैं जो कह रहा हूं वह यह है कि, जहां तक मैं इसे समझता हूं, आपका कथन 'ए || (ए और बी बी) 'जिसे' ए 'में सरलीकृत किया जा सकता है, ऐसा लगता है कि आपके तर्क में कोई त्रुटि है। जैसा कि यह खड़ा है, परिदृश्य के बावजूद, जब भी बड़ी ब्रेकपॉइंट की तुलना में चौड़ाई बड़ी होती है, तो 'लाइटग्रीन' पृष्ठभूमि-रंग 'लागू किया जाएगा। – Godwin