CSS布局如何实现左固定右自适应,有什么方法
Admin 2022-11-01 群英技术资讯 467 次浏览
这是一道面试题,你有多少种办法呢?
这里我们假设左边名为 left,宽度为 200 px,右边名为 right。即默认
.left { width: 200px; }
我的理解分四大类
flex 布局
grid 布局
绝对定位
双子元素 absolute
left:200px
+ width: 100%
左元素 absolute + 右元素 margin-left
margin-left: 200px
+ width: 100%
float 浮动
左元素左浮动,右元素不动
左元素左浮动,右元素右浮动
width: calc(100% - 200px)
)需要一个父元素做 flex 布局,且需要给它一个高度(撑开容器)
.father { display: flex; height: 200px; } .right { flex: 1; }
高级的布局方式,子元素不需要设置宽度,单单设置父元素属性即可。
.grid { display: grid; grid-template-columns: 200px 100%; height: 200px; }
需要给子元素设置宽高,不然撑不起来。右元素设置left: 200px
.father { position: relative; height: 200px; } .left { position: absolute; height: 200px; } .right { position: absolute; left: 200px; height: 200px; width: 100%; }
.father { position: relative; height: 200px; } .left { position: absolute; width: 200px; height: 200px; } .right { width: 100%; height: 200px; margin-left: 200px; }
前两种都需要有个父元素,但浮动不需要
左边浮动,下一个元素独占位置,并排一行
同样,需要设置高度,子元素才能撑开
.left { float: left; height: 200px; } .right { height: 200px; }
浮动不需要父元素,浮动就区别于正常文档流
我的理解是正常文档流是二维层面,而浮动相当于成了三维,区别于 Z 轴
右边元素有浮动不够,还需要设置宽度
.left { float: left; height: 200px; } .right { float: right; height: 200px; width: calc(100% - 200px); }
只要是 float 实现此功能的,都不需要父元素,以及自身都需要设置高度
简单来说,实现布局最好的方式是 flex,简单兼容现代浏览器和机型。当然,我是因为还没有学 grid(但 grid 要记得参数比较多)。绝对定位和浮动各有优缺点
各大方法 | 优缺点 | 需要什么 |
---|---|---|
flex | 布局简单 | 需要父元素、高度。子项 flex:1 |
grid | 布局最简单,但兼容性更现代 | 只需要父元素设置属性就好 |
绝对定位 | 兼容性更高 | 需要父元素做相对定位、高度 |
浮动 | 兼容性更高 | 不需要父元素,子项都需要宽高 |
float 区别于其他三种,不需要父元素做容器
grid 区别于其他三种,不需要设置子元素(左元素的)宽
绝对定位区别于其他三种,它的方法不仅要父元素有高,其子元素也要有高
flex 最简单
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了用纯CSS实现镂空效果的示例代码的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
今天主要给大家说说CSS属性的介绍及使用,主要讲解自动换行、强制不换行、强制断行、超出显示省略号等属性。有需要的小伙伴可以小编来了解下。
flex布局无疑是简单、易用的,他让我我们的布局更加简单和快速,这篇文章主要介绍了详解flex多列布局遇到的问题和解决方案 ,非常具有实用价值,需要的朋友可以参考下
这篇文章给大家分享的是CSS浏览器兼容性的问题的解决方法,因为市场上浏览器众多的缘故,因此在编程CSS时,需要考虑浏览器兼容的问题,对此这里就给大家来介绍一下究竟该如何解决CSS浏览器兼容性的问题,下文给大家介绍了四个方法,感兴趣的朋友接下来一起跟随小编看看吧。
css等比例分割父级容器的方法有什么?当父级容器的宽度一定,我们先要实现子元素等比例分割父级容器有很多种方法,本文给大家分享五种方法,有需要的朋友可以参考,接下来就跟随小编一起学习一下吧。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008