CSS 响应式设计重叠主体

CSS responsive design overlapping body

情况是:正在自学做网站。我已经知道一些东西,现在我决定创建一个网站。 但是我遇到了一些困难...我正在尝试使其具有响应性,但它​​有点管用,但是当您调整页面大小时,页脚会与正文中的内容重叠...

想法是在标签开始重叠时向下滚动标签..

我用谷歌搜索了类似的问题并检查了线程,尝试了很多东西,但仍然一无所获:| 帮助?...

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>

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

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

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

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

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

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

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

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

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

请使用 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%;


}
}