做了一个普通的三栏式网页,顶部是标题,左边导航,右边是内容。导航按钮调用jQuery的load(ajax),在内容区装入对应的html内容(由php生成)。想请问的是,装入不同的内容要用到不同的CSS,怎样把CSS和HTML配对调入呢?还是一次性装入全部的CSS?已经装入了的CSS可以“调出”吗?需要“调出”吗?另外,装入内容区的html可能是一个对话性质的页面,比如输入密码,在按下“确定”之后要根据上下文再装入不同的页面。像这样连环装入不同页面,有没有什么现成的框架可以用呢?这样非常基本的功能,估计早就有人把这个流程给“标准化”了吧?感觉还是在用C的思维方式在写PHP代码,非常吃力。以上问题还请各位TX多多指点,在下先行谢过~
其实没什么!问题1:想请问的是,装入不同的内容要用到不同的CSS,怎样把CSS和HTML配对调入呢?还是一次性装入全部的CSS?已经装入了的CSS可以“调出”吗?需要“调出”吗?
答:你ajax获取到的html就应该是单独包含左边导航栏样式css的,是由php生成的!所以说未了方便页面样式的更改,页面加载的时候最好每个版块的样式都是独立+载进来的!问题2:另外,装入内容区的html可能是一个对话性质的页面,比如输入密码,在按下“确定”之后要根据上下文再装入不同的页面。像这样连环装入不同页面,有没有什么现成的框架可以用呢?这样非常基本的功能,估计早就有人把这个流程给“标准化”了吧?
答:这个不需要任何什么框架,可以将内容块用iframe加载进来,也可以用隐藏的层来操作。根据用户的输入用js动态改变iframe的src属性或者控制层的显示。
程序都是共通的!希望对你有所帮助!你是之前c/s模式写多了吧!
http://developerssolutions.wordpress.com/2010/07/28/load-css-dynamically/
不过一般不需要这样做, 不知道你的页面和程序结构所以无法细谈
比如说点击导航,右边内容里显示a.html. a.html代码里应该有这部分独立的css包含这个html里面,也就是我前面说的"所以说未了方便页面样式的更改,页面加载的时候最好每个版块的样式都是独立+载进来的!".
这样你就不用为样式的更改操心了!
CSS加载了就不能去掉,所以我认为应该一次载入所有CSS,如果你需要CSS可以动态变动,你可以写多套CSS(也就是皮肤),之后用不同的class名为父级查询,那么你只需要用JS修改父级的class值就可以马上换肤。打个比方:css:
.red span {...}
.red div {...}
.black span {...}
.black div {...}html:
<div class="red">
...
</div>以上代码,你可以用JS把class="red"改为class="black",这样就换肤了。
还有css载入的问题。css,js都是运行在客户端的脚本。由浏览器执行的。一般css不需要操心太多。一次性加载就好了,还可以减少web服务器的请求数。
你所说的A.html,B.html如果数量不是特别多,内容不是特别大,可以一次放在一次web请求里加载的。css也可以写到一个文件