I want to have an N-by-2 grid like this, in which some elements (columns) might be set to display:none
based on run-time factors, making the number of rows and colu
JSfiddle Demo - Option 1
Note this requires not using floats and switching to display:inline-block
.
CSS
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.row {
text-align: center;
font-size:0;
}
.col-xs-6 {
float:none;
font-size:1rem;
display: inline-block;
width:50%;
border:1px solid grey;
}
JSfiddle - Option 2
Using standard floats and clearing the last one.
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.row {
}
.col-xs-6 {
border:1px solid grey;
}
.col-xs-6:nth-last-child(1):nth-child(odd) {
clear:both;
float:none;
margin:0 auto;
}
EDIT: See Suresh's comment about the last child needing to be odd. Updated.
In your case, you can use last-child
property. But you need to find the odd last element
, because even last element no need to come in center place. So you can use it in the following way.
.col-xs-6
{
display:inline-block;
text-align:center;
}
.col-xs-6:nth-last-child(1):nth-child(odd) { /* This will find last child with odd element */
display:inline-block;
text-align:center;
width:100%;
}
DEMO