使用padding-top

时间:2016-06-15 16:03:05

标签: css viewport centering responsive

我一直无法将.content div集中在任何设备中。在某些设备中,.content完全居中,但在其他设备中却没有。我使用padding-top向下推.content,这样它就可以放在任何设备的中心位置。我应该如何使用.contentpadding-top置于任何设备的中心?我应该在这种情况下使用Javascript吗?

body {
  margin: 0;
}

.whole {
  height: 100vh;
  background: #d44949;
}

header:after {
  content: '';
  display: table;
  clear: both;
}

.logo {
  font: 1.4em 'Open Sans',sans-serif;
  color: #fcfcfc;
  text-transform: uppercase;
  float: left;
  margin-left: 15px;
}

.logo > span {
  font-style: italic;
  color: #d8d8d8;
}

.header-nav {
  float: right;
  margin: 20px 15px 0 0;
}

.header-nav > a {
  color: #fafafa;
  text-decoration: none;
  font: 1em 'Open Sans',sans-serif;
  font-weight: 300;
}

.header-nav > a:not(:first-child) {
  margin-left: 15px;
}

.header-nav > a:hover {
  color: yellow;
}

.content {
  display: flex;
  flex-direction: column;
  padding-top: calc(100vh / 2);
}

.content > img {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  margin: auto;
}

.content-nav {
  margin: auto;
  padding-top: 20px;
}

.content-nav > a {
  color: #fafafa;
  text-decoration: none;
  font: 1em 'Open Sans',sans-serif;
  font-weight: 300;
}

.content-nav > a:not(:first-child) {
  margin-left: 10px;
}
<div class="whole">
  <header>
    <h1 class="logo">Max<span>&</span>Spoon</h1>
    <div class="header-nav">
      <a href="/">Download</a>
      <a href="/">Docs</a>
      <a href="/">Tutorial</a>
      <a href="/">Reference</a>
    </div>
  </header>
  <div class="content">
    <img src="http://emblemsbf.com/img/36593.jpg" alt="logo">
    <div class="content-nav">
      <a href="/">Home</a>
      <a href="/">Blog</a>
      <a href="/">Forum</a>
      <a href="/">Stuff</a>
    </div>
  </div>
</div>

1 个答案:

答案 0 :(得分:0)

由于您已经在使用flex,因此可以移除padding-top并将align-items: center;添加到.content

因此.content的CSS变为:

.content {
      display: flex;
      flex-direction: column;
      align-items: center;
    }

这是更新后的代码段。

body {
  margin: 0;
}
.whole {
  height: 100vh;
  background: #d44949;
}
header:after {
  content: '';
  display: table;
  clear: both;
}
.logo {
  font: 1.4em'Open Sans', sans-serif;
  color: #fcfcfc;
  text-transform: uppercase;
  float: left;
  margin-left: 15px;
}
.logo > span {
  font-style: italic;
  color: #d8d8d8;
}
.header-nav {
  float: right;
  margin: 20px 15px 0 0;
}
.header-nav > a {
  color: #fafafa;
  text-decoration: none;
  font: 1em'Open Sans', sans-serif;
  font-weight: 300;
}
.header-nav > a:not(:first-child) {
  margin-left: 15px;
}
.header-nav > a:hover {
  color: yellow;
}
.content {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.content > img {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  margin: auto;
}
.content-nav {
  margin: auto;
  padding-top: 20px;
}
.content-nav > a {
  color: #fafafa;
  text-decoration: none;
  font: 1em'Open Sans', sans-serif;
  font-weight: 300;
}
.content-nav > a:not(:first-child) {
  margin-left: 10px;
}
<div class="whole">
  <header>
    <h1 class="logo">Max<span>&</span>Spoon</h1>
    <div class="header-nav">
      <a href="/">Download</a>
      <a href="/">Docs</a>
      <a href="/">Tutorial</a>
      <a href="/">Reference</a>
    </div>
  </header>
  <div class="content">
    <img src="http://emblemsbf.com/img/36593.jpg" alt="logo">
    <div class="content-nav">
      <a href="/">Home</a>
      <a href="/">Blog</a>
      <a href="/">Forum</a>
      <a href="/">Stuff</a>
    </div>
  </div>
</div>