如何调整 div 相对于浏览器 window 的大小?

How do I resize a div relative to browser window size?

我正在尝试制作一个根据浏览器 window 大小按比例调整大小的幻灯片,但我尝试的似乎没有任何效果。以下 HTML 和 CSS 是我使用的,因此当浏览器 window 调整大小时,幻灯片在我的页面上保持 居中 ,但它不会但允许幻灯片调整大小

我该怎么做?我最初的想法是简单地给 #parent div 一个 max-widthwidth 一定百分比,但它不起作用。我认为里面的所有东西,因为它们的宽度都设置为 100%,应该用 #parent div 调整大小,但它们没有。我什至不确定 #parent div 是否在调整大小...

img 很简单,它是我实际代码中六张图片的占位符,但这没有任何区别。

#parent {
 height:100%;
}

.fadein {
 position:relative;
 top:70px;
 width:100%;
 height:100%;
}

.fadein img {
 position:absolute;
 left:50%;
 top:50%;
 -webkit-transform: translate(-50%, -0%);
 -moz-transform: translate(-50%, -0%);
}

#slideshow {
 max-width:100%;
 width:100%;
 height:100%;
}
<div id="parent">
   
 <div id="slideshow">
   
  <div class="fadein">
    
   <img src="http://placehold.it/350x150" />
   
  </div>
   
 </div>
    
</div>

.fadein img 没有将宽度设置为 100%。又因为是绝对定位,宽度会参考window的宽度。不过这应该无关紧要,因为您的父 div 设置为 100%,所以无论哪种方式看起来都一样。

编辑:同样在将来当您遇到布局问题时,在您的 div 周围放置边框真的很有帮助。如评论中所述

要使 height: 100%; 成为视口 的高度 ,您需要在所有向上的元素上设置 height: 100%,包括 <html><body>...最有可能的是,您最好使用固定覆盖和测量 100vh。您可以在这里找到有关 vh 单元的有用信息以及 height: 100% 的真正含义:Percentage Height HTML 5/CSS

您的 img 标签需要调整大小。它将独立于父容器运行。

#parent {
 height:100%;
}

.fadein {
 position:relative;
 top:70px;
 width:100%;
 height:100%;
}

.fadein img {
 position:absolute;
 left:50%;
 top:50%;
 -webkit-transform: translate(-50%, -0%);
 -moz-transform: translate(-50%, -0%);
}

#slideshow {
 max-width:100%;
 width:100%;
 height:100%;
}

#slideshow img {
    width: 100%;
}
<div id="parent">
   
 <div id="slideshow">
   
  <div class="fadein">
    
   <img src="http://placehold.it/350x150" />
   
  </div>
   
 </div>
    
</div>

#parent {
height:200px;
  width:300px;
  position:relative;
}
#slideshow {
  position:absolute;
  left:0;
  top:0;
width:100%;
height:100%;
}
.fadein {
  position:fixed;
  left:0;
  top:0;
width:100%;
height:100%;
}
.fadein img {
position:absolute;
left:50%;
top:50%;
-webkit-transform:translate(-50%, -0%);
-moz-transform:translate(-50%, -0%);
  width:100%;
  height:100%;
}