固定宽度列表项延长页面全长

时间:2016-08-04 17:09:21

标签: html css html5 css3 fixed-width

我有一个导航菜单,页面左侧宽度高达250像素,高度高100%。我添加了 1。修复了导航菜单顶部的顶部标题列表项,以及 2。导航菜单底部的固定页脚列表项。我的想法是保持两个项目都是固定的,当浏览器宽度达到一定大小时,这两个项目也必须消失。但我有一个大问题:

  

问题1:当我将固定宽度添加到 .topfilter 和。 bottomfilter 时,列表项现在扩展了整个宽度    整个页面而不是导航菜单。

     

问题2:现在,我在浏览器中调整固定宽度的项目    不要消失

     

加分:我也不知道如何在.topfilter和.bottomfilter中添加填充,以便他们不会掩盖之前的文本。   Padding-Top和Padding-Bottom不起作用。

固定宽度项目: https://jsfiddle.net/4fqapznu/1/

.topfilter {border-bottom:solid #333 2px; width:100%; height:40px; position:fixed; display:block; text-align:left; background-color:blue; -moz-box-sizing: border-box;
    box-sizing: border-box;}


.bottomfilter {border-top: solid #333 2px; width:100%; height:50px; position:fixed; display:block; text-align:left; background-color:red; -moz-box-sizing: border-box; box-sizing: border-box; bottom:0;}

HTML:

         <!-- Sidebar -->
  <div id="sidebar-wrapper">


    <ul class="sidebar-nav">
    <li class="topfilter">
   <a class="filtertitle">Title</a>
   </li>

      <li>
        <a href="#/content">
        Content
        </a>
      </li>
              <li>
        <a href="#/topics">
        Topics
        </a>
      </li>
              <li>
        <a href="#">
        Groups
        </a>
      </li>
              <li>
        <a href="#">
        Premium
        </a>
      </li>
      <li>
        <a href="#">Dashboard</a>
      </li>
      <li>
        <a href="#">Shortcuts</a>
      </li>
      <li>
        <a href="#">Overview</a>
      </li>
      <li>
        <a href="#">Events</a>
      </li>
      <li>
        <a href="#">About</a>
      </li>
      <li>
        <a href="#">Services</a>
      </li>
      <li>
        <a href="#">Contact</a>
      </li>

        <li class="bottomfilter">
   <a class="filtertitle">Footer</a>
   </li>

    </ul>
  </div>
  <!-- /#sidebar-wrapper -->



  <div class="content" style="min-height:90%; background:white;"  >



  </div>
  <div class="push"></div>

<footer class="footer">


        </footer>

CSS:

a {outline:none !important;}

html,
body,
.wrap {
  height: 100%;
}

.wrap {
  box-sizing: border-box;
}

form {
  height: 100%
}

.wrap {
  min-height: 100%;
  height: auto !important;
  height: 100%;
  margin-bottom: -60px;
  /* for sticky footer to not go below page */
  /* for sticky header to not overlap content */
}

.push,
.footer {
  height: 60px;
}



.footer {
  background-color: #ebebeb;
  height: 60px;
  width: 100%;
  position: fixed;
  bottom: 0;   
}

.content {
  position: absolute;
  width: 100%;
  top: 120px;
  background-color: yellow;
  z-index: 0;
}


#sidebar-wrapper {
  z-index: 1000;
  position: fixed;
  left: 142px;
  top: 0px;
  margin-bottom: 60px;
  width: 0;
  height: 100%;
  margin-left: -142px;
  overflow-y: auto; overflow-x: hidden;
  background: #eee;
  -webkit-transition: all 0.5s ease;
  -moz-transition: all 0.5s ease;
  -o-transition: all 0.5s ease;
  transition: all 0.5s ease;
}


.topfilter {border-bottom:solid #333 2px; width:100%; height:40px; position:fixed; display:block; text-align:left; background-color:blue; -moz-box-sizing: border-box:
    box-sizing: border-box:}

