我在页面上有三个不同的位置,用于渲染同一部分。部分脚本包含引导程序col-sm-4
/ col-sm-8
情况,该情况应使图像占据页面的三分之一,而文本占据另一个页面的2/3。但是,在每种情况下,局部渲染的呈现方式都不同:
这里是页面(blogs#index
):
<header class="py-5 bg-image-full bg-image-stripe" style="background-image: url(<%= asset_path "drops-of-water-mask.jpg" %>);">
<div class="container h-100">
<div class="row h-100 align-items-center">
<div class="col-lg-12">
<h1 class="display-4 mt-5 mb-2">The Blog</h1>
<p class="lead mb-5">Your Source for Qualified Knowledge (or Other Tagline)</p>
</div>
</div>
</div>
</header>
<% if current_spree_user && current_spree_user.admin? %>
<section class="admin container">
<div class="row">
<div class="col text-left pt-3">
<h2>Draft Posts</h2>
<% @blogs.each do |blog| %>
<% if !blog.published %>
<p class="my-1 py-0"><%= link_to blog.title, edit_blog_path(blog) %></p>
<% end %>
<% end %>
</div> <!-- drafts col -->
<div class="col text-right pt-3">
<%= link_to "Create New Blog", new_blog_path, class: "btn btn-primary" %>
<%= link_to "Blog Management", home_blogs_path, class: "btn btn-primary" %>
</div> <!-- create new col -->
</div> <!-- row -->
</section>
<hr>
<% end %>
<main class="container">
<div class="row">
<div class="col-12" id="big-feature">
<% @big_feature.each do |blog| %>
<%= render partial: "blogs/blog-card", locals: { blog: blog } %>
<% end %> <!-- each do -->
</div> <!-- col -->
<div class="col-sm-6" id="most-popular">
<h2>Most Popular</h2>
<% @most_popular.each do |blog| %>
<%= render partial: "blogs/blog-card", locals: { blog: blog } %>
<% end %> <!-- each blog do -->
</div> <!-- col -->
<div class="col-sm-6" id="featured">
<h2>Featured</h2>
<% @featured.each do |blog| %>
<%= render partial: "blogs/blog-card", locals: { blog: blog } %>
<% end %> <!-- each blog do -->
</div> <!-- col -->
</div> <!-- row -->
</main> <!-- page container -->
这里是blogs/_blog-card
部分:
<%= link_to blog_path(blog) do %>
<div class="blog-title-box my-3">
<div class="row">
<div class="image background-image col-md-4"
style="background-image: url('<%= blog.featured_image_url %>')">
</div> <!-- image col -->
<div class="text col-sm-8 px-4 py-3">
<h3><%= blog.title %></h3>
<% if blog.big_feature %><p><%= blog.teaser %></p><% end %>
<p class="tags"><% blog.tag_list.each do |tag| %>
<%= link_to tag, tagged_path(tag: tag) %>
<% end %></p>
<p class="author"> By <%= Spree::User.find(blog.spree_user_id).email %> on <%= blog.published_at.in_time_zone("America/Los_Angeles").strftime("%B %d, %Y") %></p>
</div> <!-- text col -->
</div> <!-- row -->
</div> <!-- blog title box -->
<% end %> <!-- link to blog -->
这里有任何相关的CSS:
.blog-title-box {
box-shadow: 0 10px 20px rgba(183, 173, 153, 0.19), 0 6px 6px rgba(183, 173, 153, 0.23);
}
.blog-title-box:hover {
box-shadow: 0 14px 28px rgba(183, 173, 153, 0.30), 0 10px 10px rgba(183, 173, 153, 0.22);
}
.blog-title-box .image {
height: 300px;
}
#big-feature a:hover,
#most-popular a:hover,
#featured a:hover {
text-decoration: none !important;
}
.blog-title-box .text p {
color: black;
}
.blog-title-box .text p.author {
color: $color-grey;
font-style: oblique;
}
.background-image {
background-position: center; /* Center the image */
background-repeat: no-repeat; /* Do not repeat the image */
background-size: cover; /* Resize the background image to cover the entire container */
max-width: 100%;
}
谁能看到为什么只有“最受欢迎”下的博客才能正确呈现?
其他信息
[根据Chrome检查器,这是页面以HTML呈现的方式:
<main class="container">
<div class="row">
<div class="col-12" id="big-feature">
<a href="/blogs/3">
</a><div class="blog-title-box my-3"><a href="/blogs/3">
</a><div class="row"><a href="/blogs/3">
<div class="image background-image col-md-4" style="background-image: url('https://media.istockphoto.com/photos/water-with-splash-and-bubbles-picture-id952077910')">
</div> <!-- image col -->
</a><div class="text col-sm-8 px-4 py-3"><a href="/blogs/3">
<h3>Test for Big Feature</h3>
<p>Teaser Goes Here. Yes, all the things.</p>
</a><p class="tags"><a href="/blogs/3">
</a><a href="/tagged?tag=Big+Post">Big Post</a>
<a href="/tagged?tag=Testing">Testing</a>
</p>
<p class="author"> By [email protected] on September 26, 2019</p>
</div> <!-- text col -->
</div> <!-- row -->
</div> <!-- blog title box -->
<!-- link to blog -->
<!-- each do -->
</div> <!-- col -->
<div class="col-sm-6" id="most-popular">
<h2>Most Popular</h2>
<a href="/blogs/2">
<div class="blog-title-box my-3">
<div class="row">
<div class="image background-image col-md-4" style="background-image: url('https://i.guim.co.uk/img/media/9ebfe6eb392f208e944a21d1903b698965d35527/0_0_7360_4417/master/7360.jpg?width=700&quality=45&auto=format&fit=max&dpr=2&s=2b05fd52feeac284411af1bf1215d1d6')">
</div> <!-- image col -->
<div class="text col-sm-8 px-4 py-3">
<h3>Test Blog</h3>
<p class="tags"></p>
<p class="author"> By [email protected] on September 24, 2019</p>
</div> <!-- text col -->
</div> <!-- row -->
</div> <!-- blog title box -->
</a> <!-- link to blog -->
<!-- each blog do -->
</div> <!-- col -->
<div class="col-sm-6" id="featured">
<h2>Featured</h2>
<a href="/blogs/1">
</a><div class="blog-title-box my-3"><a href="/blogs/1">
</a><div class="row"><a href="/blogs/1">
<div class="image background-image col-md-4" style="background-image: url('https://i.guim.co.uk/img/media/9ebfe6eb392f208e944a21d1903b698965d35527/0_0_7360_4417/master/7360.jpg?width=700&quality=45&auto=format&fit=max&dpr=2&s=2b05fd52feeac284411af1bf1215d1d6')">
</div> <!-- image col -->
</a><div class="text col-sm-8 px-4 py-3"><a href="/blogs/1">
<h3>Yet Another Test Blog</h3>
</a><p class="tags"><a href="/blogs/1">
</a><a href="/tagged?tag=Fake+Content+Testing">Fake Content Testing</a>
</p>
<p class="author"> By [email protected] on September 25, 2019</p>
</div> <!-- text col -->
</div> <!-- row -->
</div> <!-- blog title box -->
<!-- link to blog -->
<!-- each blog do -->
</div> <!-- col -->
</div> <!-- row -->
</main>
EVEN MORE INFO
您可以看到issue live here。
您的RoR代码似乎正确。最终,您应该得到博客卡,并用only one锚点(<a>
标签)包围,如下例所示:
<div class="col-sm-6 pt-3" id="featured">
<h2>Featured</h2>
<!-- surrounding anchor ---------------------------------------------->
<a href="/blogs/3">
<div class="blog-title-box my-3">
<div class="row">
<div class="image background-image col-md-4"
style="background-image: url('<the-url>')">
</div>
<div class="text col-sm-8 px-4 py-3">
<h3>Test for Featured</h3>
<p class="tags">
<a href="/tagged?tag=Testing">Testing</a>
<a href="/tagged?tag=Fake+Content">Fake Content</a>
</p>
<p class="author">
By [email protected] on October 01, 2019
</p>
</div>
</div>
</div>
</a>
<!-- surrounding anchor (end) ----------------------------------------->
</div>
该示例正确地获得了[[正确]您的设计(图像的1/3)。
但是您提供给HTML结果的链接(实时发布)显示重复的锚点,其中有些是空的:<div class="blog-title-box my-3"><a href="/blogs/3"></a>
其他不是。这个特别是:打破设计
<div class="row">
<a href="/blogs/3"> <!-- unexpected anchor breaking the design -->
<div class="image background-image col-md-4"
style="background-image: url('<the-url>')">
<!-- [...] -->
</div>
由于我看不到实际执行的代码,因此我无法走得更远。我的猜测是,您必须在RoR代码中看到正在插入那些烦人的锚点的内容。您确定真正执行的代码是您在问题中粘贴的代码吗?