IE छद्म तत्व CSS को पार करना?


81

मैं IE पर काम करने के लिए कुछ छद्म तत्वों को प्राप्त करने की कोशिश कर रहा हूं, लेकिन यह मुझे नहीं होने देता है।

यह CSS को पार करता है और कार्य करता है जैसे कि यह वहाँ नहीं है, जो थोड़े मुझे उत्तेजित करता है।

किसी को पता चल जाएगा कि मैं क्या गलत कर रहा हूं?

.newbutton {
  border-radius: 50%;
  width: 74px;
  height: 74px;
  position: relative;
  background-color: black;
  margin: 60px 0px 25px 17px;
  overflow: visible;
}

.newbutton:before {
  content: "f";
  width: 80px;
  height: 80px;
  position: absolute;
  border-radius: 50%;
  z-index: -1;
  top: 37px;
  left: 37px;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  -webkit-animation-name: fadecolor;
  -webkit-animation-duration: 5s;
  -webkit-animation-iteration-count: infinite;
  animation-name: fadecolor;
  animation-duration: 5s;
  animation-iteration-count: infinite;
}

.newbutton:after {
  content: "";
  width: 80px;
  height: 80px;
  position: absolute;
  border-radius: 50%;
  z-index: -2;
  top: -3px;
  left: -3px;
  background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#01BAE8), to(#0183D5));
}
<div class="starttour">
  <div class="newbutton headerbutton">
    <span class="iconhead icon-02-arrow-icon"></span>
  </div>
  <p>START TOUR</p>
</div>

क्या होता है इसका स्क्रीनशॉट:


11
प्रफुल्लित करने वाला, यह -webkit-बिट्स को पार नहीं करता है ।
BoltClock

5
Pfff, मुझे इसके बारे में बताओ। यह मुझे उद्देश्य से ट्रोल कर रहा है, मैं शर्त लगाता हूं। बेवकूफ IE।
काइरोवा

1
वैसे भी, IE के किस संस्करण में आप परीक्षण कर रहे हैं, और यह आपको दस्तावेज़ मोड / ब्राउज़र मोड के बारे में क्या बताता है? मैं वास्तव में कभी नहीं समझ पाया कि क्यों IE इस तरह से अभिनय करता है लेकिन उम्मीद है कि वे चीजें कुछ सुराग प्रदान करेंगी।
BoltClock

1
IE11। मैं दस्तावेज़ मोड में IE9, IE10 और एज की कोशिश की, कोई फायदा नहीं हुआ, दुर्भाग्य से।
काइरोवा

जवाबों:


60

यह एक ज्ञात मुद्दा है, लेकिन शैलियों को वास्तव में लागू किया जा रहा है। डेवलपर टूल को लगता है कि छद्म-तत्व शैलियों को मूल-तत्त्व शैलियों द्वारा ओवरराइड किया जा रहा है। यह आसानी से मूल-तत्व की कम्प्यूटेड शैली का निरीक्षण करके और F12 उपकरण (जो मानते हैं कि एफसीसी उपकरण मानते हैं) का प्रदर्शन करके किया जाता है :

यहाँ छवि विवरण दर्ज करें

फिर, हालांकि, ये शैलियाँ वास्तव में सही तत्वों पर लागू की जा रही हैं - भले ही डेवलपर उपकरण विश्वास या सुझाव दें। आप इसकी पुष्टि अभिभावक-तत्व और दो छद्म तत्वों के ऊपर चलकर और उनकी गणना की गई ऊँचाई से कर सकते हैं:

(function () {

    var el = document.querySelector( ".newbutton" );

    [ "", "::before", "::after" ].forEach(function ( e ) {
        // Output: 74px, 80px, 80px
        console.log( window.getComputedStyle( el, e ).height );
    });

}());

मैं यह देखने के लिए जाँच करूंगा कि क्या हमारे पास पहले से ही इस बग को ट्रैक करने वाला एक आंतरिक मुद्दा है, और इस प्रश्न को इसमें जोड़ें। आम तौर पर, हम इस मुद्दे को ध्यान देने की कोशिश करते हैं कि वास्तविक दुनिया में इस समस्या की मात्रा आनुपातिक है। तो टिकट पर एक नए जोड़ के रूप में आपके प्रश्न के होने से हमें एक तय समय आगे बढ़ने में मदद मिल सकती है :)


15
मैं IE11 में एक ही मुद्दा देख रहा हूं लेकिन छद्म तत्व शैलियों को लागू नहीं किया जा रहा है। यहां तक ​​कि जब गणना किए गए पैतृक ओवरराइड्स को कम्प्यूटेड पैनल में बंद करते हैं, तो छद्म तत्व शैलियों को लागू नहीं किया जाता है। प्रस्तुत किए जा रहे पूरे ब्लॉक का एकमात्र भाग सामग्री नियम है, बाकी सब कुछ अनदेखा है।
gps03

कम्प्यूटेड में जाने से मैं एक संपत्ति पर क्लिक करने में सक्षम था और यह पाया कि यह ओवरराइड हो रहा था। मैं एक वें के लिए पृष्ठभूमि को ओवररोड करता हूं और कैरेट आइकन सॉर्टिंग (डेटाटैबल्स) के लिए नहीं दिखा रहा था। धन्यवाद!
एक्सज़ाइल

