2011-10-24 24 views
16

:before और :after छद्म-तत्वों की तरह चित्रों की तरह स्थिति का उचित तरीका क्या है? मैं विभिन्न तरीकों के समूह के साथ गड़बड़ कर रहा हूं, लेकिन उनमें से कोई भी बहुत ही सुरुचिपूर्ण समाधान की तरह प्रतीत नहीं होता है।स्थिति के लिए उचित तरीका: छद्म तत्वों से पहले

यह मैं क्या करने की कोशिश कर रहा हूँ है:

enter image description here

यह मैं क्या किया है:

div.read-more a:before { 
    content: url('/images/read_more_arrow_sm.png'); 
    position: absolute; 
    top: 4px; 
    left: -15px; 
} 

<div class="read-more"> 
    <a href="#">Read More</a> 
</div> 

मैं मूल रूप से बस चाहते छवि पाठ के साथ गठबंधन किया है। क्या ऐसा करने का कोई और तरीका है?

यह सही हो सकता है अगर मैं सिर्फ :before छवि पर गद्दी और मार्जिन इस्तेमाल कर सकते हैं, और कहा कि चाहिए तुम क्या करते हो रहा है। लेकिन किसी कारण से, यह मेरे लिए काम नहीं कर रहा है। मैं क्षैतिज पैडिंग और मार्जिन जोड़ सकता हूं, लेकिन ऊपर और नीचे पैडिंग कुछ भी नहीं करता है। ऐसा क्यों होगा?

+0

क्यों नहीं दे मेल खाता है 'एक 'पृष्ठभूमि छवि और इसके बजाय कुछ बाएं पैडिंग जोड़ें? – BoltClock

+0

जब तक आपके पास प्रति पृष्ठ दर्जन/सैकड़ों नहीं हैं, मुझे लगता है कि आप छद्म तत्व के बारे में भूलना बेहतर होगा और इसके बजाय छवि और लिंक को एक-दूसरे के सामने रखें। –

+0

क्या आपके उदाहरण में टेक्स्ट "वीडियो देखें" और 'पहले' सामग्री तीर है? पृष्ठभूमि छवि का उपयोग क्यों नहीं करें? कृपया अपना एचटीएमएल मार्कअप पोस्ट करें। –

उत्तर

13

content के बजाय background उपयोग करने का प्रयास और content में एक प्लेसहोल्डर डाल: पाठ के पास केवल स्थिति छवि के लिए http://jsfiddle.net/7X7x2/1/

+0

यह पूरी तरह से काम किया। धन्यवाद! – Syren

11

यदि आप चाहते हैं, तो आप शायद खड़ी -align संपत्ति की जरूरत है:

div.read-more a:before { 
    vertical-align: bottom; 
    content: url(image.png); 
} 

यह संभावित मान निम्नलिखित है: आधारभूत, उप, सुपर, शीर्ष, पाठ शीर्ष के मध्य, नीचे, पाठ-नीचे

यह मौजूदा टेक्स्ट लाइन से टेक्स्ट की स्थिति से गणना की गई मान (उदाहरण में और पढ़ें)।

पूर्ण संदर्भ: http://www.w3schools.com/cssref/pr_pos_vertical-align.asp

(अंतरिक्ष जोड़ने के लिए पहले पाठ बस-सही मार्जिन का उपयोग करें)

+0

क्या यह तत्वों के साथ काम करता है? – zardilior

+0

के लिए पूरी तरह से अप्रभावी लगता है: पहले, तत्वों के बाद (क्रोम 59)। निश्चित नहीं है कि इस जवाब में प्रतिनिधि क्यों है। क्योंकि यह स्पष्ट है कि इस विशेष संदर्भ के लिए काम करने की संभावना नहीं है – Smithfield

+0

@ स्मिथफील्ड मेरे लिए ठीक काम करता है: https://jsfiddle.net/p8y6fv8h/ क्या आप वहां गस्ट कर सकते हैं, यह काम नहीं करता है? –

11

आप नीचे दिए गए कोड को सामग्री ले जाने के लिए उपयोग कर सकते हैं:

div.read-more a:before { 
    content: "\00BB \0020"; 
    position: relative; 
    top: -2px; 
} 
1

यह था मेरा समाधान, माउसओवर के साथ:

div.read-more a:before { 
    content: url(image.png); 
    position: relative; 
    top: 3px; 
    left: -7px; 
    padding-left: 7px; 
} 
div.read-more a:hover:before { 
    content: url(image_hover.png); 
} 
0

आपको बनाने की ज़रूरत है स्थिति: .read-more के सापेक्ष और फिर आप स्थिति बदल सकते हैं।

0

संपादित @Richard जेपी Le Guen के बेला तो यह अनुरोध किया संस्करण थोड़ा और

एचटीएमएल

<div class="read-more"> 
    <a href="#">Read More</a> 
</div> 

सीएसएस

div.read-more a:before { 
    background: url('http://i.stack.imgur.com/XyerX.jpg') CENTER CENTER NO-REPEAT; 
    content:""; 
    width:21px; 
    height:21px; 
    display: inline-block; 
    vertical-align: sub; 
    margin-right: 4px; 
    line-height: 21px; 
} 
div.read-more { 
    background: red; 
    line-height: 21px; 
    display:block; 
    vertical-align:middle; 
    width: max-content; 
    padding: 4px; 
} 
div.read-more a{ 
    color: white; 
    text-decoration:none; 
} 

http://jsfiddle.net/7X7x2/688/

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