Grid columns with list tags, I need to display in correct order per every 3 columns, with auto width enabled for every extra HTML list elements.
This is my example:
<style>
ul {
margin: 0;
padding: 0;
display: -webkit-flex;
display: flex;
-webkit-flex-wrap: wrap;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
height: 150px;
width:auto;
}
li {
float: left;
display: inline-block;
list-style: none;
position: relative;
height: 50px;
width: 50px;
}
</style>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li>10</li>
<li>11</li>
<li>12</li>
</ul>
display: -webkit-flex;
.
I want to convert the output like this:
1 4 7 10
2 5 8 11
3 6 9 12
It's important I get this working for Safari browser so far I cant seem to solve this problem at all, I would appropriate any help :)
Test link:
http://jsfiddle.net/rafcastro77/3zd7yspg/59/
display: -webkit-flex; display: -ms-flexbox; display: flex; Does not work in Safari - Version 9.0. 2 (11601.3. 9), but in Chrome and Firefox is ok.
Flexbox is very well supported across modern browsers, however there are a few issues that you might run into.
If you are using flexbox and want the content to wrap, you must specify flex-wrap: wrap . By default flex items don't wrap. To have the images be three-across, you should specify flex-basis: 33.33333% .
A key feature of flexbox is the ability to align and justify items on the main- and cross-axes, and to distribute space between flex items. Note that these properties are to be set on the flex container, not on the items themselves.
Flexbox is a CSS3 technology. This means it's relatively new and some browsers don't provide full support for flex properties.
Here's a run-down:
IE 8 and 9 do not support flexbox. If you're wanting to use flex properties in these browsers, don't bother wasting your time. A flexbox polyfill made the rounds for a while, but it didn't work well and is no longer maintained.
IE 10 supports a previous version of flexbox and requires vendor prefixes. Be aware that certain properties from the current spec aren't supported in IE10 (such as flex-grow
, flex-shrink
and flex-basis
). See the Flexbox 2012 Property Index.
IE 11 is good, but buggy. It's based on the current flexbox standard. See the KNOWN ISSUES tab on this page for some of the problems. Also see: flex property not working in IE
With Chrome, Firefox and Edge you're good all around. You'll find minor bugs and inconsistencies but there are usually easy fixes. You'll need to be aware of Implied Minimum Flex Sizing, which sometimes causes sizing and scrollbar problems.
Safari versions 9 and up support the current flexbox spec without prefixes. Older Safari versions, however, require -webkit-
prefixes. Sometimes min-width
and max-width
cause alignment problems which can be resolved with flex
equivalents. See Flex items not stacking properly in Safari
For a complete review of flexbox browser support, see this page: http://caniuse.com/#search=flex
For a quick way to add many (but not necessarily all) vendor prefixes use Autoprefixer. For Safari, see this article for -webkit-
prefixes that some prefix generators don't include.
For a list of common flex bugs and their workarounds see Flexbugs.
Also, on this site, there's:
It works for me display: -webkit-inline-box; in safari.
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