做了一个普通的三栏式网页,顶部是标题,左边导航,右边是内容。导航按钮调用jQuery的load(ajax),在内容区装入对应的html内容(由php生成)。想请问的是,装入不同的内容要用到不同的CSS,怎样把CSS和HTML配对调入呢?还是一次性装入全部的CSS?已经装入了的CSS可以“调出”吗?需要“调出”吗?另外,装入内容区的html可能是一个对话性质的页面,比如输入密码,在按下“确定”之后要根据上下文再装入不同的页面。像这样连环装入不同页面,有没有什么现成的框架可以用呢?这样非常基本的功能,估计早就有人把这个流程给“标准化”了吧?感觉还是在用C的思维方式在写PHP代码,非常吃力。以上问题还请各位TX多多指点,在下先行谢过~

解决方案 »

  1.   

    呵呵~以前页写c!
    其实没什么!问题1:想请问的是,装入不同的内容要用到不同的CSS,怎样把CSS和HTML配对调入呢?还是一次性装入全部的CSS?已经装入了的CSS可以“调出”吗?需要“调出”吗?
    答:你ajax获取到的html就应该是单独包含左边导航栏样式css的,是由php生成的!所以说未了方便页面样式的更改,页面加载的时候最好每个版块的样式都是独立+载进来的!问题2:另外,装入内容区的html可能是一个对话性质的页面,比如输入密码,在按下“确定”之后要根据上下文再装入不同的页面。像这样连环装入不同页面,有没有什么现成的框架可以用呢?这样非常基本的功能,估计早就有人把这个流程给“标准化”了吧?
    答:这个不需要任何什么框架,可以将内容块用iframe加载进来,也可以用隐藏的层来操作。根据用户的输入用js动态改变iframe的src属性或者控制层的显示。
    程序都是共通的!希望对你有所帮助!你是之前c/s模式写多了吧!
      

  2.   

    谢谢heyc兄这么快的回复,的确是写久了C、ASM之类的东西,脑袋僵化掉了:)关于第一个问题,为简单起见,导航栏是不变的,就是右侧的内容根据导航栏按钮是选A还是B,显示A.HTML或B.HTML(其实是由PHP生成的,不是一个完整的HTML,只是一个片段),A/B分别有自己对应的CSS文件A.CSS和B.CSS,请问这个CSS在什么时候装入呢,装入第二页的时候,需要把第一页的CSS remove 掉吗?怎样remove?
      

  3.   

    unload css的代码大致如此:
    http://developerssolutions.wordpress.com/2010/07/28/load-css-dynamically/
    不过一般不需要这样做, 不知道你的页面和程序结构所以无法细谈
      

  4.   

    右边内容的css引用应该方在这块代码里!~
    比如说点击导航,右边内容里显示a.html.   a.html代码里应该有这部分独立的css包含这个html里面,也就是我前面说的"所以说未了方便页面样式的更改,页面加载的时候最好每个版块的样式都是独立+载进来的!".
    这样你就不用为样式的更改操心了!
      

  5.   

    CSS怎么加载是个结构问题,没什么通用做法。
    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",这样就换肤了。
      

  6.   

    这个流程确实已经有所谓的“标准化”了,jquery就有很多类似导航菜单,tab菜单的插件。楼主可以搜下jqueryUI,还有很多js库也都有。
    还有css载入的问题。css,js都是运行在客户端的脚本。由浏览器执行的。一般css不需要操心太多。一次性加载就好了,还可以减少web服务器的请求数。
    你所说的A.html,B.html如果数量不是特别多,内容不是特别大,可以一次放在一次web请求里加载的。css也可以写到一个文件