弹性盒子布局解决不规则图片的等比例缩放的利器!

我们经常遇到这种需求:

在一个固定大小(固定比例)的容器里面展示图片,图片的大小比例都不是固定的,需要按容器的比例等比例缩图片上下左右居中显示。

在没有弹性盒子布局的年代,额的做法:

1:水平居中,非常好解决,容器 text-align: center;

2:垂直居中,容器display: table-cell; 图片vertical-align: middle;

3:等比例缩放,js解决,思路:

(1)如果图片宽高都没有超过容器大小,则忽略

(2)如果图片的宽度或者高度其中有一方超过容器大小,则固定没超过的,缩放超过的

(3)如果图片宽度和高度都超过容器大小,则先缩放宽度到容器宽度,如果等比例缩放的高度没超过容器的高度则完美,如果超过则缩放高度到容器高度,再计算宽度。。。

炒鸡麻烦有木有!

而现在有了弹性盒子布局,零JS代码纯CSS实现以上效果,在弹性盒子布局里面,容器会自动判断子是否超过了大小,如果超过会自动按照以上规则进行缩放,什么水平居中垂直居中也是小case,简直爽到爆!

.container {
        display: -webkit-box;
        display: -webkit-flex;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
        align-items: center;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
        justify-content: center;
        background: #000;
        img {
            width: 100%;
        }
    }
时间: 2024-10-22 04:13:02

弹性盒子布局解决不规则图片的等比例缩放的利器!的相关文章

css横向 弹性盒子布局的一些属性

<head> <meta charset="utf-8"> <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,initial-scale=1.0,width=device-width"/> <meta name="format-detection" content=&qu

CSS3总结五:弹性盒子(flex)、弹性盒子布局

弹性盒子容器的属性与应用 display:flex/inline-flex flex-direction flex-wrap justify-content align-items align-content flex-flow 弹性盒子子项的属性与应用 order align-self flex flex-grow flex-shrink flex-basis 弹性盒子布局 flex居中/T字布局 可动态增加导航栏 等分布局 圣杯布局 流式布局 一.弹性盒子容器的属性与应用 1.1.定义弹性盒

弹性盒子布局(flex布局)

弹性盒子布局方式:.box{ display:flex;}@设为Flex布局后,子元素的float.clear和vertical-align属性将失效@采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器".它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称"项目".@容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis).主轴的开始位置(与边框的交叉点)叫做m

java读取jpg图片旋转按比例缩放

1 //入口 2 public static BufferedImage constructHeatWheelView(int pageWidth, int pageHeight, DoubleHolder scaleHolder) throws ValidateException{ 3 4 BufferedImage bi = new BufferedImage(pageWidth, pageHeight, BufferedImage.TYPE_INT_RGB); 5 Graphics2D g

浅谈弹性盒子布局

 一.理解 CSS3 弹性盒布局模型 Web 应用的样式设计中,布局是非常重要的一部分.布局用来确定页面上不同组件和元素的尺寸和位置.随着响应式用户界面的流行,Web 应用一般都要求适配不同的设备尺寸和浏览器分辨率.响应式用户界面设计中最重要的一环就是布局.需要根据窗口尺寸来调整布局,从而改变组件的尺寸和位置, 以达到最佳的显示效果.这也使得布局的逻辑变得更加复杂.本文介绍的是 CSS3 规范中引入的新布局模型:弹性盒模型(flex box).弹性盒模型可以用简单的方式满足很多常见的复杂的布局需

弹性盒子布局:语法

块级元素转换成弹性盒子:{display:flex} 行内元素转换成弹性盒子:{display:inline-flex} 1.flex-direction:用来确认主轴的方向 row(从左向右)相对于row-reverse(从右向左) column(从上向下)相对于column-reverse(从下向上) 2.flex-wrap:作用于子元素换不换行 nowrap(不换行) wrap(换行,从上往下走)wrap-recerse(换行,从上往下走) 3.justify-content:定义子元素在

CSS3弹性盒子--布局(2)

使用弹性盒子兼容低端适配有时需要: display:flex 和 display:-webkit-box display: -webkit-box; display: -webkit-flex; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -webkit-flex-direction: column; flex-direction: column; -moz-box-flex:3; -we

css 布局之定位 相对/绝对/成比例缩放

给body添加 overflow: hidden; 可以将页面所有的 滚动条隐藏,但必须要给body 设置一个高度 overflow: hidden; height:864px; 父元素必须要设置 position:relative 必须设置 width 与 height 且不能用百分比 父层如果是图片,要使用  background: url(bg.jpg) no-repeat; 子元素必须设置 position: absolute; 必须设置 width 与 height 定位使用 top

android项目 之 记事本(12) ----- 图片的等比例缩放及给图片添加边框

本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 在Android的UI开发中经常会遇到图片的缩放,就比如记事本,现在的图片都比较大,如果将原图不经缩放直接放在屏幕上,则会占满整个屏幕,而且有时图片会比屏幕还大,这时就不能完全的显示整个图片,所以,必须要进行缩放,但在缩放时,该如何缩放呢,长和宽的缩放比例设置为多少合适呢,为了保持原图的纵横比,所以要最好的方法就是约束缩放比例,也就是等比例缩放,相信大家都用过PS中的缩放图片的