我正在进行一个项目,我们想要一些彼此相邻的面板,如果所有面板都不能一次显示在屏幕上,则显示一个水平滚动条(典型情况)。我花了一天时间试图用一些简单的HTML和CSS来解释这可能是如何工作的,但我无法100%得到它。我在IE 9和Chrome 29.x中都试过这个。两者都呈现相同。
基本上,我无法将不可见的面板不包裹到下一个“线”。但是,(在下面的标记的情况下),面板5不可见,因为它已经包裹。下面的HTML就我可以得到的一些重要差异而言:
任何帮助将不胜感激。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Horizontal Scrolling Panels</title>
<style type="text/css">
fieldset.firstPanel {
height: 200px;
width: 300px;
margin-right: 10px;
}
fieldset.otherPanel {
height: 200px;
width: 300px;
margin-right: 10px;
}
div.firstPanel {
height: 200px;
width: 300px;
float: left;
display:inline-block;
}
div.otherPanel {
height: 200px;
width: 300px;
float: left;
display:inline-block;
}
#scrollBox {
width: 1200px;
height: 220px;
overflow-x: auto;
overflow-y: hidden;
-ms-overflow-x: auto;
-ms-overflow-y: hidden;
white-space: nowrap;
}
</style>
</head>
<body>
<form name="form1" method="post" action="Default.aspx" id="form1">
<div>
<div id="scrollBox">
<div class="firstPanel">
<fieldset class="firstPanel">
<legend>Panel 1</legend>
</fieldset>
</div>
<div class="otherPanel">
<fieldset class="otherPanel">
<legend>Panel 2</legend>
</fieldset>
</div>
<div class="otherPanel">
<fieldset class="otherPanel">
<legend>Panel 3</legend>
</fieldset>
</div>
<div class="otherPanel">
<fieldset class="otherPanel">
<legend>Panel 4</legend>
</fieldset>
</div>
<div class="otherPanel">
<fieldset class="otherPanel">
<legend>Panel 5</legend>
</fieldset>
</div>
</div>
</div>
</form>
</body>
</html>
答案 0 :(得分:2)
对于容器上的元素(不浮动)和display:inline-block
,基本样式为white-space: nowrap;
:
<强> Demo fiddle 强>
#scrollBox {
overflow-x: auto;
overflow-y: hidden;
-ms-overflow-x: auto;
-ms-overflow-y: hidden;
white-space: nowrap;
}
#scrollBox > div {
display: inline-block;
margin-right: 10px;
}
#scrollBox > div fieldset {
height: 200px;
width: 300px;
}