2015-03-05 11 views
11

भीतर CSS मीडिया क्वेरी वहाँ किसी भी मुद्दे (प्रदर्शन मेरी प्राथमिक चिंता का विषय है) करता है, तो बजाय मीडिया के प्रश्नों के भीतर सीएसएस चयनकर्ताओं को परिभाषित (उदाहरण 1) की, आप सीएसएस चयनकर्ताओं के भीतर मीडिया क्वेरी को परिभाषित (उदाहरण 2) कर रहे हैं।को परिभाषित करना चयनकर्ताओं

उदाहरण 1 - सीएसएस चयनकर्ताओं

.foo { 
    @media (min-width: 600px) { ... } 
    @media (min-width: 1000px) { ... } 
    @media (min-width: 1500px) { ... } 
} 

.bar { 
    @media (min-width: 600px) { ... } 
    @media (min-width: 1000px) { ... } 
    @media (min-width: 1500px) { ... } 
} 

.hello { 
    @media (min-width: 600px) { ... } 
    @media (min-width: 1000px) { ... } 
    @media (min-width: 1500px) { ... } 
} 

.world{ 
    @media (min-width: 600px) { ... } 
    @media (min-width: 1000px) { ... } 
    @media (min-width: 1500px) { ... } 
} 

आप "? क्यों ऐसा करते हैं" सोच रहा हो सकता है के भीतर मीडिया क्वेरी - मीडिया के भीतर सीएसएस चयनकर्ताओं प्रश्नों

@media (min-width: 600px) { 
    .foo { ... } 
    .bar { ... } 
    .hello { ... } 
    .world{ ... } 
} 

@media (min-width: 1000px) { 
    .foo { ... } 
    .bar { ... } 
    .hello { ... } 
    .world{ ... } 
} 

@media (min-width: 1500px) { 
    .foo { ... } 
    .bar { ... } 
    .hello { ... } 
    .world{ ... } 
} 

उदाहरण 2। अंदरूनी मीडिया प्रश्नों के दौरान कक्षाओं को विस्तारित करने के लिए कम से कम कुछ सीमाएं हैं, और वेरिएबल्स को स्कॉइंग भी कर रही हैं।

+3

प्रदर्शन अंतर है? उत्तरार्द्ध इस बात पर निर्भर करता है कि सीएसएस कैसे उत्पन्न होता है, क्योंकि स्टाइल नियम 'मीडिया' नियमों में दिखाई दे सकते हैं लेकिन ** ** ** अन्य तरीकों से नहीं। – BoltClock

+0

दूसरा उदाहरण कैसे काम कर सकता है? "चयनकर्ता" द्वारा, क्या आपका मतलब है [mixins] (http://lesscss.org/features/#mixins-feature)? किसी भी नियम के बाहर बुलाया जाता है, इन मिश्रणों को काम करना चाहिए, लेकिन आपके प्रश्न में लिखा गया मौका afaik नहीं है। आप '.foo तरह कोष्ठकों जोड़ना चाहिए() {@media {} {} @media @media {}}' तो यह घटना नहीं के रूप में (अवैध) सीएसएस उत्पादन लेकिन सिर्फ एक mixin रूप में परिभाषित किया है और उसके बाद आप इस mixin कॉल कर सकते हैं और यह उनमें से प्रत्येक में नियमों के साथ 3 मीडिया नियमों का उत्पादन करेगा – FelipeAls

उत्तर

7

संक्षिप्त उत्तर, नहीं। सीएसएस चयनकर्ताओं के भीतर मीडिया प्रश्नों को परिभाषित करने में कोई प्रदर्शन समस्या नहीं है।

लेकिन में गोता हैं ...

एन्सेल्म Hannemann महान लेख Web Performance: One or Thousands of Media Queries में बताया गया है वहाँ तरीके आप कर रहे हैं में मीडिया के प्रश्नों जोड़ने से कोई प्रदर्शन नुकसान है।

जब तक मीडिया के प्रश्नों का एक ही जोड़ी प्रत्येक चयनकर्ता में इस्तेमाल किया जा रहा वहाँ कोई बड़ा प्रदर्शन अन्य हिट की तुलना में अपने सीएसएस फ़ाइल थोड़ा बड़ा हो सकता है।

.foo { 
    @media (min-width: 600px) { ... } 
    @media (min-width: 1000px) { ... } 
    @media (min-width: 1500px) { ... } 
} 

.bar { 
    @media (min-width: 600px) { ... } 
    @media (min-width: 1000px) { ... } 
    @media (min-width: 1500px) { ... } 
} 

हालांकि, यह करता है आप बात है कि कितने अलग मीडिया क्वेरी का उपयोग करें। विभिन्न अलग-अलग min-widths, max-widths और इसी तरह से अलग हैं। कम संकलन या ब्राउज़र को रेंडरिंग के मामले में

1

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


संभावनाओं से कुछ जब वहाँ प्रदर्शन के मुद्दों

  • आप विभिन्न मूल्यों और ब्राउज़र विंडो का आकार बदल दिया है के साथ कई मीडिया प्रश्नों का उपयोग हो सकता है। चूंकि ब्राउज़र विंडो का आकार बदलता है, सीपीयू पर एकाधिक मीडिया प्रश्न बड़े ओवरहेड हो सकते हैं।
  • जब सीएसएस चयनकर्ता बहुत जटिल होते हैं। एक जटिल सीएसएस चयनकर्ता एकाधिक मीडिया प्रश्नों की तुलना में अधिक प्रदर्शन बाधा है। इसलिए जटिल चयनकर्ताओं के अंदर कई मीडिया प्रश्न होने से प्रदर्शन समस्याएं हो सकती हैं
संबंधित मुद्दे