2012-07-16 30 views
14

कहते हैं कि यह मार्कअप चलें 'टी इसे प्रयोग खत्म, लेकिन मैं इस बारे में उत्सुक हूँ, यकीन है कि बाद में मददगार हो सकता है)प्रदर्शन पहले अक्षर केवल

तो यह मेरा एक प्रयास किया गया था:

#socialMedia .Twitter{ 
    display:none; 
} 
#socialMedia .Twitter:first-letter { 
    display: block !important; 
} 

मैं यह जांचने में सक्षम था कि यह इसे प्राप्त नहीं करेगा। प्रश्न क्यों है? और क्या इसके आसपास कुछ काम है?

-EDIT-

= + 7/8 संस्करण सक्षम समाधान हम IE के लिए देख रहे हैं ..

Salut

+0

BTW, यह छद्म तत्व ओ छद्म वर्ग या है? –

+0

आप जो कर रहे हैं वह एक मूल तत्व को छिपाने और अपने बच्चों में से किसी एक को दिखाने की कोशिश करना है, यह काम नहीं करेगा क्योंकि माता-पिता की शैली इसे ओवरराइड करती है। काम करने के लिए मूल तत्व को ब्लॉक स्तर तत्व भी होना चाहिए। 'Div' या 'p' टैग की तरह, या 'a' टैग पर' डिस्प्ले: ब्लॉक 'की तरह। – sachleen

+0

@ सैचलीन रंग, हो सकता है?(पारदर्शी वीएस कस्टम) –

उत्तर

17

संपादित करें: अस्वीकरण: यह टिप्पणियों के अनुसार काम नहीं करता है। कृपया यह जांचने के बिना उपयोग न करें कि यह आपकी आवश्यकताओं के अनुरूप है।

आप :first-letter छद्म तत्व के लिए विनिर्देश को चेक करते हैं, तो आप देखेंगे निम्नलिखित:

: पहला अक्षर छद्म तत्व एक ब्लॉक की पहली पंक्ति के पहले अक्षर का चयन करना होगा , अगर यह किसी अन्य सामग्री (जैसे छवियों या इनलाइन टेबल) से पहले नहीं है, तो इसकी रेखा पर।

यहां महत्वपूर्ण शब्द "ब्लॉक" है।

आप Twitter की कक्षा के साथ <a/> टैग पर छद्म-तत्व का उपयोग करने का प्रयास कर रहे हैं। डिफ़ॉल्ट रूप से, एंकर टैग इनलाइन तत्व होते हैं (ब्लॉक स्तर तत्व नहीं)।

अपने दिए गए मार्कअप के लिए, आपकी समस्या का एक ही समाधान लंगर इस तरह से शैली होगा:

.Twitter { 
    display:block; 
    visibility:hidden; 
} 

.Twitter:first-letter { 
    visibility:visible; 
}​ 

मुझे यकीन है कि आप के लिए वास्तव में क्या जा रहे हैं नहीं कर रहा हूँ, लेकिन यह है कि परीक्षण के लिए काफी अच्छा है । यहां एक डेमो देखें: http://jsfiddle.net/H7jhF/।इस तरह

+1

अरे लेखन के लिए धन्यवाद, यह मेरे लिए एफएफ के नवीनतम संस्करण में काम नहीं कर रहा है ... –

+0

