2017-03-02 63 views
0

我试图学习响应CSS,但有一些基本的css设计有困难。我已经创建了一个固定的导航栏,您可以在下面的代码中看到。但是我面临的问题是,我无法正确地将内容与它对齐。内容被导航栏重叠。你能建议一个合适的CSS修复,而不是一个解决方法,如添加固定高度的空白div?下面是代码:CSS - 将内容对齐固定Navbar

*{ 
 
     box-sizing: border-box; 
 
    } 
 
    
 
    body{ 
 
     margin:0px; 
 
     padding: 0px; 
 
     background-color: darkgrey; 
 
    } 
 
    
 
    .title-bar{ 
 
     position:fixed; 
 
     margin-top:0px; 
 
     z-index: 100; 
 
     opacity: 1; 
 
     background-color:white; 
 
     width: 100%; 
 
     height: 100px; 
 
     border-bottom: solid 4px dodgerblue; 
 
    } 
 
    
 
    .page-container{ 
 
     padding: 0px; 
 
    } 
 
    
 
    .menu-options{ 
 
     list-style-type:none; 
 
    } 
 
    
 
    .menu-options li{ 
 
     display: inline; 
 
     padding: 10px; 
 
    } 
 
    
 
    .menu-options li:hover{ 
 
     background-color: deepskyblue; 
 
    } 
 
    
 
    .menu-options li a{ 
 
     color: black; 
 
     text-decoration:none; 
 
    } 
 
    
 
    .clear20{ 
 
     height: 40px; 
 
     clear: both; 
 
    } 
 
    
 
    .clear10{ 
 
     height: 20px; 
 
     clear: both; 
 
    } 
 
    
 
    .display-bar-1{ 
 
     background-color: deepskyblue; 
 
     height: 200px; 
 
     padding:40px; 
 
     position: relative; 
 
    } 
 
    
 
    html { 
 
     font-family: "Lucida Sans", sans-serif; 
 
    } 
 
    
 
    .caps { 
 
     text-transform: uppercase; 
 
    } 
 
    
 
    .register_button{ 
 
     text-align:center; 
 
     padding-top:20px; 
 
     padding-bottom:10px; 
 
     width: 200px; 
 
     height: 70px; 
 
     border: solid 3px white; 
 
     font-style:bold; 
 
     font-size:14pt; 
 
    
 
    } 
 
    
 
    .register_button:hover{ 
 
     background-color:navajowhite; 
 
     color: white; 
 
     cursor:pointer; 
 
     border-color: black; 
 
    }
<!DOCTYPE html> 
 
    <html> 
 
    <head> 
 
     <meta name="viewport" content="width=device-width, initial-scale=1.0"/> 
 
     <link href="responsive.css" rel="stylesheet"> 
 
    </head> 
 
    
 
    <body> 
 
     <div class="page-container"> 
 
    
 
      <div class="title-bar"> 
 
       <table width="100%"> 
 
        <tr> 
 
         <td><h1> Multirater Surveys </h1></td> 
 
         <td> 
 
          <ul class="menu-options"> 
 
           <li> <a href="#"> Home </a></li> 
 
           <li> <a href="#"> How It Works </a></li> 
 
           <li> <a href="#"> Features </a></li> 
 
           <li> <a href="#"> Surveys </a></li> 
 
           <li> <a href="#"> Plans and Pricings </a></li> 
 
           <li> <a href="#"> Webinars </a></li> 
 
           <li> <a href="#"> Blog </a></li> 
 
          </ul> 
 
         </td> 
 
        </tr> 
 
       </table> 
 
      </div> 
 
    
 
    
 
      <div class="display-bar-1"> 
 
       <div class="row"> 
 
        <div class="" style="width:60%;float:left;font-style:bold;font-size:22pt;color:white;padding:10px;"> 
 
         World Class Service <br> 
 
         More Than 100 Clients 
 
        </div> 
 
        <div class="" style="padding:15px;float:left;width:40%;"> 
 
         <div class="register_button" id="register"> <a style="text-decoration:none;color:black;" href="#"> Register Now </a> </div> 
 
        </div> 
 
       </div> 
 
      </div> 
 
    
 
      <div class="display-bar-2"> 
 
       <div> 
 
        <h1> Some random block of texts </h1> 
 
        <p> Hello world how are you ? what is going on? </p> 
 
       </div> 
 
      </div> 
 
    
 
      <div class="display-bar-1"> 
 
       <div class="row"> 
 
        <div class="" style="width:60%;float:left;font-style:bold;font-size:22pt;color:white;padding:10px;"> 
 
         World Class Service <br> 
 
         More Than 100 Clients 
 
        </div> 
 
        <div class="" style="padding:15px;float:left;width:40%;"> 
 
         <div class="register_button" id="register"> <a style="text-decoration:none;color:black;" href="#"> Register Now </a> </div> 
 
        </div> 
 
       </div> 
 
      </div> 
 
    
 
      <div class="display-bar-2"> 
 
       <div> 
 
        <h1> Some random block of texts </h1> 
 
        <p> Hello world how are you ? what is going on? </p> 
 
       </div> 
 
      </div> 
 
    
 
      <div class="display-bar-1"> 
 
       <div class="row"> 
 
        <div class="" style="width:60%;float:left;font-style:bold;font-size:22pt;color:white;padding:10px;"> 
 
         World Class Service <br> 
 
         More Than 100 Clients 
 
        </div> 
 
        <div class="" style="padding:15px;float:left;width:40%;"> 
 
         <div class="register_button" id="register"> <a style="text-decoration:none;color:black;" href="#"> Register Now </a> </div> 
 
        </div> 
 
       </div> 
 
      </div> 
 
    
 
      <div class="display-bar-2"> 
 
       <div> 
 
        <h1> Some random block of texts </h1> 
 
        <p> Hello world how are you ? what is going on? </p> 
 
       </div> 
 
      </div> 
 
    
 
      <div class="display-bar-2"> 
 
       <div> 
 
        <h1> Some random block of texts </h1> 
 
        <p> Hello world how are you ? what is going on? </p> 
 
       </div> 
 
      </div> 
 
     </div> 
 
    
 
     <input type="text" class="caps"/> 
 
    
 
     <script> 
 
     window.onload = function(){ 
 
      document.getElementById("register").onclick = function(){ 
 
       window.location = "https://www.google.com"; 
 
      } 
 
     } 
 
     </script> 
 
    </body> 
 
    
 
    </html> 
 

 
