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用IMG填充DIV height并将IMG居中?_Css_Centering - Fatal编程技术网

我如何使用css用IMG填充DIV height并将IMG居中?

我如何使用css用IMG填充DIV height并将IMG居中?,css,centering,Css,Centering,如何使用img填充div容器高度并使img居中 在下面的例子中,我想让狗图片填充容器的高度,它必须保持比例,所以我不在乎它有多宽 但也我希望无论屏幕有多宽,狗的图片都位于容器的中心 HTML 见下面的代码笔 请参阅上winchendonsprings()的画笔。将以下CSS添加到现有CSS。它将.single-pieceDIV和img设置为100%高,将图像移动到水平中间位置(使用左边距:50%),并将图像向左移回其自身宽度的50%。这将适用于比容器窄的图像(左侧和右侧留有空白)和更宽的图像(溢

如何使用img填充div容器高度并使img居中

在下面的例子中,我想让狗图片填充容器的高度,它必须保持比例,所以我不在乎它有多宽

但也我希望无论屏幕有多宽,狗的图片都位于容器的中心

HTML

见下面的代码笔


请参阅上winchendonsprings()的画笔。

将以下CSS添加到现有CSS。它将
.single-piece
DIV和img设置为100%高,将图像移动到水平中间位置(使用
左边距:50%
),并将图像向左移回其自身宽度的50%。这将适用于比容器窄的图像(左侧和右侧留有空白)和更宽的图像(溢出被隐藏)


将以下CSS添加到现有CSS。它将
.single-piece
DIV和img设置为100%高,将图像移动到水平中间位置(使用
左边距:50%
),并将图像向左移回其自身宽度的50%。这将适用于比容器窄的图像(左侧和右侧留有空白)和更宽的图像(溢出被隐藏)


您可以叠瓦
弹性
框,并将
最大高度
/
最大宽度
设置为
img
,并通过
边距:自动
对齐项目
/
对齐内容
居中

例如:

.posts{
显示器:flex;
柔性流:行换行;
对齐项目:拉伸;
对齐内容:拉伸;
宽度:90%;
保证金:0自动;
}
.邮政{
弹性:0.1 calc(33.33%-0.666em);
高度:350px;
溢出:隐藏;
边框:1px纯红;
右边距:1米;
}
/*增加*/
.post,.单件{
高度:350px;
显示器:flex;
对齐项目:居中;
证明内容:中心;
}
/*结束添加*/
。职位:第n名子女(第3名){
右边距:-1em;/*仅用于代码笔*/
}
img{
显示:块;/*添加或使用垂直对齐*/
最大宽度:100%;/*已添加*/
最大高度:100%;/*已添加*/
边距:自动;/*添加了中心-x,y伸缩子对象*/
}

您可以叠加
flex
框,并将
最大高度
/
最大宽度
设置为
img
,并通过
边距:自动
对齐项目
/
对齐内容
居中

例如:

.posts{
显示器:flex;
柔性流:行换行;
对齐项目:拉伸;
对齐内容:拉伸;
宽度:90%;
保证金:0自动;
}
.邮政{
弹性:0.1 calc(33.33%-0.666em);
高度:350px;
溢出:隐藏;
边框:1px纯红;
右边距:1米;
}
/*增加*/
.post,.单件{
高度:350px;
显示器:flex;
对齐项目:居中;
证明内容:中心;
}
/*结束添加*/
。职位:第n名子女(第3名){
右边距:-1em;/*仅用于代码笔*/
}
img{
显示:块;/*添加或使用垂直对齐*/
最大宽度:100%;/*已添加*/
最大高度:100%;/*已添加*/
边距:自动;/*添加了中心-x,y伸缩子对象*/
}

编辑:此代码可能会对您有所帮助,它使用JS使用img元素填充您的div

var divParent = document.createElement('div');
divParent.style.cssText = `height:(${dynamicdivheight(x)}cm);width:calc(25mm - 1px);overflow:hidden;`;

 //this loop is for vertical alignment
 for(var i = 0;  divHeight/imgheight > i; i++){
//treat each row separately

//this loop is for horizontal alignment
for(var y=0; divWidth/imgheight > y; y++) {
   if (y == 0) {
      var bgImage = document.createElement('img');
      bgImage.src = "img/Sand.png";
      bgImage.style.width ="1cm";
      bgImage.style.position = "absolute";
      bgImage.style.top = i + "cm"; 
      bgImage.id = `bgImage_${y}`;
   }
   if (y != 0) {
      var bgImage = document.createElement('img');
      bgImage.src = "img/Sand.png";
      bgImage.style.width ="1cm";
      bgImage.style.position = "absolute";
      bgImage.style.left = y + "cm";
      bgImage.style.top = i + "cm"; 
      bgImage.id = `bgImage_${y}`;
   }
   divParent.appendChild(bgImage);  
}

EDIT:这段代码可能会对您有所帮助,它使用JS用img元素填充您的div

var divParent = document.createElement('div');
divParent.style.cssText = `height:(${dynamicdivheight(x)}cm);width:calc(25mm - 1px);overflow:hidden;`;

 //this loop is for vertical alignment
 for(var i = 0;  divHeight/imgheight > i; i++){
//treat each row separately

//this loop is for horizontal alignment
for(var y=0; divWidth/imgheight > y; y++) {
   if (y == 0) {
      var bgImage = document.createElement('img');
      bgImage.src = "img/Sand.png";
      bgImage.style.width ="1cm";
      bgImage.style.position = "absolute";
      bgImage.style.top = i + "cm"; 
      bgImage.id = `bgImage_${y}`;
   }
   if (y != 0) {
      var bgImage = document.createElement('img');
      bgImage.src = "img/Sand.png";
      bgImage.style.width ="1cm";
      bgImage.style.position = "absolute";
      bgImage.style.left = y + "cm";
      bgImage.style.top = i + "cm"; 
      bgImage.id = `bgImage_${y}`;
   }
   divParent.appendChild(bgImage);  
}

要适应paren div,可能需要使用“inherit”属性值。看看这里:为了适应paren div,您可能需要使用“inherit”属性值。请看这里:@GCyrullus此解决方案看起来简单而优雅,只是它不会使图像垂直增长以适合div。“我错过了什么吗?”温琴顿斯普林斯,不,你没有,我不明白这一点,否则我会提出其他东西来裁剪你的形象。(对象适合,不使用clip()进行剪裁,绝对+文本对齐)..@GCyrullus此解决方案看起来简单而优雅,只是它不会使图像垂直生长以适合div。“我错过了什么吗?”温琴顿斯普林斯,不,你没有,我不明白这一点,否则我会提出其他东西来裁剪你的形象。(对象匹配、不带剪辑的剪辑()、绝对+文本对齐)…惊人。我从来不记得变换属性。谢谢太神了我从来不记得变换属性。谢谢
.single-piece {
  height: 100%;
}
.single-piece a {
  width: 100%;
  overflow-x: hidden;
}

.single-piece a img {
  height: 100%;
  width: auto;
  margin-left: 50%;
  transform: translatex(-50%);
}
var divParent = document.createElement('div');
divParent.style.cssText = `height:(${dynamicdivheight(x)}cm);width:calc(25mm - 1px);overflow:hidden;`;

 //this loop is for vertical alignment
 for(var i = 0;  divHeight/imgheight > i; i++){
//treat each row separately

//this loop is for horizontal alignment
for(var y=0; divWidth/imgheight > y; y++) {
   if (y == 0) {
      var bgImage = document.createElement('img');
      bgImage.src = "img/Sand.png";
      bgImage.style.width ="1cm";
      bgImage.style.position = "absolute";
      bgImage.style.top = i + "cm"; 
      bgImage.id = `bgImage_${y}`;
   }
   if (y != 0) {
      var bgImage = document.createElement('img');
      bgImage.src = "img/Sand.png";
      bgImage.style.width ="1cm";
      bgImage.style.position = "absolute";
      bgImage.style.left = y + "cm";
      bgImage.style.top = i + "cm"; 
      bgImage.id = `bgImage_${y}`;
   }
   divParent.appendChild(bgImage);  
}