开发者

jQuery Creating a style element on fly

I'm want to create a style element after loading of page ( say about 2-3 sec after page loaded )

html

<html>
<body>
   <div id="div1" >
      <div id= "div2" > some text goes here </div>
   </div>
</body>
</html>

javascript

$(function () {

    var style = $('<style type="text/css" />').appendTo('head');
    style.html('body{ background:#000; }
                             \n
                            \#div1{ background:#0099f9; }'
    //I'm having some more elements which I need to alter their style attr's
    );

    var attr = style.html;

    style.html(attr + '\n\#div2{ background:#f0f; }');
});

I'm also having a bunch of html elements ( some more elements other than mentioned ) in which I need to change their styles after the page loaded

I feel the difficulty when I try to read my code because it is hard coded,

I'm also facing the problem, when I need to add some elements to the above style tag

Is their simple way to do 开发者_开发技巧this & make it simple for readability

Thanks for help !!

Have a Good Day


I don't know if this could help you but rather then dynamically trying to write CSS, can't you create the different styles and give your elements the correct CSS class when rendering them?

Like this:

div.even
{
  background-color:#f00;
}

div.odd
{
  background-color:#ff0;
}

Then you can determine the correct CSS class server side (with PHP, ASP.Net, ...) when rendering the page.


I suggest looking into a client-side template system, like the mechanism discussed here: http://blog.reybango.com/2010/07/09/not-using-jquery-javascript-templates-youre-really-missing-out/

That approach would let you keep your CSS fragments separate from the code, which would be a lot cleaner. You'd put your CSS into <script> blocks that have a "type" deliberately made so that the browser won't try to execute them.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