2009-05-19 12 views
13

के लिए ब्लॉक यह मेरी HTML है:समस्या: लिंक

<div id="links"> 
    <a href="">Link 1</a> 
    <a href="">Link 2</a> 
    <a href="">Link 3</a> 
    <a href="">Link 4</a> 
</div> 

और इन सीएसएस शैलियों रहे हैं:

#links { 
    position: absolute; 
    border: 1px solid #000; 
} 

#links a { 
    display: block; 
} 

#links a:hover { 
    background-color: #CCC; 
} 

इस लिंक की एक सूची प्रदर्शित करता है, समस्या यह है कि है आईई में, मैं केवल टेक्स्ट लिंक पर क्लिक करके एक लिंक पर क्लिक कर सकता हूं, जो कि अन्य ब्राउज़रों के साथ मामला नहीं है (जहां आप लिंक लिंक या लिंक ब्लॉक में कहीं भी कहीं भी क्लिक कर सकते हैं), क्या कोई है इसके लिए ठीक करें (केवल सीएसएस के साथ, कोई जावास्क्रिप्ट नहीं)?

कृपया ध्यान दें कि मैं लिंक या div के लिए चौड़ाई निर्दिष्ट नहीं करना चाहता हूं।

उत्तर

5

एक स्पैन तत्व में लिंक टेक्स्ट संलग्न करें। फिर यह सीमाओं के भीतर कहीं भी क्लिक स्वीकार करेगा।

+0

बहुत धन्यवाद, यह काम करता है। –

+7

यह समाधान केवल स्थिति जोड़ने से कम अर्थपूर्ण है: सापेक्ष – vsync

6

स्थिति रखें: सापेक्ष; पर अपने सीएसएस में #links एक {}

like this

यह ठीक कर देंगे :)

+1

उत्कृष्ट चाल, धन्यवाद! – Yukulelix

25

मैं एक ही समस्या और समाधान में से कोई भी मेरे लिए काम किया ऊपर पड़ा है। मुझे पारदर्शी होने के लिंक की पृष्ठभूमि की भी आवश्यकता थी।

एक बहुत ही असहज समाधान, लेकिन जो पूरी तरह से काम करता है वह पृष्ठभूमि को एक पारदर्शी gif पर सेट करना है। केवल 1x1 पीएक्स होना चाहिए क्योंकि यह दोहराएगा।

#links a 
{ 
    display: block; 
    background: url(/images/interface/blank/1dot.gif); 
} 

ऐसा लगता है कि सर्वर के लिए एक अतिरिक्त अनुरोध के अलावा कोई दुष्प्रभाव नहीं है।

+0

वही है। अन्य समाधान काम नहीं करते थे लेकिन यह एक किया था। –

+9

ध्यान दें कि आप [सीएसएस में जीआईएफ की सामग्री को हार्ड-एन्कोड कर सकते हैं] (http: // css-tricks।com/snippets/html/base64-encode-of-1x1px-transparent-gif /), इस प्रकार सर्वर पर अतिरिक्त अनुरोध से परहेज करते हैं! – Benjamin

5

मुझे नहीं पता कि क्यों, लेकिन एंकर को पृष्ठभूमि रंग देना मेरे लिए इस समस्या को ठीक करना प्रतीत होता है।

+0

मेरे लिए रहस्य भी, लेकिन मैंने इसे एक त्वरित प्रयास (अन्य उत्तरों की तुलना में) के रूप में आजमाया और यह अच्छी तरह से काम किया। बस 'पृष्ठभूमि-रंग: पारदर्शी' को हल करें। +1 –

-1

अपने a -tag शैली के अंदर इस सम्मिलित करें:

background:url('images/dot.png') no-repeat; 

जहां dot.png एक 1x1 पारदर्शी छवि है।

+0

2 साल बाद गणराज्य का उत्तर - गंभीरता से? – dube

1

ठीक है, इस समस्या का समाधान एंकरों को पारदर्शी के अलावा पृष्ठभूमि की संपत्ति देना है। कुछ ने एंकरों को एक पारदर्शी पृष्ठभूमि छवि देने का प्रस्ताव रखा। मेरे पास इसके अलावा एक अतिरिक्त है: छवि मौजूद नहीं है। आप बस किसी भी पथ लिख सकते हैं और यह यह काम कर देगा:

a { 
    background:url('dummy/doesnotexist.png') no-repeat; 
} 
2

#fff लिए पृष्ठभूमि रंग और 0 के एक अस्पष्टता IE9, क्रोम और फ़ायरफ़ॉक्स में मेरे लिए काम किया करना। हालांकि अन्य संस्करणों के बारे में पता नहीं है। इसे पारदर्शी में सेट करने से मेरी मदद नहीं हुई।

इसका शुद्ध सीएसएस और क्रॉस-ब्राउज़र होने का लाभ है, इसलिए शायद यह एक बेहतर विकल्प हो सकता है।

+0

यह भी है कि मैं क्या कर रहा था, क्योंकि 'स्थिति: रिश्तेदार' मेरे लिए काम नहीं करता था। शायद क्योंकि में टेक्स्ट-इंडेंट था: -99 99 पीएक्स' और (इसके माता-पिता) 'स्थिति: पूर्ण'। – WoodrowShigeru