2017-04-05 152 views
0

我在div内有一些按钮,其中很多按钮形成新的行,所以我在该div内创建了一个垂直滚动条以访问所有这些按钮。根据按钮行宽度调整div宽度

问题是垂直滚动不在按钮旁边,这就是我所需要的,但这很困难,因为一排按钮的宽度总是会根据屏幕的宽度而变化。

在snipet,如果你改变你的屏幕宽度的,你可以看到按钮和滚动之间,伟大的可变空间,我已经把颜色,主要的div更好的区别:

body{ 
 
\t overflow-y: hidden; 
 
} 
 

 
#sentlist{ 
 
\t height: 55px; 
 
\t overflow-y: auto; 
 
} 
 

 
#sli{ 
 
\t width:auto; 
 
\t background-color: #EEAAEE; 
 
} 
 

 
.otradiv{ 
 
\t height:50px; 
 
\t background-color:orange; 
 
} 
 

 
button{ 
 
    width:50px; 
 
    height:23px; 
 
}
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<meta charset='utf-8'> 
 
<title>Hi</title> 
 

 
<!-- JQuery --> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 

 
<!-- Bootstrap CSS--> 
 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
 
<!-- Bootstrap JavaScript --> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 
 

 
<link rel="stylesheet" href="test2.css"> 
 
</head> 
 
<body> 
 
<div id="footer"> 
 
    <div class="navbar navbar-inner navbar-fixed-bottom"> 
 
    <div class="row"> 
 
     <div id="sentlist" class="col-xs-10 col-sm-10 col-md-10 col-lg-11"> 
 
     <div id="sli"> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
      <button></button> 
 
     </div> 
 
     </div> 
 
     <div class="col-xs-2 col-sm-2 col-md-2 col-lg-1"> 
 
     <div class="row otradiv"> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div> 
 
</body> 
 
</html>

因此,无论屏幕的宽度,是否有任何方法来消除按钮和滚动之间的空间?

编辑:这里 原因snipets不能调整大小,here's一个codepen:

回答

1

您可以使用柔性

#sli .flex-container { 
    display: flex; 
    display: -webkit-flex; 
    display: -moz-flex; 
    justify-content: space-around; 
    -webkit-justify-content: space-around; 
    -moz-justify-content: space-around; 
    flex-flow: row wrap; 
    -webkit-flex-flow: row wrap; 
    -moz-flex-flow: row wrap; 
} 

.flex-container { 
 
display: flex; 
 
    display: -webkit-flex; 
 
    display: -moz-flex; 
 
    justify-content: space-around; 
 
    -webkit-justify-content: space-around; 
 
    -moz-justify-content: space-around; 
 
    flex-flow: row wrap; 
 
    -webkit-flex-flow: row wrap; 
 
    -moz-flex-flow: row wrap; 
 
} 
 

 
.flex-container .item { 
 
    width: 50px; 
 
    height: 23px; 
 
    background: red; 
 
    margin: 0px 1.1% 8px; 
 
} 
 
.flex-dummy { 
 
    height: 0 !important; 
 
    padding-top: 0 !important; 
 
    padding-bottom: 0 !important; 
 
    margin-top: 0 !important; 
 
    margin-bottom: 0 !important; 
 
} 
 
.flex-container .item>button { 
 
    width: 100%; 
 
    height: 100%; 
 
} 
 
.otradiv { 
 
    height: 50px; 
 
    background-color: orange; 
 
} 
 
#sentlist { 
 
    height: 55px; 
 
    overflow-y: auto; 
 
} 
 
#sli { 
 
    width: auto; 
 
    background-color: #EEAAEE; 
 
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 
 
<div id="footer"> 
 
    <div class="navbar navbar-inner navbar-fixed-bottom"> 
 
    <div class="row"> 
 
     <div id="sentlist" class="col-xs-10 col-sm-10 col-md-10 col-lg-11"> 
 
     <div id="sli"> 
 
\t \t \t <div class="flex-container"> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t \t \t <div class="item"><button></button></div> 
 
\t \t \t \t 
 
\t \t \t \t <!-- add fill dummys here. The number of dummys must be the number of possible columns minus one --> 
 
\t \t \t \t <div class="item flex-dummy"></div> 
 
\t \t \t \t <div class="item flex-dummy"></div> 
 
\t \t \t \t <div class="item flex-dummy"></div> 
 
\t \t \t \t <div class="item flex-dummy"></div> 
 
\t \t \t \t <div class="item flex-dummy"></div> 
 
\t \t \t \t <div class="item flex-dummy"></div> 
 
\t \t \t \t <div class="item flex-dummy"></div> 
 
\t \t \t \t <div class="item flex-dummy"></div> 
 
\t \t \t \t <div class="item flex-dummy"></div> 
 
\t \t \t \t <div class="item flex-dummy"></div> 
 
\t \t \t \t 
 
\t \t \t </div> 
 
     </div> 
 
     </div> 
 
     <div class="col-xs-2 col-sm-2 col-md-2 col-lg-1"> 
 
     <div class="row otradiv"> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

+0

很好的解决方案,但它仍然有最后一排的一个问题。如果增加屏幕宽度,则居中的最后一个按钮看起来不正确。任何修补程序? –

+0

你想使用“justify-content:flex-end;” – Amal

+0

,这使得我正在寻找的按钮 –

0

有是在表面上可以创建div#SLI和滚动条之间的空间DIV#sentlist不必要的填充。您需要从div#sendlist中删除填充。

#sentlist{ 
    height: 55px; 
    overflow-y: auto; 
    padding: 0; //remove bootstrap padding 
    } 

另外,通常最好的做法是在你的css文件中使用类而不是id。