【问题标题】:Buttons on Navbar not aligned in reactJS导航栏上的按钮在 reactJS 中未对齐
【发布时间】:2022-01-26 08:20:26
【问题描述】:

我正在使用 bootstrap 5 中的导航栏。我遇到了 UI 问题。

我有什么?

这是我目前拥有的导航栏。

我想要什么?

我想将导航栏按钮(登录和注册)对齐到右端。

import React from "react";
import { Link, useNavigate } from "react-router-dom";

const Navbar = (props) => {
  let navigate = useNavigate();

  const handleLogout = () => {
    localStorage.removeItem("token");
    console.log("hello");
    navigate("/login");
    props.showAlert("User Logged Out succesfully! ", "info");
    
  };

  return (
    <>
      <nav className="navbar navbar-expand-lg navbar-dark bg-dark">
        <div className="container-fluid">
          <Link className="navbar-brand" to="/">
            Navbar
          </Link>
          <button
            className="navbar-toggler"
            type="button"
            data-bs-toggle="collapse"
            data-bs-target="#navbarNav"
            aria-controls="navbarNav"
            aria-expanded="false"
            aria-label="Toggle navigation"
          >
            <span className="navbar-toggler-icon"></span>
          </button>
          <div className="collapse navbar-collapse" id="navbarNav">
            <ul className="navbar-nav">
              <li className="nav-item">
                <Link className="nav-link active" aria-current="page" to="/">
                  Home
                </Link>
              </li>
              <li className="nav-item">
                <Link className="nav-link" to="/about">
                  About
                </Link>
              </li>
            </ul>

            {!localStorage.getItem("token") ? (
              <form className="d-flex">
                <Link
                  className="btn btn-outline-success mx-2"
                  to="/signup"
                  role="button"
                >
                  SignUp
                </Link>
                <Link
                  className="btn btn-outline-success"
                  to="/login"
                  role="button"
                >
                  Login
                </Link>
              </form>
            ) : (
              <form className="d-flex">
                <button
                  className="btn btn-outline-success mx-2"
                  onClick={handleLogout}
                >
                  LogOut
                </button>
              </form>
            )}
          </div>
        </div>
      </nav>
    </>
  );
};

export default Navbar;

我已经尝试了很多次,但仍然无法正常工作。我也在使用 bootstrap 内置类。

【问题讨论】:

  • 你试过float吗?
  • 不,我只试过margin-inline-start
  • 我在你的代码中没有看到这个。您可以用您尝试过的内容更新帖子吗?另外,你能用float试一次吗?
  • 浮动不工作。我使用 chrome 开发工具尝试了margin-inline-start

标签: javascript html css reactjs bootstrap-4


【解决方案1】:

只需要像这样在&lt;ul&gt; 中添加me-auto

<ul className="navbar-nav me-auto">

【讨论】:

    【解决方案2】:

    你只需要添加一个me-auto 类和&lt;ul&gt; 给定的&lt;ul class="navbar-nav me-auto"&gt;

    import React from "react";
    import { Link, useNavigate } from "react-router-dom";
    
    const Navbar = (props) => {
      let navigate = useNavigate();
    
      const handleLogout = () => {
        localStorage.removeItem("token");
        console.log("hello");
        navigate("/login");
        props.showAlert("User Logged Out succesfully! ", "info");
        
      };
    
      return (
        <>
          <nav className="navbar navbar-expand-lg navbar-dark bg-dark">
            <div className="container-fluid">
              <Link className="navbar-brand" to="/">
                Navbar
              </Link>
              <button
                className="navbar-toggler"
                type="button"
                data-bs-toggle="collapse"
                data-bs-target="#navbarNav"
                aria-controls="navbarNav"
                aria-expanded="false"
                aria-label="Toggle navigation"
              >
                <span className="navbar-toggler-icon"></span>
              </button>
              <div className="collapse navbar-collapse" id="navbarNav">
                <ul class="navbar-nav me-auto"> 
                  <li className="nav-item">
                    <Link className="nav-link active" aria-current="page" to="/">
                      Home
                    </Link>
                  </li>
                  <li className="nav-item">
                    <Link className="nav-link" to="/about">
                      About
                    </Link>
                  </li>
                </ul>
    
                {!localStorage.getItem("token") ? (
                  <form className="d-flex">
                    <Link
                      className="btn btn-outline-success mx-2"
                      to="/signup"
                      role="button"
                    >
                      SignUp
                    </Link>
                    <Link
                      className="btn btn-outline-success"
                      to="/login"
                      role="button"
                    >
                      Login
                    </Link>
                  </form>
                ) : (
                  <form className="d-flex">
                    <button
                      className="btn btn-outline-success mx-2"
                      onClick={handleLogout}
                    >
                      LogOut
                    </button>
                  </form>
                )}
              </div>
            </div>
          </nav>
        </>
      );
    };
    
    export default Navbar;

    【讨论】:

    • 您遇到了什么错误,可以在这里显示吗?
    • 它只是 className 被替换为 class
    猜你喜欢
    • 2014-03-20
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-03
    相关资源
    最近更新 更多