2012-02-21 3 views
24

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

: यह कैसे मूल्य सीएसएस में प्रस्तुत किया है यदि संभव हो तो, कुछ भी नहीं मिल सकता है, हालांकि तो मैं अपनी सांस :) पकड़े नहीं कर रहा हूँ के लिए

<!DOCTYPE html> 
<html> 
<head> 
    <style type="text/css"> 
     .dollars:before { content:'$'; } 
    </style> 
</head> 
<body> 
    Pure CSS: <span class="dollars">25153.3</span> 
    <br /> 
    Ideal format: <span>$25,153.30</span> 
</body> 
</html> 

उदाहरण के रूप में बाहर आता है कि अच्छा होगा शुद्ध सीएसएस: $ 25153,3

आदर्श प्रारूप: $ 25,153.30

इसके अलावा मुझे पता है कि यह जावास्क्रिप्ट का उपयोग करते हुए काफी तुच्छ है हूँ - http://css-tricks.com/snippets/javascript/format-currency/

+0

नहीं। शुद्ध सीएसएस के साथ नहीं। – Scott

+0

http://stackoverflow.com/questions/8677805/formatting-numbers-decimal-places-thousands-separators-etc-with-css – BoltClock

उत्तर

4

यदि आप सीएसएस में संख्या स्वरूपण के बारे में पूछ रहे हैं (यानी, एक स्ट्रिंग से संख्या को पार्स करना और फिर हजारों विभाजक, दशमलव विभाजक, निश्चित दशमलव अंक संख्या आदि के साथ स्वरूपण करना), तो नहीं, सीएसएस में यह असंभव है , और यह सीएसएस के लिए डिजाइन नहीं किया गया था।

यदि आप कोई स्वरूपण करना चाहते हैं, तो आप XSLT का उपयोग करना बेहतर होगा। उदाहरण के लिए:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

    <xsl:template match="span[@class='dollars']"> 
     <span> 
      <xsl:text>$</xsl:text> 
      <xsl:value-of select="format-number(current(), '###,###.00')"/> 
     </span> 
    </xsl:template> 

    <xsl:template match="@* | node()"> 
     <xsl:copy> 
      <xsl:apply-templates select="@* | node()"/> 
     </xsl:copy> 
    </xsl:template> 
</xsl:stylesheet> 
+58

"के संभावित डुप्लिकेट" और यह सीएसएस के लिए डिज़ाइन नहीं किया गया था "... मैं चाहता हूं आरएसएस के लिए डिजाइन किया गया था के बारे में आरक्षित निर्णय। ब्राउज़र में सामान्य कार्यक्षमता को धक्का देना बिल्कुल सीएसएस जैसी तकनीकों के लिए डिज़ाइन किया गया था। एक समय था जब "स्क्रीन आकार का जवाब" था "कुछ सीएसएस के लिए डिजाइन नहीं किया गया था" इसके अलावा: http://wiki.csswg.org/ideas/content-formatting – umassthrower

+4

आह - तो * यह * एक्सएसएलटी के लिए क्या डिजाइन किया गया था; -) –

+12

"एक संख्या स्वरूपण" प्रस्तुति का एक कार्य है, और यह * बिल्कुल * क्या सीएसएस डिजाइन किया गया था। –

11

मुद्रा प्रारूप सीएसएस और जो अल्पविराम के जोड़ने के लिए संख्या की पार्स के लिए आवश्यक है जावास्क्रिप्ट का एक सा के साथ प्राप्त किया जा सकता है। एक सीएसएस कक्षा अतिरिक्त स्टाइल को नकारात्मक (लाल) या मुद्रा चिह्न (यानी डॉलर डॉलर चिह्न) जोड़ती है। दृष्टिकोण एक इस प्रकार है:

1) संख्या (के लिए मूल्य कन्वर्ट) स्थान के आधार पर अल्पविराम के

Number(value).toLocaleString('en'); 

2) एक वर्ग अगर यह होता है नकारात्मक या सकारात्मक मूल्य निर्धारित करने के लिए जोड़े कहते हैं (यानी लाल रंग)

.enMoney::before { 
    content:"$"; 
} 
.negMoney { 
    color:red; 
} 

नमूना कोड और सीएसएस के साथ यहाँ और अधिक विस्तार देखें:

http://www.ozkary.com/2014/04/format-currency-with-javascript-and-css.html

+0

मध्य हज़ार सेपरेटर्स को प्रभावित नहीं कर सकता है, लेकिन लक्ष्य के पहले और बाद में पर्याप्त है ... – davidtaubmann

0

खैर, यह अपने स्वयं के उपयोग के मामले दुर्भाग्य से फिट नहीं है, और यह काफी स्पष्ट है, लेकिन आप फिर, एक -999 से 999.

.currency:before{ content:'$'; } 
 
.currency:after{ content: '.00'; }
<span class="currency">789</span>

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

.currency li:before{ content: ' ,';} 
 
.currency li:first-child:before{ content:'$' !important; } 
 
.currency *{ display: inline-block; } 
 
.currency, .currency > *{ display: inline-block; } 
 
.currency:after{ content: '.00'; }
<ul class="currency"><li>123</li><li>456</li><li>789</li></ul> 
 
<ul class="currency"><li>456</li><li>789</li></ul> 
 
<ul class="currency"><li>789</li></ul>

व्यर्थ प्रयास में एक भी गहरे गोता के लिए, आप <ul> ऊपर एक

<style> .currency:after{ content: '.00'; } </style> 

पहले जोड़ें सकता है, सीएसएस में दशमलव मान बदलने के लिए अपनी स्क्रिप्ट की इजाजत दी, lol

फिर भी, यदि आप जावास्क्रिप्ट को गुफा और उपयोग करना चाहते थे, तो सीएसएस वास्तव में कुछ हद तक उपयोगी हो सकता है। आप एक सादे int या double (किसी भी परिशुद्धता) को आउटपुट कर सकते हैं और बस जेएस को <li> एस में तोड़ दें।

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

  • कोई संबंधित समस्या नहीं^_^