.filtertitle { position:relative; display:inline-block; color:#000; width:100%; }

.topfilter {border-bottom:solid #333 2px; width:100%; height:40px; position:fixed; display:block; text-align:left; background-color:blue; -moz-box-sizing: border-box:
    box-sizing: border-box:}

.filtertitle { position:relative; display:inline-block; color:#000; width:100%; }

.topfilter {border-bottom:solid #333 2px; width:100%; height:40px; position:fixed; display:block; text-align:left; background-color:blue; -moz-box-sizing: border-box;
    box-sizing: border-box;}


.bottomfilter {border-top: solid #333 2px; width:100%; height:50px; position:fixed; display:block; text-align:left; background-color:red; -moz-box-sizing: border-box; box-sizing: border-box; bottom:0;}


#wrapper.toggled #sidebar-wrapper {
  width: 200px;
}

#page-content-wrapper {
  width: 100%;
  position: absolute;
  padding: 15px;
}

   #wrapper.toggled #page-content-wrapper {
  position: absolute;
  margin-right: -200px;
}


/* Sidebar Styles */

.sidebar-nav {
  position: absolute;
  top: 0px;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sidebar-nav li {
  text-indent: 20px;
  line-height: 40px;
}

.sidebar-nav li a {
  display: block;
  text-decoration: none;
  color: #999999;
}

.sidebar-nav li a:hover {
  text-decoration: none;
  color: #333;
  background: rgba(255, 255, 255, 0.6);
}

.sidebar-nav li a:active,
.sidebar-nav li a:focus {
  text-decoration: none;
}

.sidebar-nav > .sidebar-brand {
  height: 65px;
  font-size: 18px;
  line-height: 60px;
}

.sidebar-nav > .sidebar-brand a {
  color: #999999;
}

.sidebar-nav > .sidebar-brand a:hover {
  color: #fff;
  background: none;
}

@media screen and (min-width:768px) {
  #wrapper {
    padding-left: 300px;
  }
  #wrapper.toggled {
    padding-left: 0;
  }


  #wrapper.toggled #sidebar-wrapper {
    width: 0;
  }
  #page-content-wrapper {
    padding: 20px;
    position: relative;
  }
  #wrapper.toggled #page-content-wrapper {
    position: relative;
    margin-right: 0;
  }
}


@media screen and (max-width:1526px) {

  .content,
  .footer {
    width: 82%;
    right: 0; 
  }
  .header {width:82%;}

    #sidebar-wrapper {
    width: 18%; 
  }

}


@media screen and (max-width:1059px) {

  .content,
  .footer {
    width: 80%;
    right: 0; 
  }

  .header {width:80%;}

    #sidebar-wrapper {
    width: 20%; 
  }
}   

     @media screen and (min-width:1527px) {

  .content,
  .footer {
    width: 85%;
    right: 0; 
  }
  .header {width:85%;}
    #sidebar-wrapper {
    width: 15%; 
  }


}

        @media screen and (max-width:991px) {
          .content,
  .footer {
    width: 100%;
    right: 0; 
  }

    #sidebar-wrapper {
    width:0; 
  }

1 个答案:

答案 0 :(得分:0)

答案非常简单:https://jsfiddle.net/4fqapznu/3/

我所要做的就是:

  1. 在父容器上添加 min-width:100%,并将 width:100%替换为 width:inherit .sidebar-nav

  2. 然后在位置固定项目的2个孩子上添加 width:inherit .topfilter .bottomfilter

  3. 这是修复它的代码:

    .sidebar-nav {
    
      width:inherit; min-width:100%;
    
    }
    
    
    .topfilter {width:inherit; position:fixed;}
    
    
    .bottomfilter { width:inherit; position:fixed; 
    

    注意:现在我有一个与滚动条重叠的固定项目有另一个问题,但我会在另一个帖子上问这个问题,除非有人快速回答如何修复它。