CSS实现自适应正方形
父级宽高不定,子级元素要宽高都是父级元素宽度的一半,即一个正方形
1. 利用padding来实现
.parent { width: 200px; height: 400px; display: flex; jsutify-content: center; align-items: center; background: aqua; } .child { width: 50%; // height: 50%; 面试的时候一开始答复了这个,难受,搞混了margin-top,padding-top和height的区别,前两者是都相对与父级的宽度,最后一个是相对于父级的高度 height: 0; padding-top: 50%; // padding有颜色,而且计算起来是根据父级的宽度来计算的 background: red; }
2. 利用伪类来实现
.parent { width: 200px; height: 400px; background: red; display: flex; justify-content: center; align-items: center; } .child { /* height: 0; 不可设置高度为0了,这样高度撑不开 */ width: 50%; background: yellow; overflow: hidden; /* 这里主要是形成一个BFC块,不然child会随着伪类一起向下,就不能实现伪类撑开child的效果了 */ } .child:after { content: ''; display: block; margin-top: 100%; /* 这里实现撑开child,margin-top也是相对于父级的宽度 */ }
3. 使用vw和vh作为单位
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » CSS实现自适应正方形
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » CSS实现自适应正方形