text-overflow:ellipsis; केवल तभी काम करता है जब निम्नलिखित सत्य हों:
- तत्व की चौड़ाई
px(पिक्सेल) में विवश होना चाहिए । चौड़ाई %(प्रतिशत) काम नहीं करेगी।
- तत्व का होना
overflow:hiddenऔर white-space:nowrapसेट होना ।
आपके द्वारा यहां समस्या होने का कारण यह है widthकि आपके aतत्व में बाधा नहीं है। आपके पास एक widthसेटिंग है, लेकिन क्योंकि तत्व को सेट किया गया है display:inline(यानी डिफ़ॉल्ट) यह इसे अनदेखा कर रहा है, और कुछ भी इसकी चौड़ाई को बाधित नहीं कर रहा है।
आप निम्न में से एक करके इसे ठीक कर सकते हैं:
- तत्व को
display:inline-blockया display:block(शायद पूर्व में सेट करें , लेकिन आपकी लेआउट आवश्यकताओं पर निर्भर करता है)।
- इसके एक तत्व को सेट करें
display:blockऔर उस तत्व को एक निश्चित widthया दें max-width।
- तत्व को
float:leftया float:right(शायद पूर्व में, लेकिन फिर से सेट करें, या तो एक ही प्रभाव होना चाहिए जहां तक एलिप्सिस का संबंध है)।
मेरा सुझाव है display:inline-block, क्योंकि इससे आपके लेआउट पर न्यूनतम संपार्श्विक प्रभाव पड़ेगा; यह बहुत काम करता है जैसे display:inlineकि यह वर्तमान में उपयोग कर रहा है जहाँ तक लेआउट का संबंध है, लेकिन साथ ही साथ अन्य बिंदुओं के साथ प्रयोग करने के लिए स्वतंत्र महसूस करें; मैंने आपको यह समझने में मदद करने के लिए जितना संभव हो उतना जानकारी देने की कोशिश की है कि ये चीजें एक साथ कैसे बातचीत करती हैं; सीएसएस को समझने का एक बड़ा हिस्सा यह समझने के बारे में है कि विभिन्न शैलियाँ एक साथ कैसे काम करती हैं।
यहां आपके कोड के साथ एक स्निपेट है, एक display:inline-blockजोड़ा के साथ , यह दिखाने के लिए कि आप कितने करीब थे।
.app a {
height: 18px;
width: 140px;
padding: 0;
overflow: hidden;
position: relative;
display: inline-block;
margin: 0 5px 0 5px;
text-align: center;
text-decoration: none;
text-overflow: ellipsis;
white-space: nowrap;
color: #000;
}
<div class="app">
<a href="">Test Test Test Test Test Test</a>
</div>
उपयोगी संदर्भ: