响应式设计:在任何屏幕尺寸中集中一个全屏正方形

Posted

技术标签:

【中文标题】响应式设计:在任何屏幕尺寸中集中一个全屏正方形【英文标题】:Responsive design: centralize a full-screen square in any screen size 【发布时间】:2014-11-08 14:58:50 【问题描述】:

问题很简单:

我的页面的主要部分是一个正方形,应该在所有屏幕尺寸和方向的屏幕中心显示 正方形应该有效地利用屏幕,并且在不需要滚动的情况下尽可能大 没有滚动条、没有固定大小、没有溢出隐藏、没有 javascript。 鼓励使用 Flexbox。

这是页面在横向或纵向浏览器中的外观:

这里以CodePen 为起点。

<div class="body">
  <div class="square">
    Square
  </div>
</div>

【问题讨论】:

相关:Maintain aspect ratio of div but fill screen width and height in CSS? 【参考方案1】:

这是我实现最终目标的尝试。

关键点是vmin viewport percentage length同时用于方框的widthheight属性:

Example Here

.body, .square 
  display: flex;
  align-items: center;
  justify-content: center;


.body 
  min-height: 100vh;


.square 
  width: 100vmin;
  height: 100vmin;

(为简洁起见省略了供应商前缀,请查看demo 中的“编译视图”)。

【讨论】:

对于那些对CSS Flexbox Layout不感兴趣的人,这里是an alternative,它应该也适用于IE9。

以上是关于响应式设计:在任何屏幕尺寸中集中一个全屏正方形的主要内容,如果未能解决你的问题,请参考以下文章

响应式布局

响应式设计:不要过度依赖屏幕尺寸

响应式设计:不同屏幕尺寸的不同图像

响应式设计与自适应设计有何区别?

什么是响应式网页设计?

响应式网页设计最佳实践