यह पिछले उत्तर के समान है, लेकिन मैंने सोचा कि मैं इसे बाहर निकाल दूंगा और इसे पूरी तरह से समझाऊंगा।
जैसे ही आप सेट करते हैं display: inline-block, :afterएक गैर-पाठ-बाध्यकारी तत्व बन जाता है। यही कारण है कि यह लपेटता है, और क्यों nowrap कोई प्रभाव नहीं है। इसलिए छोड़ दोdisplay अकेला ।
जब तक यह डिफ़ॉल्ट रूप से एक पाठ तत्व है, तब तक सामग्री पिछले पाठ को बांध देती है, जब तक कि उनके बीच कोई व्हाट्सएप न हो। तो कोई जोड़ नहीं है, लेकिन सुनिश्चित करें कि आपके पास है content: "", या जैसा है वैसा ही है display: none। एकमात्र समस्या यह है heightऔर widthइसके द्वारा नियंत्रित होती है content, जो इस मामले में ढह जाती है। तो widthहै 0, औरheight लाइन ऊंचाई है।
पैडिंग के साथ क्षेत्र का आकार बदलें; बाएं या दाएं, कोई फर्क नहीं पड़ता। थोड़ा जोड़ें marginतो आइकन पाठ को स्पर्श नहीं करता है। सब कुछ रिश्तेदार आकार ( emऔर pt, आदि) के रूप में रखें , और उपयोग करें background-size: contain, ताकि आइकन पाठ के साथ एक इमोजी या फ़ॉन्ट की तरह तराजू। अंत में उस आइकन को रखें जहाँ आप चाहते हैं background-position।
ul li.completed a:after {
content: "";
background: url('icon.svg');
background-size: contain;
background-repeat: no-repeat;
background-position: center center;
margin-left: 0.2em;
padding-right: 0.75em;
}
मैंने इसे अपने बाहरी लिंक ( a[href*="://"]:after) के लिए उपयोग किया है , और यह फ़ायरफ़ॉक्स, क्रोम और iOS में ठीक काम किया है। और चूंकि आइकन एक टेक्स्ट एलिमेंट बना हुआ है, यहां तक कि इसे बाइंड करने के बाद डायरेक्ट टेक्स्ट भी।