2012-02-05 27 views
14

मैं सोच रहा था कि कैसे मैं कम सीएसएस के साथ निम्नलिखित की तरह कुछ कर सकता है: यह सिर्फ एक उदाहरण है, क्या बात करने के लिए अगर वहाँ की जरूरत हैसीएसएस-कम वर्ग छद्म वर्ग के साथ वर्ग का विस्तार

.btn { 
    color : black; 
} 

.btn:hover { 
    color : white; 
} 

.btn-foo { 
    .btn; 
    &:hover { 
    .btn:hover; 
    } 
} 
के पाठ्यक्रम

:hover छद्म वर्ग के गुणों को फिर से टाइप करने से बचने के लिए छद्म-वर्ग का विस्तार करने का कोई तरीका है, मुझे हर जगह की आवश्यकता है। मुझे पता है कि मैं इसके लिए एक मिश्रण बना सकता हूं लेकिन मुझे आश्चर्य है कि क्या मैं इससे बच सकता हूं।

धन्यवाद

उत्तर

30

अद्यतन: यदि आप बाहरी फ़ाइलें संशोधित नहीं कर सकते हैं, बस चयनकर्ताओं को फिर से परिभाषित है, और याद आ रही राज्यों जोड़ें:

.btn { 
    // not adding anything here, won't affect existing style 
    &:hover { 
    // adding my own hover state for .btn 
    background: yellow; 
    ... 
    } 
} 

// this will make your foo button appear as in external style 
// and have the :hover state just as you defined it above 
.btn-foo { 
    .btn; 
} 

बेहतर अब? :)


आपको छद्म वर्ग की आवश्यकता नहीं है। यह सिर्फ काम करेंगे :)

इस प्रयास करें:

.btn { 
    background: yellow; 

    &:hover { // define hover state here 
    background: green; 
    } 
} 

button { 
    .btn; 
} 

प्रत्येक तत्व आप प्राप्त कर लेंगे बनाने जो कुछ होवर स्थिति सहित परिभाषित किया गया था,। मुझे लगता है कि यह कम की मुख्य अद्भुत विशेषताओं में से एक है।

उम्मीद है कि इससे मदद मिलती है।

+0

हैलो, आपके उत्तर के लिए धन्यवाद, मुझे पता है कि यह काम करता है, यही कारण है कि मैं 'और की जरूरत नहीं है है: मेरी उदाहरण लेकिन अलग परिभाषा hover'। धन्यवाद – panosru

+0

यकीन है, लेकिन .. क्या यह अलग करने के लिए समझ में आता है (Lesscss का उपयोग करते समय)? – bzx

+0

कोई यह भावना नहीं है लेकिन वहाँ मामलों में जहां आप विक्रेता की कम फ़ाइलों को छूने के लिए नहीं करना चाहते हैं :) – panosru

6

कम 1.4.0 में

यह (1.4.1?):

.btn { 
    color : black; 
} 

.btn:hover { 
    color : white; 
} 

.btn-foo:extend(.btn all) { 
} 

इस पर विस्तृत होता:

.btn, 
.btn-foo { 
    color: black; 
} 
.btn:hover, 
.btn-foo:hover { 
    color: white; 
} 

हालांकि सतर्क रहें, इस:

.btn { 
    color : black; 
} 

.btn:hover { 
    color : white; 
} 

.abc .btn { 
    margin: 2px; 
} 

.btn-foo:extend(.btn all) { 

} 

विल उत्पादन इस:

.btn { 
    color : black; 
} 

.btn:hover { 
    color : white; 
} 

.abc .btn { 
    margin: 2px; 
} 

.btn-foo:extend(.btn all) { 

} 

मैंने एसएएसएस में आधा घंटे से अधिक नहीं देखा है, लेकिन मेरा मानना ​​है कि बाद का मामला इसका डिफ़ॉल्ट (या केवल) @extend व्यवहार है।

+0

में बनाया है, तो क्या यह अभी तक काम करता है? मैं इसे आधिकारिक साइट पर नहीं ढूंढ सकता। – ehdv

+0

@ehdv हां। अब विस्तारित है, कम से कम अपने गिथब पेज पर। बात यह है कि इसका दस्तावेज़ इसके विकास के पीछे है। आपको चर्चाओं पर नजर रखने की आवश्यकता हो सकती है (जैसे https://github.com/less/less.js/issues?labels=ReadyForImplementation&milestone=&page=1&state=open) – John

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