css 在两个父div内水平对齐div时出现问题

3npbholx  于 2023-03-09  发布在  其他
关注(0)|答案(2)|浏览(173)

我正在尝试排列三个div标签,其中包含一个组合网站上的社交图标的链接图像。我已经能够让它们彼此相邻,但只能让它们在容器div中均匀分布,但我希望它们居中对齐。这很难解释。所以我附上了一个图表来使它更清楚。这个问题可能与我使用的容器div有关,但我希望有人帮助我解决这个问题。下面是我使用的代码,其中几乎没有删除,以便进一步给予问题的背景:

<!DOCTYPE html>
<html lang="en">
<style>
html {
    background-color: black;
    padding: 0%;
}
body {
    margin: 0%;
}
#leftWrapper {
    color: white;
    width: 30%;
    height: 100%;
    position: absolute;
    margin: 0%;
    padding: 0%;
    text-align: center;
    font-family: 'Trebuchet MS';
}
#leftVertWrapper {
    position: absolute;
    top: 50%;
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
}
#socialIconBigWrapper {
    display: flex;
}
.socialIconWrapper {
    flex: 20%;
    padding: 5px;
    box-align: 'justify-self';
}
.socialIcon {
    width: 30%;
}
</style>
    <body>
        <div id="leftWrapper">
            <div id="leftVertWrapper">
                <div id="socialIconBigWrapper">
                    <div class="socialIconWrapper" style="float: left;">
                        <a style="text-decoration: none;" href="">
                            <img class="socialIcon" src="linkedinIcon.png">
                        </a>
                    </div>
                    <div class="socialIconWrapper" style="float: left;">
                        <a style="text-decoration: none;" href="">
                            <img class="socialIcon" src="twitterIcon.png">
                        </a>
                    </div>    
                    <div class="socialIconWrapper" style="float: left;">
                        <a style="text-decoration: none;" href="">
                            <img class="socialIcon" src="githubIcon.png">
                        </a>
                    </div>
                </div>
            </div>
        </div>
    </body>
</html>

我试过使用表格,也试过使用float: left;display: inline-block来调整填充和边距。当使用表格时,图像大小会自动居中,方法是在图像两侧添加空白区域,使图像变宽。这就实现了图中所示的第一个效果。并且没有填充或边距的改变可以修复它。使用float只是将所有的图像移动到div的一侧,而不是将它们放在一起,并显示:内联块;什么都没改变。

5gfr0r5j

5gfr0r5j1#

向#leftWrapper添加2行代码将使图标居中对齐:

#leftWrapper {
    color: white;
    width: 30%;
    height: 100%;
    position: absolute;
    margin: 0%;
    padding: 0%;
    text-align: center;
    font-family: 'Trebuchet MS';

    /*added line of code below this comment*/
    display: flex;
    justify-content: center;

这就是你要说的吗?我找不到你在课文中提到的图表。

hxzsmxv2

hxzsmxv22#

我知道你正在尝试将三个包含社交图标链接图像的div标签居中放置在你的作品集网站上。我很感激你在解释这个问题上所做的努力。听起来你已经能够让div标签彼此相邻,但在容器div中居中放置它们时遇到了麻烦。
您可能要尝试的一个解决方案是添加显示:flex到容器div的CSS,然后使用justify-content:center,将三个div标签水平居中。
下面是一个类似的示例

body {
  width: 100%;
  height: 100vh;
  border: 1px solid red;
}

main {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  border: 1px solid #000;
  margin: 5px;
}

.icon-container {
  display: flex;
  justify-content: center;
  align-items: center;
  border: 1px solid green;
  margin: 5px;
}

.icon-container .icon {
  width: 50px;
  height: 50px;
  margin: 0px 5px;
}

.icon-container .icon img {
  width: 100%;
  height: 100%;
  object-fit: containe;
}
<!DOCTYPE html>
<html lang="en">

<body>
  <main>
    <div class="icon-container">
      <div class="icon">
        <a href="www.facebook.com">
          <img src="https://cdn-icons-png.flaticon.com/128/3670/3670124.png" />
        </a>
      </div>
      <div class="icon">
        <a href="www.twitter.com">
          <img src="https://cdn-icons-png.flaticon.com/128/3670/3670127.png" />
        </a>
      </div>
      <div class="icon">
        <a href="www.instagram.com">
          <img src="https://cdn-icons-png.flaticon.com/128/3670/3670125.png" />
        </a>
      </div>
    </div>
  </main>
</body>

</html>

我建议查看以下有用的资源:https://www.freecodecamp.org/news/how-to-center-anything-with-css-align-a-div-text-and-more/

相关问题