search
HomeWeb Front-endCSS TutorialHow to detect css properties

How to detect css features

If we want to detect whether a css attribute supports

var dom = document.createElement('p');
if ('textShadow' in dom.style) {
    alert('支持textShadow属性')
}
else {
    alert('不支持textShadow属性')
}

If we want to detect whether the css3 attribute supports a certain value

var dom = document.createElement('p');

dom.style.backgroundImage = 'linear-gradient(red, tan)';

if (dom.style.backgroundImage) {
    alert('支持该属性值');
}

else {
    alert('浏览器不支持该属性值')
}

How to dynamically assign values A css3 effect and supports all major browsers

function iSlider() {};

/**
 * @returns {String}
 * @private
 */
iSlider.TRANSITION_END_EVENT = null;

iSlider.BROWSER_PREFIX = null;

(function () {
    var e = document.createElement('fakeElement');
    [
        ['WebkitTransition', 'webkitTransitionEnd', 'webkit'],
        ['transition', 'transitionend', null],
        ['MozTransition', 'transitionend', 'moz'],
        ['OTransition', 'oTransitionEnd', 'o']
    ].some(function (t) {
        if (e.style[t[0]] !== undefined) {
            iSlider.TRANSITION_END_EVENT = t[1];
            iSlider.BROWSER_PREFIX = t[2];
            return true;
        }
    });
})();

/**
 * @param {String} prop
 * @param {String} value
 * @returns {String}
 * @public
 */
iSlider.styleProp = function (prop, isDP) {
    if (iSlider.BROWSER_PREFIX) {
        if (!!isDP) {
            return iSlider.BROWSER_PREFIX + IU(prop);
        } else {
            return '-' + iSlider.BROWSER_PREFIX + '-' + prop;
        }
    } else {
        return prop;
    }
};

/**
 * @param {String} prop
 * @param {HTMLElement} dom
 * @param {String} value
 * @public
 */
iSlider.setStyle = function (dom, prop, value) {
    dom.style[iSlider.styleProp(prop, 1)] = value;
};

