2011-02-26 16 views
41

क्या सीएसएस के माध्यम से href निर्दिष्ट किए बिना सभी लिंक से मिलान करना संभव है?स्टाइलिंग <a> बिना href विशेषता

उदाहरण:

<a>Invalid link</a> 

मैं इसके संभावित पता href साथ सभी लिंक मेल करने के लिए, लेकिन मैं ठीक सामने की तलाश में हूँ।

a:not([href]) { 
    /* Styles for anchors without href */ 
} 

या सभी a के लिए एक सामान्य शैली निर्दिष्ट करें, और a[href] के लिए एक विशेषता के साथ उन लोगों के लिए ओवरराइड कर:

+0

ध्यान दें कि "अवैध" का अर्थ "अमान्य HTML" नहीं है, लेकिन "अमान्य हाइपरलिंक" है, जिसका अर्थ है कि यह वास्तव में कहीं भी इंगित नहीं करता है। – BoltClock

उत्तर

81

या तो CSS3 के :not() का उपयोग करें।

a { 
    /* Styles for anchors with and without href */ 
} 

a[href] { 
    /* Styles for anchors with href, will override the above */ 
} 
सबसे अच्छा ब्राउज़र समर्थन के लिए

(प्राचीन लेकिन काफी नहीं भुलाया ब्राउज़रों भी शामिल है), विशेषता चयनकर्ता के बजाय :link and :visited pseudo-classes का उपयोग (दोनों के संयोजन a[href] के रूप में ही की भरपाई कर देंगे):

a {} /* All anchors */ 
a:link, a:visited {} /* Override */ 

बनाम a:link, a:visited के गहन स्पष्टीकरण के लिए this answer भी देखें।

+1

हाँ यह काम करता है! धन्यवाद। नमूना: http://jsfiddle.net/9pCr2/ – knoopx

संबंधित मुद्दे