【问题标题】:Bootstrap-Centering a text in div vertically, with other content in divBootstrap-将div中的文本垂直居中,其他内容在div中
【发布时间】:2022-01-19 10:04:43
【问题描述】:

我正在尝试将 div 中的一些文本垂直居中,其中还有一个图像,当我使用标签“d-flex align-items-center”时,它确实移动到了中心,但文本本身似乎是有点向顶部移动,我该如何解决这个问题?

codepen 的链接:

https://codepen.io/bladeranner5005/pen/eYGoPQb

Netlify,只需转到联系人部分:

https://nostalgic-curie-32c354.netlify.app

HTML 和 CSS 代码:

/*ESSENTIAL ----------------------------------------------------------------------------------------------------------*/

/*To stop the navbar from covering content, source: https://stackoverflow.com/questions/10336194/top-nav-bar-blocking-top-content-of-the-page*/
body {
    padding-top: 55px;
}



/*To make internal links selection better:*/

html {
    scroll-behavior: smooth;
}

/*Change text size depending on viewport, source: https://css-tricks.com/viewport-sized-typography/ */

h1 {
    font-size: 5.9vw;
}
h2 {
    font-size: 3.0vh;
}
p {
    font-size: 2vmin;
}
/*FONTS --------------------------------------------------------------------------------------------------------------*/

/*Tags from google fonts

Josefin sans light:

font-family: 'Josefin Sans', sans-serif;
font-weight: 300;

Josefin sans regular:

font-family: 'Josefin Sans', sans-serif;
font-weight: 400;

Libre Franklin
font-family: 'Libre Franklin', sans-serif;
font-weight: 800;
*/



/*NAVBAR -------------------------------------------------------------------------------------------------------------*/

/*Structure --*/

.nav-item-spacing {
    margin-left:30px;
    margin-right:30px;
}

.vertical-center {
    margin: 0;
    position: absolute;
    top: 50%;
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
}

/*Colors --*/

.background-black {
    background-color: black;
}

.nav-link-custom-1 {
    font-family: 'Libre Franklin', sans-serif;
    font-weight: 800;
}

.nav-link-custom-2 {
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 400;
}

/*HOME-Logo animation ------------------------------------------------------------------------------------------------*/

/*Background --*/

/*
.background-black {
    background: black;
}
*/

/*Structure --*/


.screen-height {
    height: 100vh;
}

.top-logo {
    height: 13vh;
}

@media (max-width:768px) {
    .top-logo {
        height: 30vh;
    }
}

#animation {
    animation: animation 2s;
}

@keyframes animation {
    from {
        transform: translateY(60vh);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 100%;
    }
}

/*CURRICULUM ---------------------------------------------------------------------------------------------------------*/

/*Background --*/

/*
.background-black {
    background: black;
}
*/

/*Structure --*/

/*
.screen-height {
    height: 100vh;
}
*/

.cur-buffer-mid {
    height: 10vh;
}

@media (max-width:768px) {
    .cur-buffer-mid {
        height: 6vh;
    }
}

.cur-buffer-top {
    height: 8vh;
}

/*Text --*/

.home-cur-text {
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 400;

    color: white;

    text-align: center;
}

/*Button --*/

.link-btn {
    border-style: solid;
    border-width: thick;
    border-color: white;

    background-color: black;

    font-family: 'Libre Franklin', sans-serif;
    font-weight: 800;
}

/*MY WORK ------------------------------------------------------------------------------------------------------------*/

/*Structure --*/

.work-buffer {
    height: 10vh;
}

/*Text --*/

.work-text-title {
    font-family: 'Libre Franklin', sans-serif;
    font-weight: 800;
    color: black;

    font-size: 60pt;
}

.work-text-red {
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 400;
    color: red;

    font-size: 36pt;
}

