Auto Space Between Horizontal Divs In Css
Solution 1:
Assume that you have 100% and you have 4 pieces. 4 pieces means you have 3 margin-left block so, when you make your div 22*4=88 then 100-88=12 then 12/3=4 then your margin-left must be:4
div.box_frame{
float: left;
background-color: #eee; /* standard background color */border: 1px solid #898989;
border-radius: 11px;
padding: 2px;
margin-left:4%;
text-align: center;
/* change border to be inside the box */box-sizing:border-box;
-moz-box-sizing:border-box;
-webkit-box-sizing:border-box;
}
div.box_frame:first-child{
margin-left: 0;
}
div.box_frame#_15{ /* width 15% */width: 22%;
}
So if you use less variables then you can use this solution without depending on number of div blocks
Solution 2:
First and foremost, you cannot use the same ID
more than once per HTML
page.
Secondly, you are on the right track. Just use a margin-right
on every element, then proceed to add a psuedo-class
of last-child
and set margin
to 0
.
http://jsfiddle.net/EAkLb/1/
To make it work that way for any amount of divs
, it would be best practice to still establish a percentage
that makes sense. (ie 25% for 4, 33% for 3, 16.6% for 6, etc)
EDIT:
This here would be a much better way to do it (try resizing the window):
http://jsfiddle.net/EAkLb/5/
Solution 3:
You can achieve this effect by putting display:inline-block
on all child elements, and then apply text-align-last:justify
to the parent container to enable evenly spaced inline child elements.
There are a few caveats however - while Firefox has supported this since v12, and IE even since 5.5, there is officially no support in Webkit. It is however working fine in Chrome 32-beta with certain flags enabled, while it's not working in Chrome 31-stable or current iOS Safari builds for example.
Secondly, IE seems to only respect text-align-last
when there is also a text-align
declaration of the same type (which doesn't conform to standards).
I am not aware of any way to achieve this effect cleanly in another way in older Webkit browsers, but you could solve this by a margin-based fallback for example, or have a JS-based calculation at runtime.
Solution 4:
You cloud use a simple grid to archive this effect:
.section_zone {
display: grid;
grid-auto-flow: column;
}
Post a Comment for "Auto Space Between Horizontal Divs In Css"