Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.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
Javascript jQuery没有';不要选择正确的div高度_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript jQuery没有';不要选择正确的div高度

Javascript jQuery没有';不要选择正确的div高度,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我的jQuery有一个问题:我正在使用一个脚本,它允许我通过给元素一个类来居中,但是这个脚本的高度不正确 这是我的HTML代码: <div class="logoutscreen blackbackground"> <div class="window centered" style="display: block;"> [CONTENT HERE] </div> </div> 问题在于

我的jQuery有一个问题:我正在使用一个脚本,它允许我通过给元素一个类来居中,但是这个脚本的高度不正确

这是我的HTML代码:

    <div class="logoutscreen blackbackground">
        <div class="window centered" style="display: block;">
       [CONTENT HERE]
       </div>
    </div>
问题在于,该脚本不采用以.centered类(.window)为中心的div的高度和宽度,而是采用其父类(.logoutscreen)的高度和宽度


为什么会这样(

不是
$('.centered')

使用:

使用
$(this)
是您的问题。与其他方法不同,您无法在jQuery的
.css()
方法中以
$('.centered')
的形式访问
this
父对象…它将默认为全局
窗口
对象

您要做的是缓存对象并显式引用它:

var $centered = $('.centered');

$centered.css({
    position:'absolute',
    left:'50%',
    top:'50%',
    marginLeft:((-1 * $centered.outerWidth()) / 2),
    marginTop:((-1 * $centered.outerHeight()) / 2)
});
这将为您提供所需的内容。但是,如果您有多个实例,则需要执行以下操作:

$centered.each(function(){
    var $self = $(this);

    $self.css({
        position:'absolute',
        left:'50%',
        top:'50%',
        marginLeft:((-1 * $self.outerWidth()) / 2),
        marginTop:((-1 * $self.outerHeight()) / 2)
    });
});

这样,每个唯一的
高度
宽度
都会得到尊重。

@DOCTYPEHTML,很抱歉,我不理解您的意思。
var $centered = $('.centered');

$centered.css({
    position:'absolute',
    left:'50%',
    top:'50%',
    marginLeft:((-1 * $centered.outerWidth()) / 2),
    marginTop:((-1 * $centered.outerHeight()) / 2)
});
$centered.each(function(){
    var $self = $(this);

    $self.css({
        position:'absolute',
        left:'50%',
        top:'50%',
        marginLeft:((-1 * $self.outerWidth()) / 2),
        marginTop:((-1 * $self.outerHeight()) / 2)
    });
});