::afterमेरे कोड में सभी छद्म शैलियाँ IE11 और एज में पार हो गईं। सभी नियम वास्तव में लागू किए जा रहे हैं :-) सभी लेकिन एक cursor: pointer:। यह एक मोबाइल हैमबर्गर मेनू के लिए है, इसलिए मैं सूचक को जाने दे सकता हूं (जैसा कि मुझे उस स्क्रीन स्क्रीन पर बहुत अधिक मंडराने की उम्मीद नहीं है)।
माइकल बेंजामिन

@ मिचेल_ यह एक ज्ञात बग है; मेरा मानना ​​है कि छद्म तत्व शैलियों को लगता है कि वे मूल तत्व शैलियों के साथ संघर्ष करते हैं। तो छद्म तत्व पर सेट कुछ भी, जो कि माता-पिता पर भी सेट है, को पार किया जाएगा।
सैम्पसन

हाय, तो कौन सा उपाय है? मैं IE11 11.321.14393.0 का उपयोग कर रहा हूं और IE ने मेरे छद्म वर्ग को ओवरराइड किया ...
हज़लो 8

42

मैं यह एक ही मुद्दा था! आपको अपने :beforeऔर :afterछद्म तत्वों को एक displayसंपत्ति देनी होगी ।

निम्नलिखित को :beforeऔर जोड़ें :after

display: block; 

इससे आपकी समस्या ठीक होनी चाहिए। :)


1
वर्तमान में आपके द्वारा सेट की गई संपत्तियां साझा करें। मैं आपको अनुमान लगाने जा रहा हूं कि या तो आपके पास कंटेंट प्रॉपर्टी सेट नहीं है या आप उन तत्वों पर छद्म तत्व सेट करने की कोशिश कर रहे हैं जो न तो छद्म के लिए अनुमति देते हैं
फ्रेडी

1
यह मेरे लिए बात तय हो गई! देव उपकरण में अभी भी गुणों को पार किया गया है, लेकिन तत्व अब ठीक से दिखाई देता है।
निक्की इरविन रामिरेज़

बहुत धन्यवाद! सबसे पहले मैंने ऐसा किया, इससे कोई फायदा नहीं हुआ, लेकिन फिर मैंने देखा कि मैंने लेफ्ट प्रॉपर्टी को सेट नहीं किया है। तो, प्रदर्शन: ब्लॉक; और बाएं: 0; आईई को चंगा किया!
मैक्स कर्टज

1
एक और दिन, एक और IE11 चाल! रुको ... यह 2020 पहले से ही है ...
न्यूरोट्रांसमीटर

2

ऊपर दिए गए उत्तर पर जोड़ने के लिए। मैंने प्रदर्शन की कोशिश की: ब्लॉक लेकिन मेरा मुद्दा यह था कि पृष्ठभूमि की छवि खराब हो रही थी। इसके बजाय मैं नीचे इस्तेमाल किया:

display: inline-block;

यह मेरे भीतर विकृत छवियों के साथ मेरे मुद्दे को तय करता है: पहले: के बाद


2

जैसा कि मैं सामग्री फ़ॉन्ट और IE11 के साथ एक ही समस्या थी और उपरोक्त समाधान के साथ इसे हल नहीं कर सका, मैंने आगे देखा:

सामग्री डिज़ाइन आइकन के प्रलेखन का उपयोग करने का उल्लेख है

<i class="material-icons">&#xE87C;</i>

ब्राउज़रों के लिए लिगिंग्स का समर्थन नहीं करना। प्रत्येक आइटम के कोडपॉइंट यहां सूचीबद्ध हैं: https://github.com/google/material-design-icons/blob/master/iconfont/codepoints

इसके साथ समस्या: तत्वों के बाद है कि content-Tag में HTML को सादे पाठ के रूप में प्रस्तुत किया गया है जो & # x .. दिखा रहा है, इसलिए आपको निम्न के रूप में \ एस्केप का उपयोग करना होगा:

content:  "\e5c5";

यूनिकोड चरित्र का उपयोग करने से मेरी समस्या ठीक हो गई। लेकिन यह निश्चित रूप से ध्यान देने योग्य है कि छद्म तत्व शैलियों को वास्तव में IE11 में लागू किया जाता है, भले ही ऐसा लगता है कि वे पार किए गए हैं। इस उत्तर के साथ स्वीकृत उत्तर ने मुझे वह देखने में मदद की।
samnau

0

मैं यह एक ही मुद्दा था! आपको अपने छद्म तत्व के माता-पिता को एक overflow : visibleसंपत्ति देनी होगी ।


-1

इस लिंक को देखें " http://stackoverflow.com/questions/2587669/can-i-use-the-after-pseudo-element-on-an-input-field ", इस लिंक से उद्धृत

: इससे पहले और: किसी भी तत्व पर इंटरनेट एक्सप्लोरर 7 और उससे कम में समर्थित नहीं हैं।

यह बदले हुए तत्वों जैसे फॉर्म एलिमेंट्स (इनपुट्स) और इमेज एलिमेंट्स पर इस्तेमाल करने के लिए भी नहीं है।

दूसरे शब्दों में यह शुद्ध CSS के साथ असंभव है।

/ * * ट्रिक यहाँ है: * यह चयनकर्ता कहता है "इनपुट टेक्स्ट (+) के बाद पहला डोम एलिमेंट लें और उसके कंटेंट से पहले सेट करें * वैल्यू (: इससे पहले)। * /

input#myTextField + *:before {
       content: "👍";
    } 

JQuery के साथ काम करने के लिए उपलब्ध है।
पेज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.