gpt4 book ai didi

ruby-on-rails-3 - Rails CSS 加载,但未应用样式

转载 作者:行者123 更新时间:2023-12-01 04:02:04 25 4
gpt4 key购买 nike

我正在关注这本书 http://pragprog.com/book/rails4/agile-web-development-with-rails我的 scss 文件不起作用。

css文件是这样的:

.store {
h1 {
margin: 0;
padding-bottom: 0.5em;
font: 150% sans-serif;
color: #226;
border-bottom: 3px dotted #77d;
}

/* An entry in the store catalog */
.entry {
overflow: auto;
margin-top: 1em;
border-bottom: 1px dotted #77d;
min-height: 100px;

img {
width: 80px;
margin-right: 5px;
margin-bottom: 5px;
position: absolute;
}

h3 {
font-size: 120%;
font-family: sans-serif;
margin-left: 100px;
margin-top: 0;
margin-bottom: 2px;
color: #227;
}

p, div.price_line {
margin-left: 100px;
margin-top: 0.5em;
margin-bottom: 0.8em;
}

.price {
color: #44a;
font-weight: bold;
margin-right: 3em;
}
}
}

和 html 文件如下:
<% if notice %>
<p id="notice"><%= notice %></p>
<% end %>

<h1>Your Pragmatic Catalog</h1>

<% @products.each do |product| %>
<div class="entry">
<%= image_tag(product.image_url) %>
<h3><%= product.title %></h3>
<p><%= sanitize(product.description) %></p>
<div class="price_line">
<span class="price"><%= product.price %></span>
</div>
</div>
<% end %>

CSS 正在正确加载,但没有被应用。但是,如果添加一个带有“store”类的周围 div ,它就可以工作。这本书没有提到这种情况,我认为它应该“自动”应用这种风格,对吗?

谢谢。

** 编辑 ********

我发现了问题。对于可能遇到相同问题的人,请检查文件:

app/assets/views/layouts/application.html.erb

正文 标签应该有以下代码:
<body class="<%= controller.controller_name %>">

最佳答案

很高兴您找到了解决方案。但我试图解释幕后发生的事情。
您使用 css 的方式不是通用约定 。这个设施带有一些额外的 gem 。检查此链接 https://stackoverflow.com/a/4564922/1160106 。使用这些 gem,您可以以更 DRY 的方式设计您的 css。

一般公约
如果要将样式应用于以下 h1 元素

# Here "store" class is the parent element of "h1"
<div class="store">
<h1> some text </h1>
</div>
将需要以下css方式
#Here also "store" is written before "h1"
.store h1
{
#some designs
}

你的情况发生了什么?
可能您正在维护 Controller 明智的 css 文件。并假设您有一个 stores_controller 。这就是为什么 stores_controller 的类被封装在 .store {} 块中的原因。喜欢
.store {
h3 {font-size: 120%;}
}
所以很明显你的 h3 元素需要一个具有 store 类的父元素。您是通过在 class="<%= controller.controller_name %>" 标签中添加 body 来实现的。毫无疑问, <body> 标签是所有后续节点的父节点。现在,当您点击 stores_controller 时,它​​会设置 class="store" 并且您的样式正在运行。
该方法确实是 DRY 并且值得推荐。

关于ruby-on-rails-3 - Rails CSS 加载,但未应用样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12912433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com