.work-text-normal {
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 300;
    color: black;

    font-size: 24pt;
}

    @media (max-width:768px) {
        .work-text-title {
            font-family: 'Libre Franklin', sans-serif;
            font-weight: 800;
            color: black;

            font-size: 42pt;
        }

        .work-text-red {
            font-family: 'Josefin Sans', sans-serif;
            font-weight: 400;
            color: red;

            font-size: 24pt;
        }

        .work-text-normal {
            font-family: 'Josefin Sans', sans-serif;
            font-weight: 300;
            color: black;

            font-size: 18pt;
        }
    }

/*Button --*/

.link-btn-light {
    border-style: solid;
    border-width: thick;
    border-color: black;

    background-color: white;

    font-family: 'Libre Franklin', sans-serif;
    font-weight: 800;
}

/*INFO ---------------------------------------------------------------------------------------------------------------*/

/*Structure --*/

.info-buffer {
    height: 10vh;
}

.info-buffer-button {
    height: 15vh;
}

/*Text --*/

/*
.work-text-title {
    font-family: 'Libre Franklin', sans-serif;
    font-weight: 800;
    color: black;

    font-size: 60pt;
}
 */

.info-text-title {
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 400;
    color: black;

    font-size: 36pt;
}

.info-text-red {
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 400;
    color: red;

    font-size: 24pt;
}

.info-text-normal {
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 300;
    color: black;

    font-size: 24pt;
}

    @media (max-width:768px) {
        .info-text-title {
            font-family: 'Josefin Sans', sans-serif;
            font-weight: 400;
            color: black;

            font-size: 18pt;
        }

        .info-text-red {
            font-family: 'Josefin Sans', sans-serif;
            font-weight: 400;
            color: red;

            font-size: 3vmin;
        }

        .info-text-normal {
            font-family: 'Josefin Sans', sans-serif;
            font-weight: 300;
            color: black;

            font-size: 4vmin;
        }
    }


/*Align text*/

.txt-center {
    text-align: center;
}

.txt-left {
    text-align: left;
}

.txt-right {
    text-align: right;
}

.txt-justify {
    text-align: justify;
}

/*FOOTER -------------------------------------------------------------------------------------------------------------*/

/*Title name----------------------------------------------------------------------------------------------------------*/

.page-title-font {
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 400;

    color: white;
}

/*CONTENT GENERAL-----------------------------------------------------------------------------------------------------*/

.content-title-white {
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 400;

    color: white;
}

.background-white {
    background-color: white;
}

/*CONTENT-INFO--------------------------------------------------------------------------------------------------------*/


.info-text-title-contacts {
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 400;
    color: black;

    font-size: 38pt;
}

.info-text-red-contacts {
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 400;
    color: red;

    font-size: 24pt;
}

.info-text-normal-contacts {
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 300;
    color: black;

    font-size: 24pt;
}

@media (max-width:768px) {
    .info-text-title-contacts {
        font-family: 'Josefin Sans', sans-serif;
        font-weight: 400;
        color: black;

        font-size: 18pt;
    }

    .info-text-red-contacts {
        font-family: 'Josefin Sans', sans-serif;
        font-weight: 400;
        color: red;

        font-size: 3vmin;
    }

    .info-text-normal-contacts {
        font-family: 'Josefin Sans', sans-serif;
        font-weight: 300;
        color: black;

        font-size: 3vmin;
    }
}
<!doctype html>
<html lang="it">
<head>
    <!--Required meta tags-->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!--Font links-->
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@300;400&family=Libre+Franklin:wght@800&display=swap" rel="stylesheet">

    <!--Bootstrap CSS-->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">

    <!--Icons links-->

    <!--Custom css-->
    <link href="../css/index-css.css" rel="stylesheet">

    <link href="../css/contacts-css.css" rel="stylesheet">


    <title>Andrea D'Angelo-Contacts</title>
</head>

<body>

<!-- NAVBAR ----------------------------------------------------------------------------------------------------------->
<!--Modified bootstrap NAVBAR, with different colors and positioning when in desktop----------------------------------->

