我不明白为什么我的响应式twitter bootstrap导航会发生这种情况。这是一个截图:
它正在添加那些指向的怪异箭头。插入符号是有意的,那些都可以。如果我从dropdown
删除所有<li class="dropdown">
类,它就会消失。但这样做打破了导航。导航工作得非常好。这是我的标记:
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<%= link_to "Tip Share", root_path, :class => "brand" %>
<div class="nav-collapse">
<ul class="nav pull-left">
<% if current_user %>
<li class="dropdown">
<a href="#"class="dropdown-toggle" data-toggle="dropdown">
Sales
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><%= link_to "New Sales", new_sale_path %></li>
<li><%= link_to "Manage Sales", sales_path %></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Shifts
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><%= link_to "New Shift", new_shift_path %></li>
<li><%= link_to "Manage Shifts", shifts_path %></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Employees
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><%= link_to "New Employee", new_employee_path %></li>
<li><%= link_to "Manage Employees", employees_path %></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Positions
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><%= link_to "New Position", new_position_path %></li>
<li><%= link_to "Manage Positions", positions_path %></li>
</ul>
</li>
<% end %>
</ul>
<ul class="nav pull-right">
<% if current_user %>
<li>
<%= link_to root_path do %>
<%= current_user.email %>
<% end %>
</li>
<li><%= link_to 'Log out', logout_path %></li>
<% else %>
<li><%= link_to 'Sign up', signup_path %></li>
<li><%= link_to 'Log in', login_path %></li>
<% end %>
</ul>
</div>
</div>
</div>
</div>
这个标记似乎没什么问题,但我一直在拿这些小箭头。我宁愿用引号来计算我做错的事情,而不是试图用css覆盖它
如何摆脱这些箭头?
仅供参考,我正在使用bootstrap-sass gem导入twitter bootstrap。
答案 0 :(得分:2)
添加.navbar-inner使其具有足够的特异性:
/* Landscape phone to portrait tablet */
@media (max-width: 767px) {
.navbar .navbar-inner .nav > li > .dropdown-menu:after {
display: none;
}
}/* end media query */
但是,我发现默认情况下包含在Boostrap中的规则不起作用很奇怪:
.navbar .nav > li > .dropdown-menu:after
答案 1 :(得分:0)
看起来真正的问题是我的媒体查询特定样式不起作用。这实际上是内置于boostrap中的:
/* line 112, ../../../../../.rvm/gems/ruby-1.9.3-p194@tips/gems/bootstrap-sass-2.1.0.0/vendor/assets/stylesheets/bootstrap/_responsive-navbar.scss */
.nav-collapse .dropdown-menu:before,
.nav-collapse .dropdown-menu:after {
display: none;
}
但即使我的浏览器远低于979px,该样式仍未被识别:
因此,似乎是引导媒体查询的问题没有意义。我想知道这是否与rails中的资产管道有关。
更新
添加此修复程序:
/* Landscape phone to portrait tablet */
@media (max-width: 767px) {
.navbar .nav > li > .dropdown-menu:after {
display: none !important;
}
}/* end media query */
但是!important
非常糟糕。试图弄清楚我做错了什么会导致我的css中出现这种继承问题。