<head>
<style type="text/css">
.bar {
background-color:red;
height:100%;
display: inline-block;
border: 1px solid black;
float:left;
}
</style>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
</head>
<body>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
</body>
<script type="text/javascript">
$( document ).ready(function() {
var count = 7;
var divs = $('.bar');
for (var i = 0; i < divs.length; i++) {
$(divs[i]).width((100/count) +'%');
}
});
</script>
上述输出中的一个条形低于第一个条形,即不是全部条形 在一条线上容纳,我该怎么做?有可能吗?
答案 0 :(得分:1)
好吧,我对JS进行了一些非常小的修改,然后我将.bar
的父级设置为100%
,这将强制它占用100%
,因为它已经设置为100%
无任何内容 - 0
。
此外,使用box-sizing
会强制borders
计算到width
的{{1}} / height
。
更新了JS - 请注意更改..
divs
更新了CSS
$(window).load(function(){
$(document).ready(function () {
var count = 7;
var divs = $('.bar');
for (var i = 0; i < divs.length; i++) {
$(divs[i]).width((100 / count - 2) + '%');
}
});
答案 1 :(得分:0)
边框导致宽度超过100%,迫使最后一个块进入下一行。
您可以安全地添加以解决此问题:
* (box-sizing:border-box;)
答案 2 :(得分:0)
由于浏览器在宽度上添加了水平填充,因此您需要使用框大小的黑客。
哦,也减去2,而不是一个。因为即使1px边框,组合的1px左边框和1px右边框,总边框宽度为2px而不是1px。更新了js。
看到这个工作jsbin:
http://jsbin.com/eYUDUTa/2/
代码(与jsbin相同):
<强> page.html中强>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
</head>
<body>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
</body>
</html>
<强>的style.css 强>
body, html {
height:100%;
margin:0px;
padding: 0;
}
.bar {
background-color:green;
height:100%;
display: inline-block;
border: 1px solid black;
float:left;
}
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
<强>的script.js 强>
$(document).ready(function () {
var count = 7;
var divs = $('.bar');
for (var i = 0; i < divs.length; i++) {
$(divs[i]).width((100 / count - 2) + '%');
}
});
答案 3 :(得分:0)
你根本不需要JS。更好的解决方案是做类似的事情:
.container {
display: table;
width: 100%;
}
.bar {
display: table-cell;
}