2013-07-03 10 views
15

मैं प्रथम अक्षर को बड़ा करना चाहते हैं में सीएसएस का उपयोग कर फायदा उठाने में केवल और अन्य सीएसएस का उपयोग करकैसे पहले अक्षर केवल प्रत्येक मामले

स्ट्रिंग छोटे होना चाहिए:

SOMETHING BETTER 
sOMETHING bETTER 
Something better 

लेकिन परिणाम

होना चाहिए
Something Better 

क्या यह सीएसएस का उपयोग कर संभव है? पहले अक्षर को कैपिटल करने के लिए मैं

text-transform: capitalize; 

लेकिन प्रत्येक मामले में पूंजीकरण करने में सक्षम नहीं हूं। "मैं सीएसएस का उपयोग करना चाहता हूं क्योंकि मेरे आवेदन में यह हर जगह हार्ड कोड लिखा गया है लेकिन एक वर्ग को हर जगह बुलाया गया है।"

+1

अकेले सीएसएस के साथ संभव नहीं है। यहां तक ​​कि 'टेक्स्ट-ट्रांसफॉर्म: लोअरकेस' को 'टेक्स्ट-ट्रांसफॉर्म: कैपिटलनाइज' में कैस्केड करने का प्रयास भी काम नहीं करेगा। यदि आप जावास्क्रिप्ट का उपयोग करना चाहते हैं, तो इसके लिए यहां एक उत्तर का लिंक दिया गया है: http://stackoverflow.com/questions/196972/convert-string-to-title-case-with-javascript – kalley

+1

PHP में - 'ucwords ("UPPERCASE यहां शब्द "); ', और नतीजा:' अपरकेस वर्ड यहाँ" '- http: //www.php।नेट/मैनुअल/en/function.ucwords.php आप केवल सीएसएस का उपयोग करके ऐसा नहीं कर सकते हैं, क्योंकि आप 'लोअरकेस' नहीं कर सकते हैं और फिर 'पूंजीकरण' कर सकते हैं। –

+0

संभावित डुप्लिकेट [सीएसएस में पहला अक्षर अपरकेस बनाएं] (http://stackoverflow.com/questions/5577364/make-the-first-character-uppercase-in-css) – yoeriboven

उत्तर

7

अकेले सीएसएस के साथ यह संभव नहीं है लेकिन उदाहरण के लिए आप इसे जावास्क्रिप्ट या PHP के साथ कर सकते हैं।

में पीएचपी

ucwords() 

और में जावास्क्रिप्ट

function toTitleCase(str){ 
    return str.replace(/\w\S*/g, function(txt){ 
     return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();}); 
} 

से Convert string to title case with JavaScript

36

निकाले आप :first-letter छद्म तत्व का उपयोग करने में सक्षम होना चाहिए:

.fl { 
display: inline-block; 
} 

.fl:first-letter { 
text-transform:uppercase; 
} 

<p> 
<span class="fl">something</span> <span class="fl">better</span> 
</p> 

पैदावार:

कुछ बेहतर

+2

यह सही है, लेकिन इसका मतलब है कि प्रत्येक शब्द को 'स्पैन' में लपेटा जाना चाहिए, जो बदसूरत – naththedeveloper

+6

है, यह बदसूरत है, लेकिन यह सीएसएस का उपयोग कर रहा है :) – mzmm56

+0

कुछ [जावास्क्रिप्ट जादू] जोड़ा गया है (http://stackoverflow.com/ए/17451072/561731)^_^@ mzmm56 – Neal

6

आप this answer का एक संयोजन और कुछ जावास्क्रिप्ट (jQuery का उपयोग) की कोशिश कर सकते

HTML:

<div class='capitalize'> 
    SOMETHING BETTER 
    SOMETHING BETTER 
    SOMETHING BETTER 
</div> 

JavaScript:

$('.capitalize').each(function(){ 
    var text = this.innerText; 
    var words = text.split(" "); 
    var spans = []; 
    var _this = $(this); 
    this.innerHTML = ""; 
    words.forEach(function(word, index){ 
     _this.append($('<span>', {text: word})); 
    }); 
}); 

सीएसएस:

.capitalize { 
    text-transform: lowercase; 
} 

.capitalize span { 
    display: inline-block; 
    padding-right: 1em 
} 

.capitalize span:first-letter { 
    text-transform: uppercase !important; 
} 

डेमो: सीएसएस में पहली अक्षर का छद्म तत्व: http://jsfiddle.net/maniator/ZHhqj/

+0

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

2

आप क्यों नहीं बस का उपयोग न?

h2:first-letter{ 
text-transform: uppercase; 

} 

h2{ 

*your general code for h2 goes here;* 

} 
0

हाँ, सीएसएस यहाँ कोई मदद नहीं है। जावास्क्रिप्ट की दुनिया में आपका स्वागत है, जहां कुछ भी संभव है।

window.onload = function(){ 
    var elements = document.getElementsByClassName("each-word") 
    for (var i=0; i<elements.length; i++){ 
    elements[i].innerHTML = elements[i].innerHTML.replace(/\\b([a-z])([a-z]+)?\\b/gim, "<span class='first-letter'>$1</span>$2") 
    } 
} 



    .first-letter { 
    color: red; 
    } 



<p class="each-word">First letter of every word is now red!</p> 
संबंधित मुद्दे