When creating columns of approximately even length with regard to the pages widget, the following constraints and contributing factors are outside the control of the algorithm doing the balancing:
- Number of columns
- Order of menu item groups
- Total number of items
- Relative size (number of child items) of item groups
- Font-size difference between 1st and 2nd-level items
- Text wrapping for items with longer menu text
- If one column must be longer, it should be the left-most
- Performance: we need to generate results in a time frame acceptable to a modern web user
Within these constraints, we need to create a single algorithm that will be used for all possible configurations. We have yet to identify an algorithm that will result in ideally balanced columns for all configurations.
Our Algorithm
- Count the number of total items (at all levels)
- Divide that total by the number of columns
Note: The result is the target number of items in any given column. - We fill the columns from right to left
At present, the best solution is to adjust the number of columns to that which yields the best result.
Comments
Let us know what was helpful or not helpful about the article.0 comments
Please sign in to leave a comment.