【问题标题】:CSS responsive design overlapping bodyCSS 响应式设计重叠主体
【发布时间】:2018-12-29 20:58:14
【问题描述】:

情况是:我正在自学如何制作网站。我已经知道一些东西,现在我决定创建一个网站。 但是我有些挣扎...我正在尝试使其具有响应性,它有点工作,但是当您调整页面大小时,页脚与正文中的内容重叠...

这个想法是当标签开始重叠时向下滚动。

我已经用谷歌搜索过类似的问题并检查了线程,尝试了很多东西,但还是一无所获:| 救命?...

body{
  margin: 0px;
  font-family: 'Open Sans', sans-serif;

background-image: url(https://umad.com/img/2015/1/dark-geometric-wallpaper-176-205-hd-wallpapers.jpg);

}

/*+++NAVBAR*/
#primary_nav_wrap{
width: 100%;
background:#333;
  margin: 0;
float:left;

}

#primary_nav_wrap ul
{

  background-color: #333;
    list-style:none;
    position:relative;
    float:left;
    margin:0;
    padding:0;
}

#primary_nav_wrap ul a
{
    display:block;
    color:#fff;
    text-decoration:none;
    font-weight:500;
    line-height:50px;

    padding:0 20px;
    font-family: 'Open Sans',"Helvetica Neue",Helvetica,Arial,sans-serif
}

#primary_nav_wrap ul li
{
    position:relative;
    float:left;
    margin:0;
    padding:0
}

#primary_nav_wrap ul li.current-menu-item
{
    background:#4CAF50
}

#primary_nav_wrap ul li:hover
{
    background:#282828
}

#primary_nav_wrap ul ul
{
    display:none;
    position:absolute;
    top:100%;
    left:0;
    background:#333;
    padding:0
}

#primary_nav_wrap ul ul li
{
    float:none;
    width:200px
}

#primary_nav_wrap ul ul a
{
    line-height:120%;
    padding:10px 15px
}

#primary_nav_wrap ul ul ul
{
    top:0;
    left:100%
}

#primary_nav_wrap ul li:hover > ul
{
    display:block
}
/*---NAVBAR*/


.hometitle span{
  width: 100%;
}

.hometitle h1{
  font-size: 80px;
  color:#fff;
  text-align: center;
  clear: both;
  padding-top: 10%;
}

.hometitle h2{
  font-size: 36px;
  color:#fff;
  text-align: center;
  clear: both;
  margin-top: -60px;
}


/*+++TAGS*/
.tags {
  position: fixed;
  bottom: 10px;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-flow: row wrap;
  flex-flow: row wrap;
}

.item {
  -webkit-flex: 1 auto;
  flex: 1 auto;
  padding: 0.5rem;
  text-align: center;
}

.item a {
  display: block;
  background-color: #4CAF50;
  text-decoration: none;
  padding: 0.2rem 0.5rem;
  border-radius: 3px;
  color: #fff;
}
/*---TAGS*/


.homecontainer {
    width: 100%;
    height: 20%;
    min-height: 400px;
}


#footer{

position: relative;
bottom: 0;
width: 100%;
height: 20%;


}

HTML

<!DOCTYPE html>

<html lang="en">
  <head>
      <title>Home</title>
          <meta name"viewport" content="width=device-width, initial scale=1">
          <meta charset="utf-8">
          <link rel="shortcut icon" href="/images/favicon.ico">
          <link href="https://fonts.googleapis.com/css?family=Open+Sans:300" rel="stylesheet">
          <link rel="stylesheet" href="/arturnmk/style.css">
    </head>

    <body>
      <div class="main">


