我正在生成一个带有明信片的 PDF,每页应该有两张明信片。目前我正在使用索引遍历我的对象,然后告诉它分页符 if idx % 2 == 0
。尽管此解决方案根本不适合我。我的逻辑是否可靠,还是我的 CSS 不正确?
到目前为止,这是我的代码:
index.html.erb
<% @postcards.each_with_index do |name, idx| %>
<% if idx % 2 == 0 %>
<div class = "page-break"></div>
<% end %>
<div class = "postcards-container">
<%= image_tag "badge_logo.png", :id => 'agency-badge' %>
</div>
<% end %>
CSS:
.postcards-container {
width: 600px;
height: 390px;
border: 1px solid black;
margin-left: auto;
margin-right: auto;
//padding: 1em;
margin-bottom: 50px;
#agency-badge {
width: 140px;
height: 75px;
}
@media print {
.page-break { display: block; page-break-before: always; }
}
}
最佳答案
这可以使用 jQuery(或 vanilla JS)很容易地完成。
这种方法将逻辑排除在您的 View 之外,这被认为是比在您的 View 中插入逻辑更好的方法。
再培训局:
<% @postcards.each do %>
<div class="postcard">
<%= whatever content you want to display for each post card %>
</div>
<% end %>
JS:
$('.postcard:even').addClass('page-break');
CSS:
@media print {
.page-break {
display: block;
page-break-before: always;
}
}
关于html - 两个 div ruby 后的分页符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29479507/