/**
 * @type {Object}
 *
 * @param {HTMLElement} dom The wrapper 
  •  element  * @param {String} axis Animate direction  * @param {Number} scale Outer wrapper  * @param {Number} i Wrapper's index  * @param {Number} offset Move distance  * @protected  */ iSlider._animateFuncs = {     normal: (function () {         function normal(dom, axis, scale, i, offset) {             iSlider.setStyle(dom, 'transform', 'translateZ(0) translate' + axis + '(' + (offset + scale * (i - 1)) + 'px)');         }         normal.effect = iSlider.styleProp('transform');         return normal;     })() };

    Information

    css secret

    iSlider line 250

    How to detect css Features

    If we want to detect whether a css attribute supports a certain value

    var dom = document.createElement('p');
    if ('textShadow' in dom.style) {
        alert('支持textShadow属性')
    }
    else {
        alert('不支持textShadow属性')
    }

    If we want to detect whether the css3 attribute supports a certain value

    var dom = document.createElement('p');
    
    dom.style.backgroundImage = 'linear-gradient(red, tan)';
    
    if (dom.style.backgroundImage) {
        alert('支持该属性值');
    }
    
    else {
        alert('浏览器不支持该属性值')
    }

    How to dynamically assign a value A css3 effect, and supports all mainstream browsers

    function iSlider() {};
    
    /**
     * @returns {String}
     * @private
     */
    iSlider.TRANSITION_END_EVENT = null;
    
    iSlider.BROWSER_PREFIX = null;
    
    (function () {
        var e = document.createElement('fakeElement');
        [
            ['WebkitTransition', 'webkitTransitionEnd', 'webkit'],
            ['transition', 'transitionend', null],
            ['MozTransition', 'transitionend', 'moz'],
            ['OTransition', 'oTransitionEnd', 'o']
        ].some(function (t) {
            if (e.style[t[0]] !== undefined) {
                iSlider.TRANSITION_END_EVENT = t[1];
                iSlider.BROWSER_PREFIX = t[2];
                return true;
            }
        });
    })();
    
    /**
     * @param {String} prop
     * @param {String} value
     * @returns {String}
     * @public
     */
    iSlider.styleProp = function (prop, isDP) {
        if (iSlider.BROWSER_PREFIX) {
            if (!!isDP) {
                return iSlider.BROWSER_PREFIX + IU(prop);
            } else {
                return '-' + iSlider.BROWSER_PREFIX + '-' + prop;
            }
        } else {
            return prop;
        }
    };
    
    /**
     * @param {String} prop
     * @param {HTMLElement} dom
     * @param {String} value
     * @public
     */
    iSlider.setStyle = function (dom, prop, value) {
        dom.style[iSlider.styleProp(prop, 1)] = value;
    };
    
    /**
     * @type {Object}
     *
     * @param {HTMLElement} dom The wrapper 
  •  element  * @param {String} axis Animate direction  * @param {Number} scale Outer wrapper  * @param {Number} i Wrapper's index  * @param {Number} offset Move distance  * @protected  */ iSlider._animateFuncs = {     normal: (function () {         function normal(dom, axis, scale, i, offset) {             iSlider.setStyle(dom, 'transform', 'translateZ(0) translate' + axis + '(' + (offset + scale * (i - 1)) + 'px)');         }         normal.effect = iSlider.styleProp('transform');         return normal;     })() };

    For more related articles on how to detect css features, please pay attention to the PHP Chinese website!

  • Statement
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
    Two Images and an API: Everything We Need for Recoloring ProductsTwo Images and an API: Everything We Need for Recoloring ProductsApr 15, 2025 am 11:27 AM

    I recently found a solution to dynamically update the color of any product image. So with just one of a product, we can colorize it in different ways to show

    Weekly Platform News: Impact of Third-Party Code, Passive Mixed Content, Countries with the Slowest ConnectionsWeekly Platform News: Impact of Third-Party Code, Passive Mixed Content, Countries with the Slowest ConnectionsApr 15, 2025 am 11:19 AM

    In this week's roundup, Lighthouse sheds light on third-party scripts, insecure resources will get blocked on secure sites, and many country connection speeds

    Options for Hosting Your Own Non-JavaScript-Based AnalyticsOptions for Hosting Your Own Non-JavaScript-Based AnalyticsApr 15, 2025 am 11:09 AM

    There are loads of analytics platforms to help you track visitor and usage data on your sites. Perhaps most notably Google Analytics, which is widely used

    It's All In the Head: Managing the Document Head of a React Powered Site With React HelmetIt's All In the Head: Managing the Document Head of a React Powered Site With React HelmetApr 15, 2025 am 11:01 AM

    The document head might not be the most glamorous part of a website, but what goes into it is arguably just as important to the success of your website as its

    What is super() in JavaScript?What is super() in JavaScript?Apr 15, 2025 am 10:59 AM

    What's happening when you see some JavaScript that calls super()?.In a child class, you use super() to call its parent’s constructor and super. to access its

    Comparing the Different Types of Native JavaScript PopupsComparing the Different Types of Native JavaScript PopupsApr 15, 2025 am 10:48 AM

    JavaScript has a variety of built-in popup APIs that display special UI for user interaction. Famously:

    Why Are Accessible Websites so Hard to Build?Why Are Accessible Websites so Hard to Build?Apr 15, 2025 am 10:45 AM

    I was chatting with some front-end folks the other day about why so many companies struggle at making accessible websites. Why are accessible websites so hard

    The `hidden` Attribute is Visibly WeakThe `hidden` Attribute is Visibly WeakApr 15, 2025 am 10:43 AM

    There is an HTML attribute that does exactly what you think it should do:

    See all articles

    Hot AI Tools

    Undresser.AI Undress

    Undresser.AI Undress

    AI-powered app for creating realistic nude photos

    AI Clothes Remover

    AI Clothes Remover

    Online AI tool for removing clothes from photos.

    Undress AI Tool

    Undress AI Tool

    Undress images for free

    Clothoff.io

    Clothoff.io

    AI clothes remover

    AI Hentai Generator

    AI Hentai Generator

    Generate AI Hentai for free.

    Hot Article

    R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
    4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Best Graphic Settings
    4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. How to Fix Audio if You Can't Hear Anyone
    4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Chat Commands and How to Use Them
    4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

    Hot Tools

    Atom editor mac version download

    Atom editor mac version download

    The most popular open source editor

    Zend Studio 13.0.1

    Zend Studio 13.0.1

    Powerful PHP integrated development environment

    SublimeText3 Chinese version

    SublimeText3 Chinese version

    Chinese version, very easy to use

    PhpStorm Mac version

    PhpStorm Mac version

    The latest (2018.2.1) professional PHP integrated development tool

    SublimeText3 English version

    SublimeText3 English version

    Recommended: Win version, supports code prompts!