【问题标题】:Flash messages messes up flexbox layoutFlash 消息打乱了 flexbox 布局
【发布时间】:2019-04-11 07:17:53
【问题描述】:

我有一个 rails 应用程序,我在其中使用 flexbox 来分隔页眉、内容和页脚。这个 flexbox 确保内容被空白填充以填满整个屏幕,使页脚始终位于布局的底部,如图所示。

(别介意糟糕的布局最终会改善它)

我用来执行此操作的代码如下:

# application.html.slim
  body
    .box
      .row.header
        = render 'layouts/navbar'
      .row.content
        = yield
      .row.footer
        = render 'layouts/footer'
# custom.css.scss
.box {
  display: flex;
  flex-flow: column;
  height: 100%;
}

.box .row.header {
  flex: 0 1 auto;
  /* The above is shorthand for:
  flex-grow: 0,
  flex-shrink: 1,
  flex-basis: auto
  */
}

.box .row.content {
  flex: 1 1 auto;
  margin-top: 100px;
  margin-bottom: 50px;
}

.box .row.footer {
  flex: 0 1 40px;
}

它按预期工作。但是,当我启动设计和触发错误/成功消息的登录功能时,布局变得混乱,现在看起来像:

当我使用检查元素时,我看到<div class="row footer"> 消失了,= render 'layouts/footer' 变成了<div class="row content"> 之下

我不太确定是什么触发了这种行为,到目前为止我还没有找到它。

我的 Flash 模板是:

# _flash.html.erb

- if !flash.empty?
  .row
    - flash.each do |message_type, message|
      |  <div class="
      = flash_class(message_type)
      |  closable"> 
      i.close.icon
      = message

【问题讨论】:

    标签: css ruby-on-rails


    【解决方案1】:

    尝试关闭flash自定义div:

      .row
        - flash.each do |message_type, message|
          |  <div class="
          = flash_class(message_type)
          |  closable"> 
          i.close.icon
          = message
          |  </div> #<= here
    

    【讨论】:

    • 哎呀简直不敢相信我错过了那个简单的结束标签!习惯了自动添加结束标签。感谢您指出这一点!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 2017-04-02
    相关资源
    最近更新 更多