是否有任何快捷方式使css定位编程而不是声明?

时间:2009-06-22 22:34:07

标签: javascript css

从头开始实施有多复杂?

主要用于布局问题。

我想让它成为声明的原因是我希望将它封装到一个javascript类中,这样我就不需要一次又一次地处理css缺陷,而是一劳永逸。

4 个答案:

答案 0 :(得分:4)

这根本不是什么大不了的事。你只需做

之类的事情
document.getElementById('whatever').style.width = 100;

或者,在jQuery中,

$('#whatever').css('width', 100);

但是,听起来好像你想用程序化的样式操作完全取代样式表,这可能是一个糟糕的主意。

答案 1 :(得分:4)

老实说,这里唯一正确的答案是不要这样做 - 正确学习CSS 。你似乎想要克服CSS中的一些缺陷,但你不会说它们是什么,除了“布局”,它就像你能得到的一样模糊。 CSS布局很好(使用浮动,而不是定位 - 后者很少用于布局)。

就我所见,使用Javascript设置CSS样式并没有真正解决任何问题。也许你需要更清楚地解释(有例子)你的问题是什么。

答案 2 :(得分:1)

你应该澄清你的问题。如果我理解它是“为什么CSS是一种声明性语言而不是命令式”那么这是因为它在概念上更接近人类想要网页的风格(以及浏览器如何阅读它)。

答案 3 :(得分:0)

查看 JSON CSS 。这是一种使用Javascript的强大功能(执行逻辑等)以一种漂亮有序的方式设置样式的一种相当有趣的方法。 Arc90.Labs对该主题进行了很好的描述,并附有示例。

http://lab.arc90.com/2009/01/json_css.php(也在Google Code上)

演示JSON CSS样式表:

{
    "@variables": {
        "demoBgColor": "#FBFAF4"
    },

    "#demoContainer": {
        "background-color": "@{demoBgColor}",
        "border": "1px dotted #CCC",
        "padding": "0.5em",
        "width": "40em",
        "@browser[msie-6]": {
            "width": "400px"
        },

        "h3.header": {
            "text-decoration": "underline"
        },

        "div:first": {
            "font-weight": "bold"
        }
    }
}