I try to create this but not set, div height is fixed 50px and maximum span add in 5
$('section.group').each(function() {
//alert(($(this).find('.item')).length);
var hig =50;
var total =($(this).find('.item')).length;
if(total !== 0){
//alert(hig/total);
//$('.item').height(hig/total);
$(this).each('.item').height(hig/total);
}
}
);
section.group{
height:50px;
margin-bottom:10px;
overflow:hidden;
border:1px solid;
}
.item{
display:block;
}
.item:nth-child(1) {
background: #ff0000;
}
.item:nth-child(2) {
background: #00ff00;
}
.item:nth-child(3) {
background: #0000ff;
}
.item:nth-child(4) {
background: #000;
}
.item:nth-child(5) {
background: #f0f000;
}
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<section class="group">
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
</section>
<section class="group">
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
</section>
<section class="group">
<span class="item"></span>
<span class="item"></span>
</section>
<section class="group">
</section>
Answer: Use the CSS3 flexbox With CSS3 flex layout model you can very easily create the equal height columns or <div> elements that are aligned side by side. Just apply the display property with the value flex on the container element and the flex property with the value 1 on child elements.
The <span> tag is a inline element, it fits into the flow of the content and can be distributed over multiple lines. We can not specify a height or width or surround it with a margin. It can be placed inside a paragraph to define a part of it without affecting the appearance of the text.
Span is an inline element. It has no width or height.
Please try This Code :-
$(this).each('.item').height(hig/total); to replce with $(this).find('.item').height(hig/total);
$('section.group').each(function() {
var hig =50;
var listitem =($(this).find('.item')).length;
if(listitem !== 0){
$(this).find('.item').height(hig/listitem);
}
}
);
Please have a look at updated code:
I changed this:
$(this).each('.item').height(hig/total);
to:
$(this).find('.item').height(hig/total);
$('section.group').each(function() {
//alert(($(this).find('.item')).length);
var hig =50;
var total =($(this).find('.item')).length;
if(total !== 0){
//alert(hig/total);
//$('.item').height(hig/total);
$(this).find('.item').height(hig/total);
}
}
);
section.group{
height:50px;
margin-bottom:10px;
overflow:hidden;
border:1px solid;
}
.item{
display:block;
}
.item:nth-child(1) {
background: #ff0000;
}
.item:nth-child(2) {
background: #00ff00;
}
.item:nth-child(3) {
background: #0000ff;
}
.item:nth-child(4) {
background: #000;
}
.item:nth-child(5) {
background: #f0f000;
}
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<section class="group">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</section>
<section class="group">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</section>
<section class="group">
<div class="item"></div>
<div class="item"></div>
</section>
<section class="group">
</section>
Please find the demo here. Code is as illustrated below:
HTML:
<section class="group">
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
</section>
<section class="group">
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
<span class="item"></span>
</section>
<section class="group">
<span class="item"></span>
<span class="item"></span>
</section>
<section class="group"></section>
JS:
$(function () {
$('section.group').each(function (k, v) {
var hig = 50;
var total = ($(this).find('.item')).length;
if (total != 0) {
var equalHeight = (hig / total);
$(this).find('span.item').css({
'height': (equalHeight + 'px')
});
}
});
});
CSS:
section.group {
height: 50px;
margin-bottom: 10px;
overflow: hidden;
border: 1px solid;
}
.item {
display: block;
}
.item:nth-child(1) {
background: #ff0000;
}
.item:nth-child(2) {
background: #00ff00;
}
.item:nth-child(3) {
background: #0000ff;
}
.item:nth-child(4) {
background: #000;
}
.item:nth-child(5) {
background: #f0f000;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With