CSS实现自适应正方形

作者 : 开心源码 本文共685个字,预计阅读时间需要2分钟 发布时间: 2022-05-13 共153人阅读

父级宽高不定,子级元素要宽高都是父级元素宽度的一半,即一个正方形

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实现自适应正方形

发表回复