html - 如何设置带有水平滚动页面的固定页眉?

标签 html css

背景

我试图设计一个具有固定标题但页面其余部分水平滚动的网站。水平滚动部分将仅包含一组 6 张图像。标题将由网页名称和导航栏组成。

问题

我知道我需要使用 CSS 属性 Position:Fixed; 设置 header ,我已经这样做了并且按预期工作。

问题是页面的其余部分,我不确定要设置照片所在的 div“Photoframe”的哪些属性。div“Photoframe”的宽度需要根据照片的尺寸进行动态调整上传新照片时会发生变化。

到目前为止我有什么

我有一个“间隔”,它设置了标题的高度和 100% 的宽度。这是为了防止相框出现在标题下方。有点管用。然而,当用户垂直滚动页面时,“photoframe”会上下移动并忽略间隔符。

HTML

<body>
<div id="Header">
  <header>
    <div class="title">
      <h1>Bass Clef Photography</h1>
    </div>
    <div class="tagline">Passion 4 Live Music & Passion 4 Photography</div>
  </header>

  <div id="tabsContainer">
   <div class='tab zero'>
      <ul>
        <li><a href="BassClef.html">Home</a></li>
      </ul>
    </div>
   <div class='tab one'>
      <ul>
        <li><a href="#">Music Gallery</a></li>
      </ul>
    </div>
    <div class='tab two'>
      <ul>
        <li><a href="#">About</a></li>
      </ul>
    </div>
    <div class='tab three'>
      <ul>
        <li><a href="#">Clients</a></li>
      </ul>
    </div>
    <div class='tab four'>
      <ul>
        <li><a href="#">Contact</a></li>
      </ul>
    </div>
      <div class='tab five'>
      <ul>
        <li><a href="members.php">Members</a></li>
      </ul>
    </div>
  </div>

</div>







<div class="spacer"></div>
<div id="photoframe">
      <div class="pics"> <img src="uploads/picture01.jpg" alt=""></div>
      <div class="pics"><img src="uploads/picture02.jpg" alt=""></div>
        <div class="pics"><img src="uploads/picture03.jpg" alt=""></div>
        <div class="pics"><img src="uploads/picture04.jpg" alt=""></div>
         <div class="pics"><img src="uploads/picture05.jpg" alt=""></div>
      <div class="pics"> <img src="uploads/picture06.jpg" alt=""></div>
      <div class="pics"><img src="uploads/picture07.jpg" alt=""></div>
        <div class="pics"><img src="uploads/picture08.jpg" alt=""></div>
   </div>



   </div>
</body>

CSS

@charset "utf-8";
/* CSS Document */


/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
    display: block;
}

*, :before, :after {
    -ms-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box
}
body {
    line-height: 1;

}
ol, ul {
    list-style: none;
}
blockquote, q {
    quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}

/*End of CSS reset*/


a:link {
    color: #FFF;
    text-decoration: none;
}      /* unvisited link */
a:visited {
    color: #FFF;
    text-decoration: none;
}  /* visited link */
a:hover {
    color: #FFF;
    text-decoration: none;
}  /* mouse over link */
a:active {
    color: #030303;
    text-decoration: none;
    font-size: 100%;
}  /* selected link */

#Header{
    position: fixed;
    top: 0px;
    left: 0px;
    float: left;




}



.spacer
{
    height: 300px;
    width: 100%;
}

body{
    background-color:#424242;
}

.title{
    font-size: 6em;
    color: #FFF;
    margin-top: 30px;
    margin-left: 30px;
    margin-bottom: 10px;
}

.tagline{
    font-size: 3em;
    color: #d3701e;
    margin-left: 30px;


}

#tabsContainer {
    position: relative;
    height: 50px;
    width: 450px;
    margin-left: auto;
    margin-right: auto;
}

#tabsContainer {
    height: 50px;
    width: auto;
    padding-left: 30px;
    font-size: 24px;
}
#tabsContainer ul {
    list-style: none;
    margin: 0;
    padding: 0;
    font-size:24px;
}
#tabsContainer ul li {
    display: inline;
    margin: 0px;
    display: block;
    height: 50px;
    text-align: center;
    line-height: 30px;
    font-size:24px;
}
#tabsContainer ul li a {
    height: 33px;
    display: block;
    float: left;
    padding: 17px 15px 0 15px;
    font: bold 12px Arial;
    color: #FFF;
    text-decoration: none;
    font-size:24px;
}
#tabsContainer ul li a:hover {
    color: #d3701e;
    height: 50px;
    font-size: 24px;
}
#tabsContainer ul li#active a {
    color: #d3701e;
    background: url(images/navigation-hover.png) repeat-x left top;
    font-size:24px;
}

.tab{
float: left;    
font-size:24px;
}

.tab.one
{
    width:190px;
    font-size:24px;
}

#photoframe
{
    position: absolute;
    padding: 0 25px 0 25px;
    overflow: visible;
    white-space: nowrap;
    left: 0px;

}

#photoframe .pics
{
    margin: 0 5px 0 5px;
    display: inline-block;
    position: relative;
    overflow: hidden;


}

#photoframe .pics img {


    padding: 0;
    margin: 0;
    z-index: 1;
    display:inline-block;
}


.upload
{
    float: left;
    vertical-align: baseline;
}

最佳答案

您需要将 top:380px 添加到 #photoframe,这将解决问题。

关于html - 如何设置带有水平滚动页面的固定页眉?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23436041/

相关文章:

jquery - 带有粘性标题的视差滚动

html - 调整浏览器大小时文本居中

javascript - html5 垂直对齐 3 个 Div 等间距

javascript - 使用图片上传的django动态背景

jquery - img 在所有浏览器中去饱和 - 问题

html - 表格单元框模型: extra width and height

php - HTML 下拉列表仅将最后一行输入到 mySQL

javascript - 居中的 div 在 IE8 中不起作用

javascript - 响应式导航切换不起作用

html - CSS 选择器,div 输入 :checked