2012-08-28 5 views
7

मैं एक रिपोर्ट कर रहा हूं और रिपोर्ट के अंदर मुझे विभिन्न प्रदाताओं से ईमेल प्रस्तुत करना है, यह ईमेल अपने स्वयं के सीएसएस (आमतौर पर इनलाइन सीएसएस के साथ आते हैं लेकिन कभी-कभी वे सामान्य शैलियों को लागू करते हैं) के साथ आते हैं। मैं आम तौर पर सीएसएस को समाहित करने के लिए iframes का उपयोग करता हूं, इसलिए यह मेरा टूट नहीं जाता है लेकिन अब मैं इसका उपयोग नहीं कर सकता।सीएसएस

क्या आईएसआरम्स के उपयोग के बिना सीएसएस को समाहित करने का कोई तरीका है?

<html> 
    <head> 
    <style> 
     // I enclose it to content so it doesn't override the email css 
     #my_content table, #my_content p { 
     color: black; 
     } 
    </style> 
    </head> 
    <body> 
    <div id='my_content'> 
     ... some stuff ... 
    <div id='email'> 
     <html> 
      <head> 
      <style> 
       table { 
       margin-left: 100cm; // screws up all my tables 
       } 
       .... some styles that should only apply inside the email div ... 
      </style> 
      </head> 
      <body> 
      .... email content ... 
      </body> 
     </html> 
     </div> 
    </div> 
    </body> 
</html> 

मैं एचटीएमएल संरचना निकाल सकते हैं और बस क्या शरीर पर है मिल लेकिन फिर नहीं सब मेरे ईमेल एकदम सही ढंग से दिखेगा:

यहाँ समस्या मैं कर रहा हूँ का एक उदाहरण है। इसके अलावा एचटीएमएल मान्य होना चाहिए ताकि कोई सुझाव बहुत अच्छा होगा!

+0

तो आप कक्षाओं का उपयोग नहीं करते हैं? – ChaosPandion

+2

हां! 'Scoped' विशेषता का प्रयोग करें। मुझे विश्वास नहीं है कि यह अभी तक कहीं भी समर्थित है, हालांकि। (ठीक है, आप इसे क्रोम: // फ्लैग' में Google क्रोम में बदल सकते हैं।) – Ryan

+0

मैं कक्षाओं का उपयोग करता हूं, मुझे इस प्रश्न में बेहतर तरीके से व्याख्या करने दें कि ईमेल मेरे सीएसएस – Hassek

उत्तर

1

आप अपने स्वयं के वर्ग नामों के साथ टकराव के लिए ई-मेल सीएसएस भाग की जांच करने का प्रयास कर सकते हैं। मैं सिर्फ इस पोस्ट जो आप के लिए उपयोगी हो सकता है पाया: Listing known CSS classes using Javascript

+2

एक बार ऐसा करने के बाद, उसे क्या करना चाहिए? –

+0

मैं देखता हूं। वह उन टकरावों को थोड़ा संशोधित पहचानकर्ताओं के साथ बदलने की कोशिश कर सकता था। लेकिन यह केवल इतना आसान नहीं होगा कि केवल सीएसएस का उपयोग केवल हाइक जैसा ही किया जाए। मार्ट – Andre

5

आप अपने सीएसएस चयनकर्ताओं पर #email पहले जोड़ें कर सकते हैं, जिससे उन्हें केवल अपने div पर लागू होते हैं।

उदाहरण के लिए, बदलने

.classname { display: block }

#email .classname { display: block }

को संपादित करें: आप ई-मेल सीएसएस पर कोई नियंत्रण नहीं है, तो arxanas के रूप में पता चलता है, LESS उपयोग करने पर विचार। कम एक सीएसएस प्रीप्रोसेसर है जो सीएसएस चयनकर्ताओं के घोंसले की अनुमति देता है। आप less.js शामिल है, तो आप कुछ इस तरह कर सकते हैं:

#email { 
    CSS goes here 
} 

less.js इस पार्स और यह सीएसएस में बदल जाएगा।

+0

मुझे लगता है कि मुद्दा यह है कि शैलियों को लोड किया जा रहा है और उनके पास उनका कोई नियंत्रण नहीं है। –

+0

स्पष्टीकरण के लिए धन्यवाद arxanas, मैंने इस दृश्य के लिए एक सुझाव जोड़ा ओ। –

+0

हाँ, मेरे पास सीएसएस पर कोई नियंत्रण नहीं है क्योंकि ईमेल – Hassek