采用 Javascript 编程,还需要 CSS 吗?
开发 Web 前端应用时,我们也曾遵循教科书的训导,从 HTML 到 CSS 再到 Javascript,老老实实做下去,但总感觉这套东西别别扭扭,为一点事码一大堆字符不说,那堆东西还特难读,缺少结构性,和原生应用相比,有点小儿科。
恰逢我们需要用 Javascript 开发一套应用框架,于是尝试模仿原生程序的模式来做,完全没用 CSS,所有 style 定义都用 JS 函数动态生成。HTML 代码也用得很少,差不多就是一个初始框架,然后就进入 script 状态,靠 JS 来完成。框架已基本搭好,功能也正常。这里自然就产生一个问题:CSS 还有用吗?
我们毕竟水平有限,不敢过早下结论。请问各路大侠:对此你们怎么看?
这两者侧重点有区别,javascript侧重于动作,css侧重于表现。当然css做的渲染javascript也能做到,这是没有问题的(css3某些特性除外),你可以用javascript来做所有的渲染工作如果你愿意,就像你的团队现在所做的一样。
当然更多的人会喜欢将动作与表现分开,就像一大堆的mvc框架一样,一个jsp就可以完成所有的操作(画面表示,逻辑处理,数据库访问),却要分为表示,控制,和持久层这样的层级结构,除了性能和安全考虑外,降低耦合也是非常重要的。
举一个简单的例子:假设项目有100个画面,每一个画面都有一部分一样的样式比如画面尺寸1024*768,按照你的方式那么我要在100个html中调用setObjStyle(body, {width:'1024px', height:'768px'});是这样吗?不知道你的做法,假设就是这样的。css分开的做法是写一个css文件在100个html中引入这个css文件。从某种角度来说调用setObjStyle更优因为每一个画面的样式都是本画面专用的,而引用css文件会包含其他99个画面的样式。现在问题来了,假设现在客户要求改变尺寸为1280*1024那么我们是不是要改100次的setObjStyle(body, {width:'1280px', height:'1024px'});,而css文件只需要修改一次就可以了。
用js写一些动态的样式是比较常用的,但是不建议用js写所有样式,易用性和效率都是一个很大的问题。
[解决办法]
LZ想说的是页面表现用JS来生成元素的内联样式完成,而不是写成单独的CSS样式(无论是用style标签写在页面上还是写在css文件内用link标签引用),是吧?!
我是做前端开发的,UI做好了设计后,我要先切片,再用html+css生成静态页面,然后完成JS交互程序,基本上最后除了页面数据是死的,其它的和最终的页面是一样的(有时候因为ajax等也会写一些模拟的数据接口作测试,这个时候就跟最终页面完全一样了)
LZ的想法有点儿接近 VS 里面的拖控件,什么我都给你弄好了,你只要把它放在页面上去,给配上数据源。控件放在哪儿,什么外形,交互表现都在设置里一起弄好就OK了。
如果是开发一个基本不会怎么改UI,需求十分明确,访问量不大的应用管理类的程序完全没有问题