html - 如何将引导导航栏实现为 lit-html/lit-element 中的组件

标签 html css bootstrap-4 lit-element lit-html

我想知道如何在 lit-element/lit-html 中实现引导导航栏

我在 lit-element 中创建了导航栏组件,但导航栏下拉菜单和切换功能不起作用。

我必须将固定顶部导航栏实现为 html 中的 lit-element 组件。 请检查代码并卡住。 如果有任何替代方案,请提供解决方案。

// component.js
import { LitElement, html } from 'lit-element';

class MyElement extends LitElement {
  render(){
    return html`
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css">
      <div>
            <header>
    <nav class="navbar navbar-expand-md navbar-light bg-light fixed-top">
      <a class="navbar-brand"><img src="../images/send4x.svg" alt="" class="logoC mr-4"></a>
      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
        <span class="navbar-toggler-icon"></span>
      </button>
      <div class="collapse navbar-collapse justify-content-between" id="collapsibleNavbar">
        <ul class="navbar-nav mr-auto">
          <li class="nav-item dropdown mr-4">
            <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownProvider" data-toggle="dropdown"
              aria-haspopup="true" aria-expanded="false">
              Providers
            </a>
            <div class="dropdown-menu mr-4" aria-labelledby="navbarDropdownProvider">
              <a class="dropdown-item"
                href="#">trans</a>
              <a class="dropdown-item"
                href="#">fund</a>
            </div>
          </li>
                  </ul>
      </div>
    </nav>
  </header>
      </div>
    `;
  }
}
customElements.define('my-element', MyElement);


index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js"></script>

  <script src="/node_modules/@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js"></script>
  <script src="/node_modules/@webcomponents/webcomponentsjs/webcomponents-bundle.js"></script>

  <script type="module" src="./my-element.js"></script>
  <title>lit-element code sample</title>
</head>
<body>
  <my-element>  </my-element>
</body>
</html>

最佳答案

如果您愿意放弃 Shadow DOM,您可以通过覆盖 lit-element 类中的 createRenderRoot 方法将渲染根切换到元素而不是阴影根:

class Navbar extends LitElement {
    createRenderRoot() {
        return this;
    }
    // etc
}

关于html - 如何将引导导航栏实现为 lit-html/lit-element 中的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56376475/

相关文章:

css - Bootstrap 4 - 我们什么时候应该使用行?

html - CSS:固定/固定顶部菜单栏

html - 从后面的代码修改无序列表

javascript - JS 中的动画文本在我这里不起作用,但在 Codepen 示例中起作用

css - 图标题与图像边距对齐

javascript - 将标签添加到选择框 (<select>)?

php - 像这样更改背景图像

javascript - 如何在我的网站上使用 javascript API?

Java HTML 文件和 JEditor Pane

javascript - 在css或jquery中点击标签时需要高亮显示