<nav class="navbar navbar-expand-lg fixed-top navbar-dark background-black">
    <a class="navbar-brand" href="#"></a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarNavAltMarkup">
        <div class="navbar-nav mx-auto">
            <a class="nav-item nav-link nav-link-custom-1 nav-item-spacing" href="#">Home</a>
            <a class="nav-item nav-link nav-link-custom-1 nav-item-spacing" href="#">Curriculum</a>
            <a class="nav-item nav-link nav-link-custom-1 nav-item-spacing" href="#">Portfolio</a>
            <a class="nav-item nav-link active nav-link-custom-1 nav-item-spacing" href="#">Contatti</a>

            <!--Codice per il dropdown da: https://stackoverflow.com/questions/17904862/bootstrap-position-of-dropdown-menu-relative-to-navbar-item-->

            <!--<li class="nav-item dropdown">
                <a class="nav-link dropdown-toggle nav-link-custom-2 nav-item-spacing" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                    Language
                </a>
                <div class="dropdown-menu" aria-labelledby="navbarDropdown">
                    <a class="dropdown-item nav-link-custom-2" href="#">
                        <span></span>
                        Italiano</a>
                    <a class="dropdown-item nav-link-custom-2" href="#">
                        <span></span>
                        English</a>
                </div>
            </li>-->
        </div>

        <!--Dropdown item end-->

    </div>
</nav>

<!--Main tag----------------------------------------------------------------------------------------------------------->

<main>

<!--Name--------------------------------------------------------------------------------------------------------------->
<section class="container-fluid">

    <div class="row">

        <div class="col-12 text-center background-black mb-5">
            <h1 class="page-title-font">CONTACTS</h1>
        </div>

    </div>

</section>

<!--CONTENT------------------------------------------------------------------------------------------------------------>

<!--Row one-->

<section class="container-fluid">

    <div class="row container-fluid">

<!--Section: INFO-->

        <div class="col-12 col-md-6">
            <div class="container-fluid">

            <!--Title-->

                <div class="row background-black rounded-pill pb-3 pt-3">

                    <div class="col-1"></div>

                    <div class="col-9 d-flex align-items-center align-middle">
                        <h2 class="content-title-white">Info</h2>
                    </div>

                    <div class="col-2">
                        <img src="../img/icons/contacts/contacts-info.svg" alt="Info icon" class="background-white rounded-circle img-fluid">
                    </div>

                </div>

            <!--Content-->

                <!--DATA-->
                <div class="row">

                    <div class="col-1"></div>

                        <div class="col-9 container-fluid">

                                        <div class="row">
                                            <div class="col-12 txt-center txt-justify">
                                                <h3 class="info-text-title-contacts">Andrea Telemaco D'Angelo</h3>
                                            </div>
                                        </div>

                                        <div class="row">
                                            <div class="col-6 txt-left">
                                                <p class="info-text-red-contacts">Nazionalità</p>
                                            </div>

                                            <div class="col-6 txt-right">
                                                <p class="info-text-normal-contacts">Italiana</p>
                                            </div>
                                        </div>

                                        <div class="row">
                                            <div class="col-6 txt-left">
                                                <p class="info-text-red-contacts">Data di nascita</p>
                                            </div>

                                            <div class="col-6 txt-right">
                                                <p class="info-text-normal-contacts">08/04/2000</p>
                                            </div>
                                        </div>

                                        <div class="row">
                                            <div class="col-6 txt-left">
                                                <p class="info-text-red-contacts">Luogo di nascita</p>
                                            </div>

                                            <div class="col-6 txt-right">
                                                <p class="info-text-normal-contacts">Caserta</p>
                                            </div>
                                        </div>

                                        <div class="row">
                                            <div class="col-4 txt-left">
                                                <p class="info-text-red-contacts">Email</p>
                                            </div>

                                            <div class="col-8 txt-right">
                                                <p class="info-text-normal-contacts">emailexemple@gmail</p>
                                            </div>
                                        </div>

                                        <div class="row">
                                            <div class="col-6 txt-left">
                                                <p class="info-text-red-contacts">Telefono</p>
                                            </div>

                                            <div class="col-6 txt-right">
                                                <p class="info-text-normal-contacts">0000000000</p>
                                            </div>
                                        </div>

                        </div>

    <!--TAG-->
                    <div class="col-2">
                    </div>

                </div>

