使用javascript附加符合设置维度的图像

使用javascript附加符合设置维度的图像,javascript,html,css,image,Javascript,Html,Css,Image,我试图将图像附加到具有指定高度和宽度的元素。图像本身可能大于或小于该高度和宽度,我想调整图像以适应大小,而不是重复或仅显示图像的一部分 Javascript: 我得到了图像的URL以及它的高度和宽度,然后我尝试创建元素并在这里设置它的属性 var listingEntry = document.createElement("img"); listingEntry.setAttribute("height", height); listingEntry.setAttr

我试图将图像附加到具有指定高度和宽度的元素。图像本身可能大于或小于该高度和宽度,我想调整图像以适应大小,而不是重复或仅显示图像的一部分

Javascript:

我得到了图像的URL以及它的高度和宽度,然后我尝试创建元素并在这里设置它的属性

     var listingEntry = document.createElement("img");
     listingEntry.setAttribute("height", height);
     listingEntry.setAttribute("width", width);
     listingEntry.className = "classTitle";
     listingEntry.style.backgroundImage = "url(" + imageSourceUrl + ")";
然后,我通过Id从DOM中获取元素并附加它:

     var gridArticle = document.getElementById("gridArticle");
     gridArticle.appendChild(listingEntry);
还有我的CSS:

article .tile {

display: inline-block;
float: left;
box-sizing: border-box;

font-size: 3em;
font-weight: 700;

padding: 0 6px;
color: #fff;
text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black;

}

article img {

}
我试过:

article img {
   max-height: 100% 
   max-width: 100%
}

但随后图像全部停止显示。

您需要设置图像的来源:

var listingEntry = document.createElement("img");
listingEntry.setAttribute("height", height);
listingEntry.setAttribute("width", width);
listingEntry.className = "classTitle";
listingEntry.style.backgroundImage=“url”(+imageSourceUrl+”)


我将以两种不同的方式来处理这一问题:

1) 创建div并设置背景图像:

var listingEntry = document.createElement("div");
listingEntry.setAttribute("height", height);
listingEntry.setAttribute("width", width);
listingEntry.className = "classTitle";
listingEntry.style.backgroundImage = "url(" + imageSourceUrl + ")";
或2)创建img并设置指向url的src:

var listingEntry = document.createElement("img");
listingEntry.setAttribute("height", height);
listingEntry.setAttribute("width", width);
listingEntry.className = "classTitle";
listingEntry.src = imageSourceUrl;

注:我将采用第二种方法。另外,尽量避免将背景图像设置为img元素,因为该元素的内容往往会掩盖背景。

我目前使用的是第1种方式,效果很好。您知道我必须调整哪些属性,以使图像缩放到适合我指定的任何尺寸,从而不会重复图像或仅显示一部分吗?请尝试以下操作:溢出:隐藏;背景尺寸:封面;背景位置:中心;
var listingEntry = document.createElement("img");
listingEntry.setAttribute("height", height);
listingEntry.setAttribute("width", width);
listingEntry.className = "classTitle";
listingEntry.src = imageSourceUrl;