css 无论浏览器大小如何,如何将Google徽标居中?

pb3skfrl  于 2023-02-26  发布在  Go
关注(0)|答案(4)|浏览(196)

我试图重新创建谷歌主页布局的做法,我似乎不能集中谷歌标志。
我试过了

  • text-align: center;
  • position: absolute;
  • 增加徽标的左边距(但我觉得这不是正确的方法,因为当我改变浏览器大小时,它没有居中。)

我意识到可能是顶栏影响了logo的对齐方式,因为当我移除顶栏时,logo会居中,然而,将Google logo放在单独的div中并设置position:absolute;也不起作用。
这是指向我的项目http://codepen.io/wilfredbtan/pen/dXLxOz的链接
下面是顶栏和徽标html的片段:

<div id="container">
  <div id="topbar">
      <ul>
          <li>
              <a href="#">
                  <img src="the_odin_project/google-homepage/images/blueperson.jpg" style="border-radius: 100%" />
              </a>
          </li>
          <li>
              <a href="https://plus.google.com/u/0/notifications/all?hl=en">
                  <img src="the_odin_project/google-homepage/images/notification.png" />
              </a>
          </li>
          <li>
              <a href="https://www.google.com/intl/en/aboout/products/">
                  <img src="the_odin_project/google-homepage/images/apps.png" />
              </a>
          </li>
          <li><a href="https://images.google.com/">Images</a></li>
          <li><a href="https://mail.google.com/">Gmail</a></li>
      </ul>
  </div>
    <img style="" id="logo" alt="google" src="the_odin_project/google-homepage/images/google-logo.png" />
</div>

下面是相关CSS的一个片段:

body {
  margin: 0 auto;
  padding: 0;
}
#container {
  margin: 10px 0 0 0;
  text-align: center;
}
#topbar {
  margin: 25px 40px 0 0;
}
ul {
  list-style-type: none;
}
li {
  float: right;
  display: block;
  padding: 0 0 0 18px;
}
#topbar ul li {
  font: 12.5px Arial, sans-serif;
}
#topbar ul li:first-child {
  margin-top: -10px;
}
#logo {
  margin: 50px 0 10px 0;
  width: 35em;
  position: relative;
}
dced5bon

dced5bon1#

#logo{
  clear: both;
  display: block;
  margin: 0 auto;
}
yqlxgs2m

yqlxgs2m2#

参见此fiddle

我在这里做的是,把你的logo img移到一个新的div,这个新的div的宽度是50%。为了使它居中,我在CSS中使用了margin:0 auto
更新后的HTML如下所示

<div id="logo-container">
    <img style="" id="logo" alt="google" src="http://res.cloudinary.com/wilfredxd/image/upload/v1471790654/google-logo_paxdp8.png" />
  </div>

更新后的CSS如下所示

#logo-container {
  width: 50%;
  margin: 0 auto;
}

#logo {
  /* margin: 50px 0 10px 0; */
  width: 100%;
}
tjrkku2a

tjrkku2a3#

这非常简单,只需像这样修改#logo CSS:

#logo {
    margin: 50px auto 20px;
    width: 20em;
    display: block;
    clear: both;
}

要使图像居中,请使用margin: auto;并使其成为块元素。

iecba09b

iecba09b4#

我的代码最后看起来像这样。可能不是最干净的解决方案,但它起作用了。

.container {
  display: flex;
  flex-direction: center;
  justify-content: center;
  align-items: center;
  margin-bottom: 20px;
  margin-top: 400px;
}

.logo-wrapper {
  width: 20%;
  margin: 0 auto;
}

.logo {
  width: 20%;
}
<div class="container">
  <div id="logo-wrapper"></div>
  <img src="Google_2015_logo.svg.png" alt="logo" class="logo">
</div>
<form action="https://www.google.com/search" style="display: flex; align-items: center; flex-direction: column;">
  <div class="rounded-box">
    <input autocomplete="off" type="text" name="q">
  </div>
  <div class="search-button">
    <input type="submit" value="Google Search">
    <input type="submit" value="I'm Feeling Lucky" name="btnI">
  </div>
</form>

不是100%满意在CSS中使用px,但还没有找到更好的解决办法!

相关问题