`responsive.html` 
 

 

回答

0

navbar具有100像素的高度。所以你需要从你的div s 100px下面开始。 添加到第divnavbar此之后:

style="top:100px;" 

那么它应该工作。它应该是这样的:

<div class="display-bar-1" style="top:100px;"> 
     <div class="row"> 
      <div class="" style="width:60%;float:left;font-style:bold;font-size:22pt;color:white;padding:10px;"> 
       World Class Service <br> 
       More Than 100 Clients 
      </div> 
      <div class="" style="padding:15px;float:left;width:40%;"> 
       <div class="register_button" id="register"> <a style="text-decoration:none;color:black;" href="#"> Register Now </a> </div> 
      </div> 
     </div> 
    </div> 

其他方式将是navbar后创建自己的css类第一div。然后,你还可以用

padding-top:100px; 

margin-top:100px; 

\t \t \t \t \t *{ 
 
    box-sizing: border-box; 
 
} 
 

 
body{ 
 
    margin:0px; 
 
    padding: 0px; 
 
    background-color: darkgrey; 
 
} 
 

 
.title-bar{ 
 
    position:fixed; 
 
    margin-top:0px; 
 
    z-index: 100; 
 
    opacity: 1; 
 
    background-color:white; 
 
    width: 100%; 
 
    height: 100px; 
 
    border-bottom: solid 4px dodgerblue; 
 
} 
 

 
.page-container{ 
 
    padding: 0px; 
 
} 
 

 
.menu-options{ 
 
    list-style-type:none; 
 
} 
 

 
.menu-options li{ 
 
    display: inline; 
 
    padding: 10px; 
 
} 
 

 
.menu-options li:hover{ 
 
    background-color: deepskyblue; 
 
} 
 

 
.menu-options li a{ 
 
    color: black; 
 
    text-decoration:none; 
 
} 
 

 
.clear20{ 
 
    height: 40px; 
 
    clear: both; 
 
} 
 

 
.clear10{ 
 
    height: 20px; 
 
    clear: both; 
 
} 
 

 
.display-bar-1{ 
 
    background-color: deepskyblue; 
 
    height: 200px; 
 
    padding:40px; 
 
    position: relative; 
 
} 
 

 
html { 
 
    font-family: "Lucida Sans", sans-serif; 
 
} 
 

 
.caps { 
 
    text-transform: uppercase; 
 
} 
 

 
.register_button{ 
 
    text-align:center; 
 
    padding-top:20px; 
 
    padding-bottom:10px; 
 
    width: 200px; 
 
    height: 70px; 
 
    border: solid 3px white; 
 
    font-style:bold; 
 
    font-size:14pt; 
 

 
} 
 

 
.register_button:hover{ 
 
    background-color:navajowhite; 
 
    color: white; 
 
    cursor:pointer; 
 
    border-color: black; 
 
}
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"/> 
 
    <link href="responsive.css" rel="stylesheet"> 
 
