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>
उपयोगी संदर्भ: