我制作的网站每个页面都有一个页眉/页脚,但页面内容的布局不同,<head>
部分和样式表完全不同。如何在另一个模板中渲染模板,使其成为完全独立的部分 - 它不会继承任何父级样式,也不会影响父级?
我尝试过&lt;%=渲染模板:&#39; layouts / test&#39; %&gt;,但样式表重叠。
答案 0 :(得分:1)
看起来你需要的是偏爱。您可以将它们分成不同的组件并使用rails partial。
例如,如果您始终使用相同的页眉和页脚,则可以将它们放在layouts/application.html.erb
文件中。然后在每个页面的正文模板中,您可以使用partial来呈现每个单独的部分。
只需创建一个像_seciont_1.html.erb
这样的文件。然后在相应的页面中,使用<%= render partial: "section_1" %>
进行渲染。更多信息请查看以下链接。
http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials
------------------------------
| header |
------------------------------
| | |
|section_1| section_2 |
| | |
------------------------------
| footer |
------------------------------
对于样式表,在application.css
或application.scss
文件中(位于app/assets/stylesheets/
下),删除行*= require_tree .
。这一行是加载所有样式表的行。相反,只选择您在所有网页上使用的内容,例如页脚和标题的css文件。
然后在每个特定的部分文件中,加载相应的css文件。
<%= stylesheet_link_tag 'section_1', media: 'all', 'data-turbolinks-track' => true %>
为您的JS文件执行相同操作。您可以在生成application.js
的{{1}}中找到它。删除行app/assets/javascript/
并使用此命令需要相应的js文件。
//= require_tree .
答案 1 :(得分:0)
您可以使用iframe
。 iframe基本上是单独的HTML文档,带有自己的样式表等。问题是他们的父页面确实不知道子页面的大小,所以你需要选择一个宽度并且是对内部滚动条感到满意,或者使用javascript。
更好的解决方案可能是找出一种更好的方法来管理您的CSS,这样您就不会做出影响他们不应该做的事情的事情。随着软件的发展,通常会有很多东西咬你。有很多方法可以做到这一点,但从个人的角度来看,我是BEM语法的忠实粉丝。
有一个很好的overview here - 请记住,它会去你工作,所以不要把不同的开发人员做的事作为福音!