css - 为什么 riot.js 会破坏 css?

标签 css twitter-bootstrap riot.js

为了学习 riot.js,我从著名的 bootstrap navbar 示例开始。然后我使用 riot.js 添加了我的自定义标签:

<script type="riot/tag">
  <menu-item>
    <li><a href={this.href}><yield/></a></li>
    this.href = opts.href
  </menu-item>
</script>

<script src="https://cdn.jsdelivr.net/g/riot@2.2(riot.min.js+compiler.min.js)"></script>
<script>
  riot.mount('*')
</script>

最后我尝试使用我的新标签,替换

<li><a href="http://getbootstrap.com/javascript">JavaScript</a></li>

通过

<menu-item href="http://getbootstrap.com/javascript">JavaScript</menu-item>

Result被打破。为什么? (可以在此处找到原始的非损坏示例:jsfiddle.net/0hp9pwpu)

最佳答案

您的 riot 标签标记已插入到您的 riot 标签中,即发生的事情是

ul
    li

从你的工作示例来看实际上是

ul 
    menu-item
         li

在您的非工作示例中。由于 bootstrap 对导航项设置了特定层次结构的样式,因此您的结果是错误的。

这是作为问题提出的 (https://github.com/riot/riot/issues/295) 并使用 https://github.com/riot/riot/pull/569 关闭也就是说,不是直接使用 riot 标签,而是可以选择将 riot 标签添加为属性。所以像

<li riot-tag="menu-item" href="http://getbootstrap.com/javascript">JavaScript</li>

不可否认,它不是语义化的


fiddle - http://jsfiddle.net/86khqhwu/

关于css - 为什么 riot.js 会破坏 css?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31342588/

相关文章:

html - 如何使用 Capybara 在 lightbox/fancybox 中查找元素

html - 当标题位于响应式 View 中的不同列中时,将标题移到图像上方

html - 如何在 div 中安装响应式包装 Canvas signature_pad?

javascript - Yield 内的 RiotJS 标签未更新

android - 我如何重写这个 CSS 以响应 native

HTML 和 CSS 水平菜单,元素位于左侧和右侧

node.js - riotts (riot-ts) 和 jspm - 有人让它一起工作吗?

javascript - 使用 Riot.js 进行服务器端渲染 + 路由?

html - 即使使用显示 : table-cell,div 内容也不会垂直居中

jquery - 单击 Bootstrap 中的单选按钮时如何显示/隐藏文本