【问题标题】:Vertical and horizontal align (middle and center) with CSS [duplicate]使用CSS垂直和水平对齐(中间和中心)[重复]
【发布时间】:2011-07-22 05:40:11
【问题描述】:

我很困惑如何强制我的 div 元素在我的页面上居中(verticallyhorizontally)(意味着跨浏览器兼容性的一种或多种方式)?

【问题讨论】:

    标签: css xhtml alignment


    【解决方案1】:

    方法有很多:

    1. 使用固定度量将元素的水平和垂直居中对齐

    CSS

     <div style="width:200px;height:100px;position:absolute;left:50%;top:50%;
    margin-left:-100px;margin-top:-50px;">
    <!–content–>
    </div> 
    

    2 。将单行文本水平和垂直居中

    CSS

    <div style="width:400px;height:200px;text-align:center;line-height:200px;">
    <!–content–>
    </div>  
    

    3 .没有特定度量的元素的水平和垂直居中对齐

    CSS

    <div style="display:table;height:300px;text-align:center;">
    <div style="display:table-cell;vertical-align:middle;">
    <!–content–>
    </div>
    </div>  
    

    【讨论】:

    • 我错了吗?我选择了解决方案 2,但它似乎不适用于 firefox :)
    【解决方案2】:

    This blog post 描述了两种使 div 水平和垂直居中的方法。一种只使用 CSS,并且可以使用固定大小的 div;另一个使用 jQuery,可以处理你事先不知道大小的 div。

    我在这里复制了博客文章演示中的 CSS 和 jQuery 示例:

    CSS

    假设你有一个 .classname 类的 div,下面的 css 应该可以工作。

    left:50%; top:50%; 将 div 的左上角设置为屏幕中心; margin:-75px 0 0 -135px; 分别将其向左和向上移动固定大小 div 宽度和高度的一半。

    .className{
        width:270px;
        height:150px;
        position:absolute;
        left:50%;
        top:50%;
        margin:-75px 0 0 -135px;
    }
    

    jQuery

    $(document).ready(function(){
        $(window).resize(function(){
            $('.className').css({
                position:'absolute',
                left: ($(window).width() - $('.className').outerWidth())/2,
                top: ($(window).height() - $('.className').outerHeight())/2
            });
        });
        // To initially run the function:
        $(window).resize();
    });
    

    这是demo of the techniques in practice

    【讨论】:

    • 如果OP不需要使用jquery怎么办?
    • 在 jQuery 示例的正上方有一个 CSS 示例。如果 OP 不想使用 jQuery,并且需要将预先不知道大小的 div 居中,那么也可以将 jQuery 示例修改为使用直接的 javascript。
    【解决方案3】:

    这并不像人们想象的那么容易——如果您知道容器的高度,您实际上只能进行垂直对齐。如果是这种情况,您可以使用绝对定位。

    概念是将顶部/左侧位置设置为 50%,然后使用负边距(设置为高度/宽度的一半)将容器拉回居中。

    示例:http://jsbin.com/ipawe/edit

    基本 CSS:

    #mydiv { 
        position: absolute;
        top: 50%;
        left: 50%;
        height: 400px;
        width: 700px;
        margin-top: -200px; /* -(1/2 height) */
        margin-left: -350px; /* -(1/2 width) */
      }
    

    【讨论】:

    • 当然,如果你不知道你的容器的高度,你总是可以用 JavaScript 得到计算出来的高度,然后用 JS 设置你的边距。
    【解决方案4】:

    这个网站提供了一些垂直居中 div 的选项:http://www.jakpsatweb.cz/css/css-vertical-center-solution.html

    【讨论】:

    • 该网站也提供了水平对齐的示例。
    【解决方案5】:

    现在有更好的解决方案:Vertical align anything with just 3 lines of CSS

    【讨论】:

    猜你喜欢
    • 2011-07-25
    • 1970-01-01
    • 2014-04-19
    • 2018-06-23
    • 2020-10-21
    • 1970-01-01
    • 2020-04-02
    • 2015-02-04
    • 1970-01-01
    相关资源
    最近更新 更多