2012-08-09 3 views
5

मैं उन सभी एंकर टैग का चयन करने की कोशिश कर रहा हूं जो बाहरी छवियों से लिंक हैं जिनके पास बाल छवि टैग नहीं हैं। अगर मेरे पास एक लिंक के रूप में एक छवि है, तो यह उन छवियों के बगल में थोड़ा बाहरी लिंक आइकन भी जोड़ता है, लेकिन मुझे वह नहीं चाहिए।सीएसएस चयनकर्ता: <img> बच्चे के रूप में

यह वही है मैं अब तक राशि है: साथ ही लिंक:

a[href^="http://"]{ 
    background:transparent url(..icon/external.png) center right no-repeat; 
    display:inline-block; 
    padding-right:18px; 
} 

एक अतिरिक्त बोनस के रूप में, मैं इसे कैसे के साथ काम करना होगा "https: //"?

+2

जो वर्तमान में सीएसएस के साथ नहीं किया जा सकता है। [अभी भी कोई अभिभावक चयनकर्ता नहीं है।] (Http://stackoverflow.com/questions/1014861/is-there-a-css-parent-selector) – thirtydot

+0

मैं सीएसएस 4 spec मानक बनने के लिए इंतजार नहीं कर सकता ... ऐसा लगता है कि वहाँ से आने के लिए शानदार सुविधाओं का एक टन है। – MaxGhost

+0

पैडिंग लिंक के दाईं ओर आइकन के लिए स्थान देता है, फिर पृष्ठभूमि छवि को स्वयं जोड़ती है, दाईं ओर गठबंधन करती है। इनलाइन-ब्लॉक पूरे लिंक को छवि क्लिक करने योग्य बनाता है। [अधिक जानकारी के लिए यहां देखें] (http://web-kreation.com/all/add-file-type-icons-next-to-your-links-with-css/) – MaxGhost

उत्तर

6

यह सादे सीएसएस के साथ संभव नहीं है।

jQuery:

$("a[href^='http://']:not(:has(img))").addClass("external"); 

सीएसएस:

a.external { 
    background:transparent url(..icon/external.png) center right no-repeat; 
    display:inline-block; 
    padding-right:18px; 
} 

डेमो देखें: http://jsfiddle.net/hKTBp/

(HTTPS सहित) डेमो देखें: http://jsfiddle.net/hKTBp/1/

आप jQuery wizardry का एक सा इस्तेमाल कर सकते हैं लेकिन
+0

मुझे नहीं लगता कि आप सुरक्षित रूप से सुरक्षित कर सकते हैं मान लें कि उसने jQuery स्थापित किया है। – kojiro

+2

@kojiro मैं सहमत हूं, लेकिन मैं सुरक्षित रूप से कह सकता हूं कि ओपी चाहता है कि संभव नहीं है, और मैंने एक साफ विकल्प प्रदान किया है। – Curt

+1

अच्छा फिक्स! मैं एक गैर-जेएस समाधान पसंद करता, लेकिन यह काम करता है। मेरे पास jQuery है, तो यह ठीक है। – MaxGhost