setting a whole style string to an element from javascript (not individual style parameters)

前端 未结 3 739
抹茶落季
抹茶落季 2020-12-09 08:06

I need to set an arbitrary style to a span via javascript.

I know I can do things like: span.style.height=\"250px\"; But I need to be able to insert a r

相关标签:
3条回答
  • 2020-12-09 08:32

    How about the .style.cssText property? Here's Microsoft's explanation.

    Throw it the styles you'd like to apply like so:

    document.getElementById('myEl').style.cssText = 'float:left;margin-top:75px;';
    

    As for browser support, although it was IE-proprietary I believe it's well-supported (works in the IEs, FF3, and Safari 3.2 WIN at least).

    0 讨论(0)
  • 2020-12-09 08:53

    There is element.setAttribute('style', '...');, but it fails in IE.

    There is a solution, but I haven't tried.

    0 讨论(0)
  • 2020-12-09 08:54

    If you want it to be lightweight, create a function such as:

    function setStyles(element, styles)
    {
        for(var s in styles) {
            element.style[s] = styles[s];
        }
    }
    

    Then you would pass the styles in as an object literal:

    setStyles(element, {float: "left",
                        textDecoration: "underline",
                        cursor: "pointer",
                        color: "blue"});
    

    Note that the style references passed in have to follow the naming from a JavaScript standpoint, since the function simply changes the styles by accessing the element's style object through JavaScript.

    If you must take your style input from a string then you could quite easily parse it and create the object literal.

    0 讨论(0)
提交回复
热议问题