2016-03-24 17 views
8

Javascript'te çok yetenekli değilim, lütfen bana eşlik et. Safari 6 ve altı ve üstü android mobil tarayıcılar ve belki de daha fazlası css VH değerini desteklemiyor. DIV # kimliğim veya sınıfım, görünümün yüksekliği değil. sizin için kısayol olarak verilen kod İşteCss değerinin tarayıcı tarafından desteklenip desteklenmediğini nasıl kontrol edebilirim?

Check whether a css value is supported

edilir:

Aşağıda im gerçekten css değeri ile nasıl kullanılacağını emin değilim ben bazı yararlı bilgiler bulunan bir sayfaya bir bağlantı olduğunu, ancak
if('opacity' in document.body.style) { 
    // do stuff 
} 

function isPropertySupported(property{ 
    return property in document.body.style; 
} 

Yukarıda eklediğim bağlantının yorumlarında, bir css VALUE desteklenip desteklenmediğini ve yanıtın "Geri al, sonra değeri geri oku ve tarayıcının kaldığını kontrol et." Şimdi öğrenmeye başladığım daha fazla javascript bilseydim, bu yararlı bir bilgi olurdu.

Aklımda olan budur ama bunu yapmaktan nasıl emin olacağımı gerçekten bilmiyorum. Div # id veya div.class öğesinin vh css değerine sahip olup olmadığını kontrol edin. Css değerinin tarayıcı tarafından desteklenip desteklenmediğini kontrol edin. Destekleniyorsa, yüklemeye devam edin. Desteklenmezse, kimliği veya sınıfı değiştirin. Bir css değer javascript veya jquery kullanarak tarayıcı tarafından desteklenip desteklenmediğini ı nasıl kontrol ederim

:

Yani benim soru Özetle? Yanıtın yönlendirilmesi gerçekten takdir edilmektedir. Yardımlarınız için teşekkürler.

cevap

10

vh değerinin desteklenip desteklenmediğini kontrol etmek istediğinizi varsayalım, özellikle DIV#id'un bunu taşımasına mı gerek yoktur?

function cssPropertyValueSupported(prop, value) { 
    var d = document.createElement('div'); 
    d.style[prop] = value; 
    return d.style[prop] === value; 
} 
cssPropertyValueSupported('width', '1px'); 
// => true 
cssPropertyValueSupported('width', '1vh'); 
// => maybe true, maybe false (true for me) 
cssPropertyValueSupported('width', '1foobar'); 
// => false 
+0

Yardımlarınız için teşekkürler. Bu kod, benim bilgelikle kıyaslandığında oldukça gelişmiş. Sadece tahmin ediyorum ama cssPropertyValueSupported ('width', '100vh') bir if ifadesi ile test etmeliyim? –

+0

Evet, genellikle "if" ifadesi burada en anlamlı olanı yapardı. – Amadan

+0

Bu hile yaptı! Ben kod daha fazla anlayabilseydim diledim ama zamanında olacak! teşekkürler çok amada. –

2

Orada gördüğünüz kodu görüyorum. o

PutStyleHere yazan yere

var styletotest = "PutStyleHere"; 

if (styletotest in document.body.style) 
{ 
    alert("The " + styletotest + " property is supported"); 

} else { 

    alert("The " + styletotest + " property is NOT supported"); 

} 

Basitçe tırnak içinde test etmek istediğiniz css özelliğini yerleştirmek Ve dosyasını yüklediğinizde o eğer belirten bir açılır pencere gösterecektir çalışır ya da değil. Bununla birlikte, bu gereksiz gibi gözükmektedir.

Basitçe Googling:

[mülkiyet] css W3

burada [mülkiyet] Eğer tarayıcı desteği bilgisini bilmek istiyorum özelliktir.

Ben

Opaklık Css W3

aranır ve ardından W3 linke tıklandığında ...aşağı kaydırabilirsiniz ve böyle istediğiniz bilgi ile sayfanın bir bölümünü göreceksiniz:

Browser SUpport

Source

+0

Maalesef, uyarı firefox ve kromda bile desteklenmediğini söylüyor. 'document.body.style' ile doğru bir şey hissetmiyorum. her neyse Amadan'ın önerisini denedim ve işe yaradı. Yine, yardımlarınız için çok teşekkürler! –

+0

Mülkünüzün desteklenmediği belirli stiller için polfill yapmak isteyebileceğiniz durumlarda tamamen gereksizdir. 'object-fit' iyi bir örnektir, şu anda –

1

Ben Modernizr kullanmayı öneririm.

Modernizr, ziyaretçinizin tarayıcısının hangi HTML5 ve CSS3 özelliklerini desteklediğini tespit eden bir JavaScript kütüphanesidir. Özellik desteğini tespit ederken, geliştiricilerin bazı yeni teknolojiler için test etmelerine ve daha sonra bunları desteklemeyen tarayıcılar için yedeklemeler sağlamasına olanak tanır.

Bazı yararlı linkler:

+5

Bir CSS özelliğinin varlığını kontrol etmek için bir kütüphane kurun? – Rob

+0

@Rob Yorum için teşekkürler. OP'nin sadece bir mülk olduğunu söyledi, ancak gerçek projede daha fazla kontrol etmesi gerekiyor. Muhtemelen tamamen yeni bir kütüphane yazmak istemezsiniz. Modernizr zaten oldukça özelleştirilebilir. Hem yeni başlayanlar hem de uzmanlar için kullanımı kolaydır. – Stickers

+1

Bu iyi bir seçenek gibi gözüküyor, ancak kontrol edilmesi gereken tek bir css değerine ihtiyacım var. Eminim gelecekteki projeler için modernize bakacağım. Teşekkürler! –

İlgili konular