css - Knockout.js & Bootstrap 3 - 面包屑伪元素

标签 css twitter-bootstrap knockout.js

我遇到了一个有趣的错误。当关联元素在 Bootstrap 3.0.2 的痕迹导航组件中具有 display: none; 时,CSS 伪元素不会消失。 jsFiddle测试:尝试将 View 模型中的模式从“模式 1”切换到“模式 2”。

我有一个使用 knockout.js 构建的面包屑链接。我将纯 lili 与嵌套 a 的可见性切换为带有 knockout 的 visible: onSomeCondition 绑定(bind)。我的理解是不可见的li设置为display: none;但是,这不会删除 DOM 中关联的 li,我认为这会使 CSS 保留伪元素。例如,我期待以下内容:

Mode 1 / Mode 2

但是我得到:

/模式一/模式二

相关的 knockout 代码为:

<ol class="breadcrumb">
    <li data-bind="visible: isInMode1()">
        <a href="#">Mode 1</a>
    </li>
    <li class="active" data-bind="visible: !isInMode1()">Mode 1</li>
    <li data-bind="visible: isInMode2()">
        <a href="#">Mode 2</a>
    </li>
    <li class="active" data-bind="visible: !isInMode2()">Mode 2</li>
</ol>

相关的 Bootstrap 3.0.2 CSS 如下。基于Bootstrap样式表,添加“/”字符作为伪“before”元素。

.breadcrumb {
  padding: 8px 15px;
  margin-bottom: 20px;
  list-style: none;
  background-color: #f5f5f5;
  border-radius: 4px;
}

.breadcrumb > li {
  display: inline-block;
}

.breadcrumb > li + li:before {
  padding: 0 5px;
  color: #cccccc;
  content: "/\00a0";
}

.breadcrumb > .active {
  color: #999999;
}

如果有更好的方法来做到这一点,或者我没有想到的跨浏览器解决方案,我将不胜感激。我不想破解 CSS,但这可能是更简洁的解决方案。

谢谢

快速链接:

Bootstrap 3.0.2 Breadcrumbs

Knockout.js visible binding documentation

最佳答案

不要使用“可见”绑定(bind),即使元素隐藏,分隔符也会显示。使用“if”和“ifnot”绑定(bind):

<ol class="breadcrumb">
  <li data-bind="if:isInMode1()">
      <a href="#">Mode 1</a>
  </li>
  <li class="active" data-bind="ifnot:isInMode1()">Mode 1</li>
  <li data-bind="if:isInMode2()">
    <a href="#">Mode 2</a>
  </li>
  <li class="active" data-bind="ifnot:isInMode2()">Mode 2</li>
</ol>

关于css - Knockout.js & Bootstrap 3 - 面包屑伪元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20125078/

相关文章:

html - 粘性页脚 : why could overflow:auto; and position:relative; be needed?

html - 当页面具有响应式设计(例如使用 Bootstrap)时减小 CSS 的大小

css - 页面滚动时在 IE7 上出现问题。文本不正确

css - 如何确保某些添加的元素保留在屏幕 Bootstrap 的右侧

asp.net-mvc - 客户端 MVC 框架(Backbone、Knockout 等)和验证

html - 为什么内联 block 级元素中包含的 block 级元素显示为内联?

html - Zend 框架表单元素

html - 列中的中心图标

带有 knockout.js 函数覆盖的 Javascript

javascript - 获取点击事件的绑定(bind)数据