<nav id="primary_nav_wrap">
<ul>

  <li class="current-menu-item"><a href="#">Home</a></li>
  <li><a href="portfolio.html">Menu</a>
    <ul>
      <li><a href="#">Menu</a></li>
      <li><a href="#">Menu</a></li>
      <li><a href="#">Menu</a></li>
      <li><a href="#">Menu</a></li>
    </ul>
  <li><a href="projects.html">Menu</a></li>
  <li><a href="services.html">Menu</a>
    <ul>
      <li><a href="#">Menu</a></li>
      <li><a href="#">Menu</a></li>
      <li><a href="#">Menu</a></li>
      <li><a href="#">Menu</a></li>
      <li><a href="#">Menu</a></li>
      <li><a href="#">Menu</a></li>
      <li><a href="#">WutWut</a></li>

    </ul>
  </li>
  <li><a href="contacts.html">Menu</a></li>

</ul>
</nav>


<div class="homecontainer">


<div class="hometitle">

<span>
<h1>Firtname Lastname</h1>
</span>

<span>
<h2>Thing to say/state</h2>
</span>

</div>






          </div>










</div>




    </body>
    <footer>
      <div class="tags">
        <div class="item"><a href="#">TagTagTagTag</a></div>
        <div class="item"><a href="#">TagTagTag</a></div>
        <div class="item"><a href="#">TagTag</a></div>
        <div class="item"><a href="#">Tag</a></div>
        <div class="item"><a href="#">TagTagTagTag</a></div>
        <div class="item"><a href="#">TagTagTag</a></div>
        <div class="item"><a href="#">TagTagTag</a></div>
        <div class="item"><a href="#">TagTagTag</a></div>
        <div class="item"><a href="#">TagTagTag</a></div>
        <div class="item"><a href="#">TagTagTagTag</a></div>
        <div class="item"><a href="#">TagTag</a></div>
        <div class="item"><a href="#">TagTag</a></div>
        <div class="item"><a href="#">PTagTagTag</a></div>
        <div class="item"><a href="#">TagTagTagTagTagTag</a></div>
        <div class="item"><a href="#">TagTagTag</a></div>
        <div class="item"><a href="#">Tag16 Tag16 Tag16Tag16</a></div>
        <div class="item"><a href="#">Tag15Tag15</a></div>
        <div class="item"><a href="#">Tag14Tag14Tag14</a></div>
        <div class="item"><a href="#">Tag13</a></div>
        <div class="item"><a href="#">Tag12</a></div>
        <div class="item"><a href="#">Tag11</a></div>
        <div class="item"><a href="#">Tag10</a></div>
        <div class="item"><a href="#">Tag9</a></div>
        <div class="item"><a href="#">Tag8</a></div>
        <div class="item"><a href="#">Tag7</a></div>
        <div class="item"><a href="#">Tag6</a></div>
        <div class="item"><a href="#">Tag5</a></div>
        <div class="item"><a href="#">Tag4</a></div>
        <div class="item"><a href="#">Tag3</a></div>
        <div class="item"><a href="#">Tag2</a></div>
        <div class="item"><a href="#">Tag1</a></div>
      </div>
    </footer>

  </html>

【问题讨论】:

  • 从类 .tags 中删除 position: fixed; 并在 &lt;body&gt;&lt;/body&gt; 标签中使用 &lt;footer&gt;&lt;/footer&gt; 我认为它会起作用。

标签: html css responsive-design responsive overlap


【解决方案1】:

要实现响应式网页设计,请使用 CSS3 媒体查询

重叠的问题是由于 homecontainer 类的最小高度和标签类的固定位置

请使用 CSS3 媒体查询检查以下选项 https://codepen.io/nagasai/pen/vJbqeE

CSS:

html{
  height:100%;
}

body{
  height:100%;
  margin: 0px;
  font-family: 'Open Sans', sans-serif;

background-image: url(https://umad.com/img/2015/1/dark-geometric-wallpaper-176-205-hd-wallpapers.jpg);

}

/*+++NAVBAR*/
#primary_nav_wrap{
width: 100%;
background:#333;
  margin: 0;
float:left;

}

#primary_nav_wrap ul
{

  background-color: #333;
    list-style:none;
    position:relative;
    float:left;
    margin:0;
    padding:0;
}

