代码之家  ›  专栏  ›  技术社区  ›  anthonypliu

可以使用jquery、javascript或css提取背景大小“auto”值吗?

  •  0
  • anthonypliu  · 技术社区  · 15 年前

    如果我有

    background-size: 50% auto;
    

    如果我想提取auto值,基本上可以得到新的高度或宽度呢?

    1 回复  |  直到 15 年前
        1
  •  0
  •   Derek Hunziker    15 年前

    在CSS3中,“背景大小”是相对于容器元素的。所以,“50%自动”总是正好是它容器宽度的一半。

    也就是说,使用jquery可以获得一半的宽度,如下所示:

    $(function() {
        var w = $('.yourcontainer').width() / 2;
        alert(w);
    });
    

    通过指定两个值,可以定义宽度和高度。。。您将“高度”设置为“自动”,因此图像将保持其原始比例,而不是缩放到50%的高度。这使得在不知道图像原始比例的情况下很难获得“height”值。幸运的是,通过创建一个新的DOM元素并测试其维度,您可以很容易地将这些值导入javascript:

    $(function() {
    
        var img = new Image();
        img.src = 'images/yourimage.jpg';
    
        var w = $('.yourcontainer').width() / 2;
        var h = (w / img.width) * img.height;
    
        alert(h);
    
    });