एचएम, यह अजीब बात है। 'दृश्यता: छुपा' पर भाषण कहता है, "तत्व की वंशज दिखाई देगी यदि उनके पास दृश्यता: दृश्यमान" है (http://www.w3.org/TR/CSS2/visufx.html#visibility)। मैं थोड़ा सा देखता हूं और देखता हूं कि क्या मैं इस मुद्दे को समझता हूं। ध्यान रखें कि यह अभी भी एक मूर्खतापूर्ण समाधान है क्योंकि 'दृश्यता' संपत्ति तत्व के बॉक्स को खत्म नहीं करती है। –

+0

यह क्रोम में काम करता है, लेकिन किसी कारण से IE9 नहीं। माइक्रोसॉफ्ट का कहना है कि यह समर्थित है, लेकिन ऐसा लगता है कि यह मामला नहीं है। http://msdn.microsoft.com/en-us/library/hh781508(v=vs.85).aspx –

2

क्या आप कर रहे हैं एक माता पिता के तत्व छिपा और दिखाने की कोशिश की तरह है अपने बच्चों में से एक, यह काम नहीं करेगा क्योंकि माता-पिता की शैली इसे ओवरराइड करती है। काम करने के लिए मूल तत्व को ब्लॉक स्तर तत्व भी होना चाहिए। a टैग पर div या p टैग, या display: block; की तरह।

एचटीएमएल

<div id="socialMedia"> 
    <a class="Twitter">Twitter</a> 
</div> 

सीएसएस

body { 
    background-color:#FFF; 
} 
.Twitter{ 
    display: block; 
    color:#FFF; 
} 
.Twitter:first-letter { 
    color:#000; 
} 
+1

मैं बस इन पंक्तियों के साथ कुछ पोस्ट करने वाला था। यहां एक छोटा डेमो है: http://jsfiddle.net/H7jhF/। इसके अलावा, ओपी के लिए, जब आप सोचते हैं कि काम करना चाहिए तो यह कल्पना देखें (इस मामले में: http://www.w3.org/TR/CSS2/selector.html#first-letter) –

+0

@tjeezy आह हां, मैं दृश्यता को देख रहा था लेकिन यह काम नहीं किया लेकिन मुझे अभी तक डिस्प्ले ब्लॉक नहीं मिला था। आपको इसे उत्तर के रूप में पोस्ट करना चाहिए क्योंकि यह मेरे से बेहतर है। – sachleen

+0

आपका उत्तर अच्छा था, यद्यपि। ओह ठीक है, मैंने भी एक प्रस्तुत किया। –

1

क्यों न सिर्फ जावास्क्रिप्ट का उपयोग करें और एक सरणी में स्ट्रिंग विभाजित है और सरणी में पहला आइटम का उपयोग करें:

यहाँ कुछ रंग का उपयोग है। या charAt()

+0

हां ठीक है, मैं जानना चाहता था कि सीएसएस के साथ चौड़ाई और सामान के बिना यह संभव है .. –

9

कोशिश कुछ:

.Twitter { 
 
    font-size: 0; 
 
} 
 

 
.Twitter:first-letter { 
 
    font-size: 12px; 
 
}
<div class="Twitter">Twitter</div>

हो सकता है कि यह सबसे अच्छा समाधान नहीं है, लेकिन यह काम करता है।

+0

मैंने @ tjeezy's jsfiddle (http://jsfiddle.net/H7jhF/89/) का उपयोग किया और इसे आपके द्वारा प्रस्तावित फ़ॉन्ट आकार का उपयोग करने के लिए संपादित किया और इसे एक इनलाइन-ब्लॉक पर भी सेट किया ताकि अन्य तत्व उसके बाद बह सकें। संक्षेप में मैं फ़ॉन्ट आकार का उपयोग करना पसंद करते हैं। – Robert

2

शुद्ध-सीएसएस उत्तर शेष अक्षरों को छिपाने के लिए दृश्यता और रंगीन चाल का उपयोग करते हैं, लेकिन वे अभी भी मौजूद हैं और लेआउट को प्रभावित करते हैं। यह लेआउट मुद्दों का कारण बन सकता है, उदा। यदि आप तत्व को फ़्लोट करना चाहते हैं और इसके बगल में कुछ डालना चाहते हैं।

मुझे छिपा तत्वों के बिना ऐसा करने का एक मजेदार तरीका मिला। यह चाल पूरे शब्द को लगभग कुछ भी कम करने के लिए है और फिर केवल पहला अक्षर उड़ाएं। यह ओपी की तरह कुछ करने की कोशिश कर रहा था, लेकिन यह काम करता है क्योंकि यह display: none की बजाय निरंतर स्पेक्ट्रम पर काम कर रहा है जो बस इसके अंदर कुछ भी बंद कर देता है। (एक एनालॉग> डिजिटल स्थिति का प्रकार।)

Demo

HTML:

<div>Ding Dong</div> and other stuff 

सीएसएस:

div { 
    font-size: 0.0000016px; 
    float: left; 
} 

div::first-letter { 
    color: red; 
    font-size: 10000000em; 
} 

परिणाम:

http://i.imgur.com/3WeNZ55.png

2

पेज बंद सामग्री को गोली मार और गतिशील सामग्री का उपयोग कर पत्र दिखाने: इस बेला में खेलने पर


.twitter{ 
    text-indent:-9999px; 
    display:block; 
    position:relative; 
} 
.twitter:before,.twitter::before{ 
    content:"T"; 
    position:absolute; 
    width:10px; 
    height:15px; 
    z-index:100; 
    text-indent:9999px; 
} 

:
http://jsfiddle.net/jalbertbowdenii/H7jhF/67/

5

एक और तरीका है color: transparent

.twitter{ 
 
    display: block; 
 
    color: transparent; 
 
} 
 

 
.twitter:first-letter{ 
 
    color: #000; 
 
}
<div id="socialMedia"> 
 
    <a class="twitter">Twitter</a> 
 
</div>
उपयोग करने के लिए

JSFiddle


हालांकि, इस LTE IE8 के लिए काम नहीं करेगा।

संदर्भ:

1

यहाँ मैं क्या करना है:

.Twitter{ 
     display:block; 
     width:1ch; 
     overflow:hidden; 
     white-space: nowrap; 
    } 
संबंधित मुद्दे