#primary_nav_wrap ul a
{
    display:block;
    color:#fff;
    text-decoration:none;
    font-weight:500;
    line-height:50px;

    padding:0 20px;
    font-family: 'Open Sans',"Helvetica Neue",Helvetica,Arial,sans-serif
}

#primary_nav_wrap ul li
{
    position:relative;
    float:left;
    margin:0;
    padding:0
}

#primary_nav_wrap ul li.current-menu-item
{
    background:#4CAF50
}

#primary_nav_wrap ul li:hover
{
    background:#282828
}

#primary_nav_wrap ul ul
{
    display:none;
    position:absolute;
    top:100%;
    left:0;
    background:#333;
    padding:0
}

#primary_nav_wrap ul ul li
{
    float:none;
    width:200px
}

#primary_nav_wrap ul ul a
{
    line-height:120%;
    padding:10px 15px
}

#primary_nav_wrap ul ul ul
{
    top:0;
    left:100%
}

#primary_nav_wrap ul li:hover > ul
{
    display:block
}
/*---NAVBAR*/


.hometitle span{
  width: 100%;
}

.hometitle h1{
  font-size: 80px;
  color:#fff;
  text-align: center;
  clear: both;
  padding-top: 10%;
}

.hometitle h2{
  font-size: 36px;
  color:#fff;
  text-align: center;
  clear: both;
  margin-top: -60px;
}


/*+++TAGS*/
.tags {
  bottom: 10px;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-flow: row wrap;
  flex-flow: row wrap;
}

.item {
  -webkit-flex: 1 auto;
  flex: 1 auto;
  padding: 0.5rem;
  text-align: center;
}

.item a {
  display: block;
  background-color: #4CAF50;
  text-decoration: none;
  padding: 0.2rem 0.5rem;
  border-radius: 3px;
  color: #fff;
}
/*---TAGS*/


.homecontainer {
    width: 100%;
    height: 20%;
    min-height: 400px;
}


#footer{

position: relative;
bottom: 0;
width: 100%;
height: 20%;


}

@media only screen and (max-width: 550px) {
.homecontainer {
    width: 100%;
    height: 20%;
    min-height: 100px;
}
 footer{

position: absolute;
top: 400px;
width: 100%;
height: 20%;


}
}

【讨论】:

    【解决方案2】:

    1) 对于要在页面上显示的元素,您不应该在 &lt;body&gt; 标记之外使用 HTML 代码。您的页脚应包含在 &lt;body&gt; 标记内。您可以创建一个&lt;div&gt; 来包含您现在在文档正文中拥有的元素。

    2) 为避免重叠(考虑到您希望保留现有代码结构和 CSS),您可以将 margin-bottom 设置为等于页脚的 height 到主要内容的容器。如果您的页脚始终具有相同的高度,则此方法将有效。

    3)如果你的页脚需要改变高度,另一个简单的解决方案(但有缺点)是让页脚坚持正常的页面流,而不是绝对定位到文档的底部,并设置一个min-height 到您的主要内容的容器。 min-height 应设置为确保您的页脚不会位于短页面(其中没有很多内容)上的用户屏幕中间。在这种情况下,主内容容器上的min-height 将在主内容下方创建空白,从而将页脚向下推。

    【讨论】:

      【解决方案3】:

      我可能弄错了,但您唯一的问题是页脚会妨碍您吗?

      如果我想让页脚停留在屏幕底部,我通常会这样做:

      #footer{
          position: absolute;
          top: 100%;
          height: however high you want it to be;
          transform: translateY(-100%) ;
      }
      

      这会将页脚一直推离屏幕底部,但 transform: translate 会将其拉回到页脚的高度。

      【讨论】:

      • 好吧,现在当它重叠时,您需要滚动,但滚动正文。缩小页面时,页脚仍位于顶部。电话里也一样……
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-22
      • 2021-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-17
      相关资源
      最近更新 更多