FLEX 网格布局及响应式处理

上一篇文章用Flex实现BorderLayout,这一章我们来实现常用的网格布局和响应式处理.

首先我们定义HTML结构,主Box为grid,每项为grid-cell,下面就是我们HTML代码结构.

<div class="grid">
    <div class="grid-cell">
        1    </div>
    <div class="grid-cell">
        2    </div>
</div>

grid为flex容器,grid-cell为flex项,我们加入CSS代码

.grid{
    display: flex;
   flex-wrap: wrap;
   justify-content: space-around;
}.grid-cell{
    flex-grow: 1;
   flex-shrink: 1;
   padding: 10px;
}

了解过前两篇flex布局文章,代码没什么好解释的了,space-around是为了保证flex项之间的距离相等.grid-cell里设置为等比例的放大或缩小.

在这里,我们在.grid-cell里面加入一个demo盒子,这是为了更好的去控制grid-cell元素,不破坏flex布局的功能性,也就是各自负责各自的事情.为了效果好看,我加入了更多的网格模式.HTML结构,如下

<div class="grid">
    <div class="grid-cell">
        <div class="demo">1</div>
    </div>
    <div class="grid-cell">
        <div class="demo">2</div>
    </div>
</div>

<div class="grid">
    <div class="grid-cell">
        <div class="demo">1</div>
    </div>
    <div class="grid-cell">
        <div class="demo">2</div>
    </div>

    <div class="grid-cell">
        <div class="demo">3</div>
    </div>
</div>

<div class="grid">
    <div class="grid-cell">
        <div class="demo">1</div>
    </div>
    <div class="grid-cell">
        <div class="demo">2</div>
    </div>

    <div class="grid-cell">
        <div class="demo">3</div>
    </div>

    <div class="grid-cell">
        <div class="demo">4</div>
    </div>
</div>

CSS代码:

.grid{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
}.grid-cell{
    flex-grow: 1;
    flex-shrink: 1;
    padding: 10px;
}.demo{
    background-color: #eeeeee;
    min-height: 50px;
    text-align: center;
     width: 100%;;
}

demo里面设定高度和背景色,为了布局能够正确显示出来.

最终效果如下图:


网格布局,我们就实现了.现在不同以往只需要对电脑做好显示效果就可以了,如今社会,智能设备遍地都是.而人们使用智能设备的时间也远远大于PC,智能设备上显示也是重中之重,响应式布局也就出来了.

响应式布局用到的是media这个属性,所以处理起来也是很简单的.我们只需要加入下面的代码:

@media (max-width:768px){
     .grid-cell{
         flex-basis: 100%;
     }
}

就完成了上面网格布局的不同设备显示效果.我们这里是超过768像素的设备就正常显示,如果小于这个值,每个flex项就整行显示.看看效果:

本文属于吴统威的博客,微信公众号:bianchengderen 的原创文章,转载时请注明出处及相应链接:http://www.wutongwei.com/front/infor_showone.tweb?id=150 ,欢迎大家传播与分享.

时间: 2024-11-10 20:59:43

FLEX 网格布局及响应式处理的相关文章

静态布局、自适应布局、流式布局、响应式布局、弹性布局简析

近期学习,有很多感想,有时候看似相近的概念,其实意义却不相同.所以学习要针对不同的名词有明确的区分意识. 抽空时间,打算学习下display:flex;本以为就是一个小小的知识点,正式去研究的时候,才发现display:flex;有很多内容,能实现很多效果.比如三栏布局(左右两栏固定,中间栏自适应),圣杯布局. 后来想着经常听到流式布局,自适应布局,响应式布局,他们有什么区别呢,就去搜了许多内容查看,才发现每种布局都有优缺点和不同使用场景. 静态布局:给页面元素设置固定的宽度和高度,单位用px,

第九十五节,移动流体布局和响应式布局总结

移动流体布局和响应式布局总结 宽度与高度 区块宽度一般用max-width 最大宽度和百分比,来定义宽度,因为要实现自动缩放 高度如果要自适应,就不需要定义高度,或者定义最小高度 注意:横向的尽量用百分比,如边距等 图片自适应 保证小于图片分辨率的手机,自适应等宽屏幕 图片一定要能够自适应等比例缩放 才能保证布局的 正确性. 方法:将图片的img标签转换成区块,将最大宽度设置为100%,这样图片就会自适应了 img{ display: block; max-width: 100%; } 媒体查询

