पर आधारित ट्रंकेट स्ट्रिंग मैं ब्रेक लाइन के बिना एक निर्धारित क्षेत्र (td
) में एक स्ट्रिंग फिट करने की कोशिश कर रहा हूं। समस्या यह है: यह करने की जरूरत है ...पिक्सेल चौड़ाई
- फ़िट जबकि संकल्प के
N
प्रकार में - फ़िट आकार बदलने जब जरूरत
- अंत में
...
जोड़ें (और जब जरूरत नहीं नहीं करते हैं) font-size
,font-weight
के परिवर्तन स्वीकार करें, औरfont-family
सीएसएस
.truncated { display:inline-block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
jQuery (// बस लाइन तोड़ने के लिए कुछ शैलियों जोड़ने)(// खोजें:Novon's question पर जवाब के आधार पर, मैं निम्नलिखित कोड बनाया सभी टीडी जिसमें .truncated
तत्व शामिल है। td
की असली चौड़ाई (सामग्री को हटाकर और इसे फिर से जोड़कर) प्राप्त करना। को लागू करना, (ऊपर कोड से अपेक्षा के अनुरूप) td
)
jQuery('.truncated').closest('td').each(function() {
var text = jQuery(this).text();
var widthOriginal = jQuery(this).width();
var widthEmpty = jQuery(this).text('').width();
jQuery(this).text(text);
if(widthOriginal >= widthEmpty){
var width = (parseInt(widthEmpty) - 10) + 'px';
jQuery(this).css('maxWidth', width);
jQuery(this).text(text + '...');
}
});
परिणाम पर की जरूरत है, minWidth है:
लेकिन यह होना चाहिए:
मैं सोच रहा था, शायद स्ट्रिंग के पहले line
को खोजने का प्रयास करें और बाकी को हटा दें लेकिन ऐसा करने का कोई तरीका नहीं मिला (और यह मेरे स्वाद के लिए "वर्कअराउंड" है)। क्या ऐसा करने का कोई बेहतर तरीका है?
.truncated {
display: -webkit-box;
-webkit-line-clamp: 1; // amount of line you want
-webkit-box-orient: vertical;
}
या आप क्लैंप की कोशिश कर सकते हैं:
[यह सवाल मदद मिल सकती है] (http: // stackoverflow। कॉम/प्रश्न/4700226/i-want-to-truncate-a-text-or-line-with -ellesis-use-javascript) –
क्या आपने उपलब्ध स्थान प्राप्त करने का प्रयास किया है और फिर इसे पिक्सेल चौड़ाई के आधार पर कारक के साथ विभाजित किया है औसत चरित्र का? –
@MarcusRommel 'var widthOriginal = jQuery (this) .width(); 'मुझे उपलब्ध स्थान मिलता है। मैं इस विभाजन को कैसे बना सकता हूं? –