2017-07-15 101 views
1

我想用10个问题构建一个简单的调查问卷,这些问题存储在我的数据库中,通过循环访问并将10个问题动态添加到页面中。基本上,我希望一次只在页面上有一个问题,但该页面可以滚动以查看其他问题。使用CSS和Bootstrap垂直对齐div?

例如,问题1将显示在页面中间,用户键入他们的答案,然后点击下一个,页面滚动到下一个问题。如果用户向上滚动,则向上滚动页面,向下滚动页面。为了跳到下一个问题,我打算每个问题都有一个ID,下一个按钮只有一个链接到该ID。

我来填充页面上的问题,HTML看起来像这样:

<div class="container"> 
    <div class="row wrapper"> 
     <div class="question"> 
      <p>What is your name?</p> 
     </div> 

     <div class="description"> 
      <p>Used for...</p> 
     </div> 

     <div class="answer"> 
      <input type="text" placeholder=""> 
     </div> 
    </div> 
</div> 

我对上面这个样子的CSS:

.question { 
    color: #232A33; 
    text-align: left; 
    font-size: 2em; 
} 

.description { 
    color: #FFCD3D; 
    text-align: left; 
    font-size: 1.25em; 
} 

.answer { 
    color: #232A33; 
    text-align: left; 
    font-size: 1.25em; 
} 

我设法让问题在页面上居中使用下面的代码:

.wrapper { 
    width: 500px; 
    height: 150px; 

    position: absolute; 
    top:0; 
    bottom: 0; 
    left: 0; 
    right: 0; 

    margin: auto; 
} 

这工作正常的一个问题,但如果有因为这个位置是绝对的,所以它们都有重叠的问题。

关于如何实现页面设计的任何提示?

在此先感谢!

回答

1

你非常接近。这可以通过添加更多的CSS来完成(稍微调整行类)。

如果您添加以下内容:

.row { 
    width: 100%; 
    margin: 15% auto; 
    height: 100vh!important; 
} 

,并调整包装到**relative**定位,你应该会看到一个好的结果

.wrapper { 
    width: 500px; 
    height: auto; 
    position: relative; 
} 

见片段或fiddle

.question { 
 
    color: #232A33; 
 
    text-align: left; 
 
    font-size: 2em; 
 
} 
 

 
.description { 
 
    color: #FFCD3D; 
 
    text-align: left; 
 
    font-size: 1.25em; 
 
} 
 

 
.answer { 
 
    color: #232A33; 
 
    text-align: left; 
 
    font-size: 1.25em; 
 
} 
 

 
.row { 
 
    width: 100%; 
 
    margin: 15% auto; 
 
    height: 100vh!important; 
 
} 
 

 
.wrapper { 
 
    width: 500px; 
 
    height: auto; 
 
    position: relative; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/> 
 

 
<div class="container"> 
 
    <div class="row wrapper"> 
 
    <div class="question"> 
 
     <p>What is your name?</p> 
 
    </div> 
 

 
    <div class="description"> 
 
     <p>Used for...</p> 
 
    </div> 
 

 
    <div class="answer"> 
 
     <input type="text" placeholder=""> 
 
    </div> 
 
    </div> 
 
</div> 
 
<div class="container"> 
 
    <div class="row wrapper"> 
 
    <div class="question"> 
 
     <p>What is your name?</p> 
 
    </div> 
 

 
    <div class="description"> 
 
     <p>Used for...</p> 
 
    </div> 
 

 
    <div class="answer"> 
 
     <input type="text" placeholder=""> 
 
    </div> 
 
    </div> 
 
</div> 
 
<div class="container"> 
 
    <div class="row wrapper"> 
 
    <div class="question"> 
 
     <p>What is your name?</p> 
 
    </div> 
 

 
    <div class="description"> 
 
     <p>Used for...</p> 
 
    </div> 
 

 
    <div class="answer"> 
 
     <input type="text" placeholder=""> 
 
    </div> 
 
    </div> 
 
</div> 
 
<div class="container"> 
 
    <div class="row wrapper"> 
 
    <div class="question"> 
 
     <p>What is your name?</p> 
 
    </div> 
 

 
    <div class="description"> 
 
     <p>Used for...</p> 
 
    </div> 
 

 
    <div class="answer"> 
 
     <input type="text" placeholder=""> 
 
    </div> 
 
    </div> 
 
</div>

+0

谢谢你的回应!这很好。尽管周六我仍然在寻找自己的解决方案,但我遇到了Bootstrap ScrollSpy,它似乎也做了类似于我之后的事情。 https://www.w3schools.com/bootstrap/bootstrap_scrollspy.asp。你知道一种方法比另一种方法有好处吗? – user2573690

+0

@ user2573690没有什么特别的好处;它只是一个不同的图书馆,多一点css ..但为什么要麻烦,如果你可以自己修复它;) –

+0

@ user2573690实际上现在我来想一想,我曾经使用过滚动,并发现它有点bug, tbh,在屁股上有点疼......坚持原来的......这是我自己的卑鄙观点..但随意探索! –