网页布局及响应式

最近项目整合到一起,整个布局页面样式,五花八门..然后就做最苦逼的事,改别人的代码. 看了几页代码,只想说能不能把最基础的规范写好.... 首先我要说明几点,第一:一个优良的网站,要求结构(HTML),表现(css),行为(Javascript)三者分离,除了必须要写到结构里面的,我可爱的同事把它们写到一页还是内嵌型的...这样的代码很不利于后期维护和二次开发, 代码无法压缩到最小,当然影响加载速度了,一般情况下图片也要用png格式而且要压缩到最小:这样才有利于用户快速的打开网站.(这些都是最基

Bootstrap页面布局5 - 响应式布局(格式)

旨在优化不同上网设备中页面显示的优化 响应式布局:就是根据浏览窗口的尺寸,改变页面的变化 原理:利用css的media-queries判断浏览窗口的尺寸,在CSS样式表中设置一些规则! 例如: 在<style></style>标签中输入如下css3的格式实现: <style> body {background:green;} //注意这里不能写成行内样式,使用CSS样式定制样式 @media (max-width:767px) {body{background:red}

自适应布局和响应式布局

记得第一次实际工作中接触到响应式布局排版之后,老大问了一个问题,自适应和响应式有什么区别吗? 自己理解的自适应布局是把宽度px值换成百分比,文字px单位换算成em单位,然后解决在不同大小设备上呈现同样的网页,但是这样屏幕过小,内容看上去就会很拥挤.觉得响应式听上去和自适应会差不多. 当时也不懂为什么同样的一个页面要设计3版风格(pc,pad,phone),觉得很麻烦,感觉不知道从何开始下手. 然后就接触到了下面这些内容: 1.meta标签的viewport属性 <meta name=”viewp

[学习笔记]viewport定义,弹性布局,响应式布局

一,移动端宽度设置viewport视图窗口,<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">,视窗宽度=设备宽度,默认缩放=1,不允许用户缩放. 二,flexbox,弹性盒子模型:1,在元素的css中添加display:-webkit-flex就可以转换成弹性盒模型了,然后在多个子元素的CSS中添加flex:1/2/3,就可以让子元素按

CSS3-基于浮动的布局,响应式WEB设计,定位网页上的元素,设计打印页面的css技术

基于浮动的布局: 1.除非图片设置了宽度,否则始终应该要对浮动的图片设置一个宽度,这样可以让浏览器给其他内容腾出环绕的空间 2.当侧边栏的高度与主内容区的高度不一致的时候,可以用个margin进行调整 3.在一个非浮动元素<div>中存在一个浮动元素,当浮动元素高于元素本身的时候,内容就会溢出<div>中,解决方案如下: A:在</div>介绍之前添加一个换行,并且添加一个类<br class=”clear”/>,之后创建一个样式br.class{clear

前端开发工程师 - 04.页面架构 - CSS Reset &amp; 布局解决方案 &amp; 响应式 &amp; 页面优化 &amp;规范与模块化

04.页面架构 第1章--CSS Reset 第2章--布局解决方案 居中布局 多列布局 全屏布局 第3章--响应式 浏览网页使用的设备屏幕大小迥异,如何保证页面在不同设备上都正常显示呢? --  解决方法:响应式 优点:无需为不同设备编写对应的页面 --> 降低开发成本.维护成本 缺点:页面中某些部分在某些设备上会被隐藏(资源加载了,但是只是用CSS隐藏了) 为什么在手机端的页面会很小呢? 所有的移动端的页面都引入了viewport视窗 刚开始所有的元素都是加载到一个比较大的viewport视

布局的几种方式(静态布局、自适应布局、流式布局、响应式布局、弹性布局)

一.静态布局(static layout) 即传统Web设计,网页上的所有元素的尺寸一律使用px作为单位. 1.布局特点 不管浏览器尺寸具体是多少,网页布局始终按照最初写代码时的布局来显示.常规的pc的网站都是静态(定宽度)布局的,也就是设置了min-width,这样的话,如果小于这个宽度就会出现滚动条,如果大于这个宽度则内容居中外加背景,这种设计常见于pc端. 2.设计方法 PC:居中布局,所有样式使用绝对宽度/高度(px),设计一个Layout,在屏幕宽高有调整时,使用横向和竖向的滚动条来查