html - 单击后实现下拉更改字体大小

标签 html css ruby-on-rails materialize

我在 Rails 元素中使用 Materializecss,我的导航栏中出现了一个奇怪的错误。乍一看,我的自定义 CSS 可以正确呈现下拉字体大小和颜色。然而,在我点击下 zipper 接后,原来的 Materialise 默认字体大小和颜色会闪烁。这是我用来模拟问题的 JSFiddle:https://jsfiddle.net/sayyl/x11xv5k9/ .请注意,虽然在此 Fiddle 中字体保持深灰色,但在我自己的元素中,文本闪烁默认的 Materialise 绿色。两者的字体大小错误相同。

_nav.html.erb

<nav>
<!-- Profile Dropdown Structure -->
<ul id="settingDrop" class="dropdown-content">
  <li><%= current_user.full_name %></li>
  <li class="divider"></li>
  <li><%= link_to "Edit Profile", edit_user_path(current_user) %></li>
  <li><%= link_to "Logout", destroy_user_session_path, method: :delete %></li>
</ul>

<!-- Alert Dropdown Structure -->
<ul id="alertDrop" class="dropdown-content">
  <li class="alert">          
    <% if !current_user.confirmed_at %>
      Confirm your email
    <% end %>
  </li>
</ul>


  <div class="nav-wrapper">
    <a href="/" class="brand-logo">LOGO</a>
    <a href="#" data-activates="mobile-demo" class="button-collapse"><i class="material-icons">menu</i></a>

    <ul class="right hide-on-med-and-down">
        <li class="alert">
          <a class="dropdown-button valign-wrapper alert" href="#!" data-activates="alertDrop" data-beloworigin="true"><i class="fa fa-bell fa-lg" aria-hidden="true"></i></a>
        </li>
        <li><a class="dropdown-button valign-wrapper" href="#!" data-activates="settingDrop" data-beloworigin="true"><%= image_tag @user.avatar.url(:thumb), class: "circle responsive-img" %> <i class="material-icons">arrow_drop_down</i></a></li>
    </ul>

    <ul class="side-nav" id="mobile-demo">
        <li><%= current_user.email %></li>
        <li><%= link_to "Logout", destroy_user_session_path, method: :delete %></li>
        <% if !current_user.confirmed_at %>
          <li class="alert" style="color:#e74c3c"><i class="fa fa-bell" aria-hidden="true"></i> confirm your email</li>
        <% end %>
    </ul>
  </div>
</nav>

导航.scss

nav {

.nav-wrapper {
  background-color: #e7e6e4;
  color: #505050;
  font-family: 'Raleway', sans-serif;

  .brand-logo {
    color: #000;

    .logo-highlight {
      color: #b8d6c6;
    }
  }

  a {
    color: #505050;
    padding: 0 15px 0 8px;
  }

  .alert {
    color:#e74c3c;
    padding: 0 15px 0 8px;
  }

  ul {
    height: inherit;

    img {
      height: 50px;
      border: 1px solid #fff;
    }
  }

  #settingDrop,
  #alertDrop {

    min-width: 150px !important;
    &.dropdown-content.active {

      li {
        color: #505050;
        font-size: 12px;
        line-height: 12px;
        min-height: 40px;
        display: flex;
        align-items: center;
        padding: 0 8px;

        &.divider {
          min-height: 0;
        }

        &.alert {
          color:#e74c3c;
        }

        i {
          height: inherit;
          line-height: inherit;
        }

        p {
          font-weight: 500;
          font-size: 14px;
        }

        > a {
          color: #505050;
          padding: 0;
          font-size: inherit;
          line-height: inherit;
        }


        a:hover {
          background-color: rgba(0,0,0,0);
        }
      }

      li:first-child {
        margin-top: 10px;
      }


    }
  }

}

最佳答案

这可能是因为您正在为 .active 类设置样式。 当您单击下拉菜单打开器/关闭器时,此类会发生变化,这可以解释为什么当您打开下拉菜单时没有闪烁但关闭它时。 尝试在没有此类的情况下设置下拉内容的样式,应该没问题。

关于html - 单击后实现下拉更改字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42097809/

相关文章:

javascript - 将字符串传递给 Angular

html - 为什么一些 html 和 body 属性有这种行为?

ruby-on-rails - 将嵌套属性与保存后获得的ID相关联

html - 导航栏在大屏幕中保持在我自己的宽度中心

javascript - 在右侧显示 HTML 选择下拉列表,在左侧显示选项

html - 使元素固定位置,但如果内容太大则跟随页面滚动

javascript - 使用 ACF 将唯一 ID 或数字添加到 jQuery 动画的 id 末尾

css - 需要修复导航 CSS 问题?

mysql - 如何从rails中的数据库加载和制作应用程序脚手架

ruby-on-rails - Rails 加载页面的时间比预期的要长