【问题标题】:Flexbox item not going to the bottom of a container?Flexbox 项目不会进入容器底部?
【发布时间】:2019-02-03 18:08:43
【问题描述】:

正如您从这个问题中看到的那样,我对 Flexbox 和 SASS 还是很陌生。我有一个 MVC 应用程序,我试图根据它们是否经过身份验证来对齐标头登录信息。

如果您未通过身份验证,或者他们的用户名和注销/帐户信息堆积在上面如果它们经过身份验证,则相互顶部。

我正在尝试使用 flexbox 来完成这些。我的想法是我将拥有一个整体父容器"header_account-info""header__logo" 子容器中的徽标,以及"header_account-user""header-account-login" 中的其他登录部分。为了测试,我使用了“header-account-login”容器。

使用下面的代码,我无法使"header-account-login" 容器具有背景颜色(用于测试),也无法使其与底部对齐。

我将其放入 Code Pen 并看到相同的结果。 https://codepen.io/anon/pen/WgGxQL

为什么我在"header-account-login" 容器中看不到背景颜色,而我认为我有正确的设置来使按钮转到容器的末尾(底部)?

HTML

<div class="header">
        <div class="header__logo">
            <img src="~/images/logo.png" class="header-logo" />
        </div>
        <div class="header_account-info">


                <div class="header-account-login">
                    <a href="@Url.Action("Register", "Account")" id="registerLink" class="btn btn-outline-secondary">
                        <i class="far fa-user-plus"></i> Register
                    </a>
                    <a href="@Url.Action("Login", "Account")" id="loginLink" class="btn btn-outline-secondary">
                        <i class="fas fa-sign-in-alt"></i> Log In
                    </a>
                </div>
        </div>
    </div>

SASS

.header {
    display: flex;
    padding: 3px;

    &__logo {
        /*flex: 1;*/
        margin-right: auto;
        background-color: aqua;
        height: 100px;  /*TESTING*/
    }

    &__account-info {
        display: flex;
        background-color: aquamarine;
    }

    &__account-user {
        background-color: blanchedalmond;
    }

    &__acount-login {
        align-items: flex-end;
        background-color: aquamarine;
    }
}

【问题讨论】:

    标签: css sass flexbox


    【解决方案1】:

    这是使它工作的一种方法:

    .header-account-info {
        position: relative;
    }
    .header-account-login {
        background-color: red;
        position: absolute;
        bottom: 0px;
        right: 0px;
        width: 158px;
    }
    

    您尝试调用班级的方式(即“&__acount-login”)是错误的 - 只需像我的示例一样给自己提供完整的班级名称。

    【讨论】:

    • &__account-login 在使用 SASS 时是正确的.....这是假设我实际上拼写正确。另外,您的建议根本不使用 Flexbox,而我同时使用 SASS 和 Flexbox。
    【解决方案2】:

    为什么我在“header-account-login”容器中看不到背景颜色,而我认为我有正确的设置来使按钮转到容器的末尾(底部)?

    因为您的 HTML/CSS 中有拼写错误 - 在某些情况下,您使用一个下划线,而在其他情况下,您使用两个下划线。此外,“帐户”在某些地方拼写错误。

    至于lauot,我认为这就足够了:

    .header {
      display: flex;
      padding: 3px;
      justify-content: space-between;
    }
    
    .header__logo {
      /*flex: 1;*/
      margin-right: auto;
      background-color: aqua;
      height: 100px;
    }
    
    .header__account-info {
      display: flex;
      align-items: flex-end;
    }
    <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.2/css/bootstrap.min.css" rel="stylesheet" />
    <div class="header">
      <div class="header__logo">
        <img src="http://www.fillmurray.com/g/140/100" class="header-logo" />
      </div>
      <div class="header__account-info">
    
    
        <div class="header__account-login">
          <a href="@Url.Action(" Register ", "Account ")" id="registerLink" class="btn btn-outline-secondary">
            <i class="far fa-user-plus"></i> Register
          </a>
          <a href="@Url.Action(" Login ", "Account ")" id="loginLink" class="btn btn-outline-secondary">
            <i class="fas fa-sign-in-alt"></i> Log In
          </a>
        </div>
      </div>
    </div>

    【讨论】:

    • 谢谢,今晚有机会我会去看看。我以为我复制并粘贴了 CSS 名称,但我一定只是输入和拼写错误。一遍又一遍地看它之后,你会错过一些小东西。
    • 大部分是我没有看到的拼写错误。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2022-10-02
    • 2016-07-29
    • 2018-09-24
    • 1970-01-01
    • 2014-11-28
    • 2016-10-01
    • 2023-03-19
    • 2017-01-06
    相关资源
    最近更新 更多