<!--DIVS FOR CONTAINERS-->

                    </div>
                </div>

            <!--CONTENT END-->

</section>



<!--Footer start------------------------------------------------------------------------------------------------------->

<!--Red line-->
<div class="border-top border-5 border-danger" style="width: 100%"></div>


<!--Start container-->
<footer class="container-fluid">

    <!--ROW 1-->
    <div class="row mb-5 mt-5">

        <!--ROW 1-A-->
        <div class="col-12 col-md-6 mb-5 mb-md-0">

            <div class="container-fluid">

                <div class="row">

                    <div class="col-2 col-md-3"></div>

                    <div class="col-8 col-md-6">
                        <a href="#" class="link-btn-light btn btn-light w-100">Home<br>page</a>
                    </div>

                    <div class="col-2 col-md-3"></div>

                </div>

            </div>

        </div>

        <!--ROW 1-B-->
        <div class="col-12 col-md-6">

            <div class="container-fluid">

                <div class="row">

                    <div class="col-2 col-md-3"></div>

                    <div class="col-8 col-md-6">
                        <a href="#" class="link-btn-light btn btn-light w-100">Online<br>curriculum</a>
                    </div>

                    <div class="col-2 col-md-3"></div>

                </div>

            </div>

        </div>

    </div>

    <!--ROW 2-->
    <div class="row mb-5 mt-5">

        <!--ROW 2-A-->
        <div class="col-12 col-md-6 mb-5 mb-md-0">

            <div class="container-fluid">

                <div class="row">

                    <div class="col-2 col-md-3"></div>

                    <div class="col-8 col-md-6">
                        <a href="#" class="link-btn-light btn btn-light w-100">Online<br>portfolio</a>
                    </div>

                    <div class="col-2 col-md-3"></div>

                </div>

            </div>

        </div>

        <!--ROW 2-B-->
        <div class="col-12 col-md-6">

            <div class="container-fluid">

                <div class="row">

                    <div class="col-2 col-md-3"></div>

                    <div class="col-8 col-md-6">
                        <a href="#" class="link-btn-light btn btn-light w-100">Full contacts<br>and info</a>
                    </div>

                    <div class="col-2 col-md-3"></div>

                </div>

            </div>

        </div>

    </div>

</footer>

</main>

<!-- Javascript for Bootstrap --------------------->
<!-- Optional JavaScript; choose one of the two! -->

<!-- Option 1: Bootstrap Bundle with Popper -->
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
<!-- Javascript for Bootstrap END------------------>

</body>
</html>

【问题讨论】:

    标签: html css twitter-bootstrap bootstrap-5


    【解决方案1】:

    Nadz 是正确的,Bootstrap 通过 _reboot 在所有标题标签上添加了底部边距。与那个答案不同,在不添加更多样式并遵循 Bootstrap 的情况下,将 mb-0 类添加到您的 h2 content-title-white 元素中,并且应该居中。

    您的 h2 现在只会保持文本的高度。

    您可能在 codepen 中看不到它,因为信息图标不存在,因此您的文本为容器提供了高度。如果您在实时版本中打开开发工具并将mb-0 添加到您的 h2 元素中,您会看到它工作正常。

    【讨论】:

      【解决方案2】:

      文本略微移到顶部,因为引导程序添加了margin-bottom: 0.5rem

      .content-title-white {
          margin-bottom: 0 !important;
      }
      

      【讨论】:

      • 嗨,我试过了,但似乎没有任何改变?我使用的是 bootstrap 5,所以版本可能有所不同?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-28
      • 2014-11-28
      • 2017-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多