CSS float-right 在 Bootstrap 4 Navbar 中不起作用 [重复]

Posted

技术标签:

【中文标题】CSS float-right 在 Bootstrap 4 Navbar 中不起作用 [重复]【英文标题】:CSS float-right not working in Bootstrap 4 Navbar [duplicate] 【发布时间】:2018-01-11 16:31:46 【问题描述】:

我试图让我的导航链接浮动到我的导航栏的右侧,但我无法让它工作。我尝试使用“.float-right”、“float-xs-right”和“justify-content-end”引导程序 4 类,以及使用“float: right !important;”在我的 CSS 文件中,它仍然无法工作。

这是我网站导航栏的 html

<div id="navbar" class="navbar navbar-fixed-top">
    <div class="container">
        <div class="row">
            <div class="navbar-brand">
                <img src="images/logo.png" >
                Scervino Lawn Service
            </div>
            <ul class="nav justify-content-end">
                <li class="nav-item">
                    <a class="nav-link" href="home">Home</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="services">Services</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="about">About Us</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="contact">Contact</a>
                </li>
            </ul>
        </div>
    </div>
</div>

这里是 CSS:

#navbar 
    box-shadow: 0px 0px 11px #000;
    padding: 0;


#navbar .navbar-brand 
    font-size: 1.6em;
    font-weight: bold;
    color: #9CCC58;

我对 Bootstrap 4 框架比较陌生,所以我可能只是犯了一个愚蠢的错误,但希望有人能帮助我。 :(

【问题讨论】:

【参考方案1】:

Bootstrap 5(2021 年更新)

Bootstrap 5 Navbar 仍然使用 flexbox,但是 rightleft 的概念已经更改startend 表示新的RTL support。所以,类名变了……

float-right --> float-end float-left --> float-start ml-* --> ms-* pl-* --> ps-* mr-* --> me-* pr-* --> pe-*

但是,请记住 浮点数不适用于 flexbox。导航栏中右对齐的最佳方法是使用ms-auto (margin-left: auto) 或justify-content-end

See this question for details


引导程序 4

原来的答案在 Bootstrap 4 中不再有效,在导航栏组件中使用 Bootstrap 的 .row 不是一个好习惯。 .row 只能用于网格列。

既然 Bootstrap 4 是 flexbox,对齐导航栏组件的一种方法是使用 auto-margin utility classes,例如 ml-auto,它是 CSS margin-left:auto 的快捷方式。这可以用来将nav推到右边...

https://www.codeply.com/go/ZAGhCX5lpq

<div id="navbar" class="navbar navbar-expand navbar-fixed-top">
    <div class="container">
        <div class="navbar-brand">
            <img src=".." >
             Scervino Lawn Service
        </div>
        <ul class="nav">
            <li class="nav-item">
                <a class="nav-link" href="home">Home</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="services">Services</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="about">About Us</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="contact">Contact</a>
            </li>
        </ul>
    </div>
</div>

或者像justify-content-between这样的flexbox utils可以用在导航栏内的container上...

<div id="navbar" class="navbar navbar-expand navbar-fixed-top">
    <div class="container justify-content-between">
        <div class="navbar-brand">
            <img src=".." >
             Scervino Lawn Service
        </div>
        <ul class="nav">
            <li class="nav-item">
                <a class="nav-link" href="home">Home</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="services">Services</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="about">About Us</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="contact">Contact</a>
            </li>
        </ul>
    </div>
</div>

请注意,在这种情况下 justify-content-between 有效,因为只有 2 个导航栏组件(导航栏品牌和导航)。

【讨论】:

这解决了我使用 bootstrap 5 提示 right =&gt; startleft =&gt; end 的问题【参考方案2】:

您可以在父级 .row 上使用 .justify-content-between 将 flex 子级移动到行的远端。

#navbar 
    box-shadow: 0px 0px 11px #000;
    padding: 0;


#navbar .navbar-brand 
    font-size: 1.6em;
    font-weight: bold;
    color: #9CCC58;
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" rel="stylesheet"/>
<div id="navbar" class="navbar navbar-fixed-top">
    <div class="container">
        <div class="row justify-content-between">
            <div class="navbar-brand">
                <img src="images/logo.png" >
                Scervino Lawn Service
            </div>
            <ul class="nav justify-content-end">
                <li class="nav-item">
                    <a class="nav-link" href="home">Home</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="services">Services</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="about">About Us</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="contact">Contact</a>
                </li>
            </ul>
        </div>
    </div>

【讨论】:

【参考方案3】:

我尝试使用 Bootstrap 4.0.0 Alpha 6 并且它可以工作,示例如下:https://repl.it/JwMq/0

我刚刚添加了这个:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/css/bootstrap.min.css"/>

还有一个额外的&lt;/div&gt;

【讨论】:

我有那个代码,但它仍然不起作用。哎呀抱歉,当我将代码粘贴到我的问题中时,我忘记添加该 div,但我的原始代码中有额外的 div

以上是关于CSS float-right 在 Bootstrap 4 Navbar 中不起作用 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Bootstrap 4 float-right 在 .row 内

Bootstrap 4 float-right 不适用于导航栏[重复]

reactstrap 正在退出视口,mr / ml-auto和float-right / left不起作用

reactstrap <UncontrolledDropdown> 超出视口,mr/ml-auto 和 float-right/left 不起作用

如何在tailwind-css中水平对齐图像

bootstarp基本使用