2012-02-22 11 views
8

मैं बाद में उपयोग के लिए किसी संपत्ति के वर्तमान मूल्य को संग्रहीत करना चाहता हूं। इसे पहले ही jQuery के लिए हल किया जा चुका है।SASS में एक सीएसएस संपत्ति का मूल्य कैसे प्राप्त करें?

मुद्दा यह है कि मैं एक @mixin उपयोग कर रहा हूँ कई स्थानों में एक सीएसएस हैक (Justified Block List) लागू करने के लिए और मैं .block-list * (वर्तमान में उप तत्वों में सभी पाठ सिर्फ संकुचित हो जाता है में font-size संपत्ति में पुनर्स्थापित करना चाहते है)।

असंतोषजनक समाधान:

  • एक अलग फाइल में वैश्विक डिफ़ॉल्ट फ़ॉन्ट आकार सेव करें और @mixin करने के लिए इसे @import पर गुजरती हैं। यह निश्चित रूप से सामान्य मामले में वही फ़ॉन्ट आकार नहीं है जो मिक्स्डिन पर लागू होता है।
  • जब भी आप इसे बदलते हैं तो फ़ॉन्ट आकार सहेजें, और उसे पास करें। यह शामिल फ़ाइलों को उलझन में डालता है, क्योंकि यह कई अन्य असंबंधित फ़ाइलों में टाइपोग्राफी स्टाइलशीट @include के लिए बहुत ही सुरुचिपूर्ण नहीं है।
  • अधिक jQuery का उपयोग करें।

संभवतः संतोषजनक समाधान:

  • अवहेलना पहले पूर्वज जो यह परिवर्तन पर एक मजबूत शासन के साथ फ़ॉन्ट आकार। यह निर्धारित करने के लिए मुश्किल हो सकता है।

उत्तर

3

गणना की जाने वाली कोई कीमत नहीं है जब तक शैलियों को वास्तव में किसी दस्तावेज़ पर लागू नहीं किया जाता है (यही वह jQuery जांच करता है)। स्टाइलशीट भाषाओं में, प्रारंभिक मान या आपके द्वारा निर्दिष्ट मान को छोड़कर कोई "वर्तमान" मान नहीं है।

फ़ॉन्ट आकार जब भी आप इसे बदल, और पारित कि सबसे अच्छा लगता है, और @BeauSmith a good example दिया है सहेजें। यह संस्करण आपको परिभाषित वैश्विक पर आकार या फ़ॉलबैक पास करने देता है:

=block-list($font-size: $base-font-size) 
    font-size: 0 
    > li 
    font-size: $font-size 
3

यदि आपके पास एक मिश्रण है जो फ़ॉन्ट आकार के साथ "हैकी" कर रहा है, तो आपको शायद फ़ॉन्ट आकार को रीसेट करने की आवश्यकता होगी जैसा आपने देखा है। मैं निम्नलिखित का सुझाव देता हूं:

  1. अपनी परियोजना कॉन्फ़िगरेशन चर रिकॉर्ड करने के लिए एक सास आंशिक बनाएं। मैं _config.sass का सुझाव देता हूं।
  2. _config.sass में अपने आधार font-size परिभाषित करें:

    $base-font-size: 16px 
    
  3. आपका मुख्य सास फ़ाइल (फ़ाइलें) के शीर्ष पर @import _config.sass जोड़ें।

  4. अद्यतन mixin अपने $ आधार font-size के लिए font-size रीसेट करने के लिए:

    @mixin foo 
        nav 
        font-size: 0 // this is the hacky part 
        > li 
         font-size: $base-font-size // reset font-size 
    

नोट: आप एससीएसएस सिंटैक्स का उपयोग कर रहे हैं, तो आप की आवश्यकता होगी यहां उदाहरण अपडेट करने के लिए।

संबंधित मुद्दे