3

当我设置position:fixed到我的标题时,它消失了,我不知道为什么。这是我的代码:

html,
body {
  height: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

#header {
  position: fixed;
}

#header-title {
  float: left;
}

#header-navigation {
  float: right;
}

.content-container {
  width: 100%;
  columns: 3;
  -webkit-columns: 3;
  /* Safari and Chrome */
  -moz-columns: 3;
  /* Firefox */
  column-gap: 0px;
  -moz-column-gap: 0px;
  -webkit-column-gap: 0px;
  column-fill: balance|auto;
}

.post {
  display: block;
  position: relative;
}

.post img {
  width: 100%;
  height: auto;
  display: block;
}

.post h2 {
  position: absolute;
  display: none;
  top: 50%;
  text-align: center;
  margin: 0 auto;
  width: 100%;
  color: #000;
  font-family: 'Raleway', sans-serif;
  font-size: 14px;
  text-transform: uppercase;
  font-weight: 500;
}

.post:hover img {
  opacity: 0.15;
}

.post:hover h2 {
  display: block;
}
<html>

<head>
  <link rel="stylesheet" type="text/css" href="style.css">
</head>

<body>

  <div id="header">

    <div id="header-title">
      TITLE
    </div>

    <div id="header-navigation">
      MENU
    </div>
  </div>

  <div class="content-container">

    <div class="post">
      <img src="1.jpeg">

      <h2 class="post">
        Hello
      </h2>

    </div>

    <div class="post">
      <img src="1.jpeg">

      <h2 class="post">
        Hello
      </h2>
    </div>

    <div class="post">
      <img src="1.jpeg">

      <h2 class="post">
        Hello
      </h2>
    </div>

  </div>

</body>

</html>

4

2 回答 2

3

将 DOM 节点设置为固定会将其从正常的文档流中移除。

您应该使用以下 CSS 将标题设置为固定高度,并使用与内容容器的填充相同的高度(因为它不会将内容容器向下推,因为它已从正常文档流中删除)。请注意,在此示例中两者都有 20px。

#header {
    position: fixed;
    background-color: red;
    width: 100%;
    height: 20px;
    z-index: 10;
}

.content-container {
    padding-top: 20px;
}

有关完整的工作示例,请参见 jsfiddle:http: //jsfiddle.net/x8vbs/

于 2013-09-30T15:39:53.873 回答
1

Try adding the transform method translateZ(0); , ofcourse this does not fix the issue accross 100% of the browsers, but I've founded it to be 100% effective.

#header {
    position: fixed;
    background-color: red;
    width: 100%;
    height: 20px;
    z-index: 10;
    top: 0;
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
}
于 2014-09-18T20:42:50.823 回答