用JavaScript替换CSS

Cia*_*n E 6 javascript css

我对来自PHP/MySQL环境的客户端编程比较陌生.我理解CSS和JavaScript在浏览器环境中可以发挥的作用,然而,如果没有JavaScript,它似乎不可逆转地停滞不前.我绝不想创造一场辩论,但这就是我对"新手"的看法.那么为什么不只使用JavaScript来设置元素属性/属性呢?如果是这样,这是一种常见做法吗?(我确信CSS要快得多......)

Mik*_*son 8

一些一般观点:

CPU成本

运行Javascript以将样式应用于单个元素将非常慢.Javascript是同步的,因此它必须一次更新一种样式.另外,如其他地方所述,遍历DOM在计算上是昂贵的.更重要的是,如果您正在应用样式,因为每次应用更改时都强制浏览器重新呈现网站.

脑费用

尝试在Javascript中编写和维护样式也是一种精神上的代价.它是一种从不打算包含布局规则的函数式语言.CSS更容易阅读.

他们级联!

CSS代表Cascading Style Sheets.风格的一大好处是可以继承彼此的属性.考虑以下:

a.nav { font-weight: bold; }
Run Code Online (Sandbox Code Playgroud)

现在你所有与"nav"类的链接都是粗体.但是,如果您希望进一步修改链接,您仍然可以:

li a.nav { color: red; }
Run Code Online (Sandbox Code Playgroud)

现在,列表项中包含的所有a.nav链接都将为红色粗体.这可能是javascript,但你必须强迫它,维护将是可怕的.

如果你使用Javascript作为样式,你的同事会打败你!

我认为这种说法本身就是一种说法


Tad*_*ghe 5

Css用于页面布局和样式.

Javascript用于行为.

即使可以用javascript完全替换css,它也不被认为是标准做法,并且会被大多数Web开发人员严厉批评.

良好的Web开发总是假设客户端可能关闭了javascript并提供优雅的默认设置.用javascript替换css可能会使这变得不可能.