How do I bottom-align grid elements in bootstrap fluid layout

前端 未结 10 1702
你的背包
你的背包 2020-12-04 10:21

I have a fluid layout using Twitter\'s bootstrap, wherein I have a row with two columns. The first column has a lot of content, which I want to fill the span normally. The

相关标签:
10条回答
  • 2020-12-04 10:36

    This is an updated solution for Bootstrap 3 (should work for older versions though) that uses CSS/LESS only:

    http://jsfiddle.net/silb3r/0srp42pb/11/

    You set the font-size to 0 on the row (otherwise you'll end up with a pesky space between columns), then remove the column floats, set display to inline-block, re-set their font-size, and then vertical-align can be set to anything you need.

    No jQuery required.

    0 讨论(0)
  • 2020-12-04 10:44

    Just set the parent to display:flex; and the child to margin-top:auto. This will place the child content at the bottom of the parent element, assuming the parent element has a height greater than the child element.

    There is no need to try and calculate a value for margin-top when you have a height on your parent element or another element greater than your child element of interest within your parent element.

    0 讨论(0)
  • 2020-12-04 10:45

    Here's also an angularjs directive to implement this functionality

        pullDown: function() {
          return {
            restrict: 'A',
            link: function ($scope, iElement, iAttrs) {
              var $parent = iElement.parent();
              var $parentHeight = $parent.height();
              var height = iElement.height();
    
              iElement.css('margin-top', $parentHeight - height);
            }
          };
        }
    
    0 讨论(0)
  • 2020-12-04 10:47

    Based on the other answers here is an even more responsive version. I made changes from Ivan's version to support viewports <768px wide and to better support slow window resizes.

    !function ($) { //ensure $ always references jQuery
        $(function () { //when dom has finished loading
            //make top text appear aligned to bottom: http://stackoverflow.com/questions/13841387/how-do-i-bottom-align-grid-elements-in-bootstrap-fluid-layout
            function fixHeader() {
                //for each element that is classed as 'pull-down'
                //reset margin-top for all pull down items
                $('.pull-down').each(function () {
                    $(this).css('margin-top', 0);
                });
    
                //set its margin-top to the difference between its own height and the height of its parent
                $('.pull-down').each(function () {
                    if ($(window).innerWidth() >= 768) {
                        $(this).css('margin-top', $(this).parent().height() - $(this).height());
                    }
                });
            }
    
            $(window).resize(function () {
                fixHeader();
            });
    
            fixHeader();
        });
    }(window.jQuery);
    
    0 讨论(0)
提交回复
热议问题