</head> 
 

 
<body> 
 
    <div class="page-container"> 
 

 
     <div class="title-bar"> 
 
      <table width="100%"> 
 
       <tr> 
 
        <td><h1> Multirater Surveys </h1></td> 
 
        <td> 
 
         <ul class="menu-options"> 
 
          <li> <a href="#"> Home </a></li> 
 
          <li> <a href="#"> How It Works </a></li> 
 
          <li> <a href="#"> Features </a></li> 
 
          <li> <a href="#"> Surveys </a></li> 
 
          <li> <a href="#"> Plans and Pricings </a></li> 
 
          <li> <a href="#"> Webinars </a></li> 
 
          <li> <a href="#"> Blog </a></li> 
 
         </ul> 
 
        </td> 
 
       </tr> 
 
      </table> 
 
     </div> 
 

 

 
     <div class="display-bar-1" style="top:100px;"> 
 
      <div class="row"> 
 
       <div class="" style="width:60%;float:left;font-style:bold;font-size:22pt;color:white;padding:10px;"> 
 
        World Class Service <br> 
 
        More Than 100 Clients 
 
       </div> 
 
       <div class="" style="padding:15px;float:left;width:40%;"> 
 
        <div class="register_button" id="register"> <a style="text-decoration:none;color:black;" href="#"> Register Now </a> </div> 
 
       </div> 
 
      </div> 
 
     </div> 
 

 
     <div class="display-bar-2"> 
 
      <div> 
 
       <h1> Some random block of texts </h1> 
 
       <p> Hello world how are you ? what is going on? </p> 
 
      </div> 
 
     </div> 
 

 
     <div class="display-bar-1"> 
 
      <div class="row"> 
 
       <div class="" style="width:60%;float:left;font-style:bold;font-size:22pt;color:white;padding:10px;"> 
 
        World Class Service <br> 
 
        More Than 100 Clients 
 
       </div> 
 
       <div class="" style="padding:15px;float:left;width:40%;"> 
 
        <div class="register_button" id="register"> <a style="text-decoration:none;color:black;" href="#"> Register Now </a> </div> 
 
       </div> 
 
      </div> 
 
     </div> 
 

 
     <div class="display-bar-2"> 
 
      <div> 
 
       <h1> Some random block of texts </h1> 
 
       <p> Hello world how are you ? what is going on? </p> 
 
      </div> 
 
     </div> 
 

 
     <div class="display-bar-1"> 
 
      <div class="row"> 
 
       <div class="" style="width:60%;float:left;font-style:bold;font-size:22pt;color:white;padding:10px;"> 
 
        World Class Service <br> 
 
        More Than 100 Clients 
 
       </div> 
 
       <div class="" style="padding:15px;float:left;width:40%;"> 
 
        <div class="register_button" id="register"> <a style="text-decoration:none;color:black;" href="#"> Register Now </a> </div> 
 
       </div> 
 
      </div> 
 
     </div> 
 

 
     <div class="display-bar-2"> 
 
      <div> 
 
       <h1> Some random block of texts </h1> 
 
       <p> Hello world how are you ? what is going on? </p> 
 
      </div> 
 
     </div> 
 

 
     <div class="display-bar-2"> 
 
      <div> 
 
       <h1> Some random block of texts </h1> 
 
       <p> Hello world how are you ? what is going on? </p> 
 
      </div> 
 
     </div> 
 
    </div> 
 

 
    <input type="text" class="caps"/> 
 

 
    <script> 
 
    window.onload = function(){ 
 
     document.getElementById("register").onclick = function(){ 
 
      window.location = "https://www.google.com"; 
 
     } 
 
    } 
 
    </script> 
 
</body> 
 

 
</html>

0

适当的工作方式是添加填充顶在你的DIV,同样填充为一体的高度您的固定标题。

1

我对responsive.css文件进行了一些更改,它对我有用。

这里是我所做的更改:

标题栏

.title-bar{ 
    position:fixed; 
    top: 0; 
    z-index: 100; 
    opacity: 1; 
    background-color:white; 
    width: 100%; 
    height: 100px; 
    border-bottom: solid 4px dodgerblue; 
} 

我改变margin-top:0px;top: 0;

为什么?到固定定位导航栏的顶部边缘设置为0的最近定位的祖先的顶部边缘下方作为告诉here

并在显示-BAR-1

.display-bar-1{ 
    background-color: deepskyblue; 
    height: 200px; 
    margin-top: 100px; 
    padding:40px; 
    position: relative; 
} 

我加入margin-top: 100px;

为什么?您的导航栏的高度为100像素。所以我给了你的display-bar-1类一个100px的页边距。

希望这可以解决您的问题。