Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 使用相对/绝对位置使元素居中的最佳技术?_Css - Fatal编程技术网

Css 使用相对/绝对位置使元素居中的最佳技术?

Css 使用相对/绝对位置使元素居中的最佳技术?,css,Css,当我将父元素的position属性设置为relative,子元素的position设置为absolute时,我试图在浏览器中获得一致的居中效果。子元素就是我试图居中的元素 目前在firefox中,它并不完全是中心,但ie6/7是我下面使用的示例 #wrapper { min-width:995px; position: relative; } #wrapper2 { margin:0 auto; z-index: 0; position: absolute; } 你是在尝试水平居中、垂直居中还

当我将父元素的position属性设置为relative,子元素的position设置为absolute时,我试图在浏览器中获得一致的居中效果。子元素就是我试图居中的元素

目前在firefox中,它并不完全是中心,但ie6/7是我下面使用的示例

#wrapper { min-width:995px; position: relative; }
#wrapper2 { margin:0 auto; z-index: 0; position: absolute; }

你是在尝试水平居中、垂直居中还是两者兼而有之

在这两种情况下,使用边距和绝对值是不兼容的。绝对位置使其脱离正常流量。如果取出绝对位置,则内部div水平居中正确

无论您想做什么,在纯CSS中居中(尤其是垂直居中)是一个巨大的问题,特别是在需要IE6支持的情况下


如果您必须在内部div上使用绝对定位,那么您几乎需要依赖像素定位,这意味着您需要知道外部和内部div的固定大小,除非有几个角的情况。

您是尝试水平居中还是垂直居中

在这两种情况下,使用边距和绝对值是不兼容的。绝对位置使其脱离正常流量。如果取出绝对位置,则内部div水平居中正确

无论您想做什么,在纯CSS中居中(尤其是垂直居中)是一个巨大的问题,特别是在需要IE6支持的情况下


如果您必须在内部div上使用绝对定位,那么您几乎需要依赖像素定位,这意味着了解外部div和内部div的固定大小,除非有几个角的情况。

如果您对jQuery方法感兴趣,几周前我使用了以下方法:

$(window).load(function() {
    $("ul.recent-list div img").each(function() {
        var moveX = ($(this).width() / 2 * -1) + 18;
        var moveY = ($(this).height() / 2) * -1 - 18; // 18 is 1/2 the default offset of 36px defined in CSS
        $(this).css({'top' : moveY, 'left' : moveX});
    });
});
我必须拍摄一张未知大小的图像,并将其放置在一个36x36px的窗口内,这样通过窗口只能看到图像中的36平方px区域


需要window.load而不是document.ready,因为如果document.ready上的图像没有定义宽度/高度属性,Safari将无法使用宽度和高度函数。由于我的图像具有不同的尺寸,因此我不得不使用window.load来代替。

如果您对jQuery方法感兴趣,几周前我使用了以下方法:

$(window).load(function() {
    $("ul.recent-list div img").each(function() {
        var moveX = ($(this).width() / 2 * -1) + 18;
        var moveY = ($(this).height() / 2) * -1 - 18; // 18 is 1/2 the default offset of 36px defined in CSS
        $(this).css({'top' : moveY, 'left' : moveX});
    });
});
我必须拍摄一张未知大小的图像,并将其放置在一个36x36px的窗口内,这样通过窗口只能看到图像中的36平方px区域

需要window.load而不是document.ready,因为如果document.ready上的图像没有定义宽度/高度属性,Safari将无法使用宽度和高度函数。由于我的图像尺寸不同,因此我不得不使用window.load