CSS实现自适应的正方形

news/2025/2/7 11:51:26/

摘要

在开发移动端时,会遇到类似于九宫格菜单的页面,宽度很好设置,一般设置为“33.333%”或者其他,但是高度呢?下面介绍几种常用方法。

方法1:使用padding-top百分比

css">.square {width: 100px;height: 0;padding-top: 100%; /* 使高度等于宽度 */position: relative;
}

方法2:使用aspect-ratio属性(推荐现代浏览器)

css">.square {width: 100px; /* 或使用百分比、vw等单位 */aspect-ratio: 1 / 1; /* 设置宽高比为1:1 */
}

方法3:使用padding-bottom百分比

css">.square {width: 100px;height: 0;padding-bottom: 100%; /* 使高度等于宽度 */
}

方法4:使用flexbox布局

css">.square {display: flex;width: 100px; /* 或使用其他单位如vw, %, 等 */
}
.square::before {content: "";width: 0; /* 或者使用100%来使其填充容器宽度 */padding-top: 100%; /* 使高度等于宽度 */
}

方法5:使用grid布局

css">.square {display: grid;
}
.square::before {content: "";width: 100%; /* 或使用其他单位如vw, %, 等 */padding-top: 100%; /* 使高度等于宽度 */
}

结论

对于现代浏览器,推荐使用aspect-ratio属性。对于需要兼容旧浏览器的场景,你可以选择使用padding-toppadding-bottom百分比的方法。如果你想要完全自适应的正方形,可以考虑使用flexboxgrid布局的方法。


http://www.ppmy.cn/news/1570057.html

相关文章

DeepSeek R1技术报告关键解析(8/10):DeepSeek-R1 的“aha 时刻”,AI 自主学习的新突破

1. 什么是 AI 的“aha 时刻”? 在强化学习过程中,AI 的推理能力并不是线性增长的,而是会经历一些关键的“顿悟”时刻,研究人员将其称为“aha 时刻”。 这是 AI 在训练过程中突然学会了一种新的推理方式,或者能够主动…

Spring Boot 日志:项目的“行车记录仪”

一、什么是Spring Boot日志 (一)日志引入 在正式介绍日志之前,我们先来看看上篇文章中(Spring Boot 配置文件)中的验证码功能的一个代码片段: 这是一段校验用户输入的验证码是否正确的后端代码&#xff0c…

深入解析:Jsoup 库的多功能应用场景

Jsoup 是一个强大的 Java 库,主要用于解析和操作 HTML 文档。它不仅广泛应用于网络爬虫和数据抓取,还在网页内容分析、数据清洗与处理、自动化测试等多个领域有着广泛的应用。本文将详细介绍 Jsoup 库的多种用途,并提供具体的代码示例。 一、…

网络安全 风险评估指南 网络安全风险测评

本文介绍常用的安全测评工具,分别以Web安全测评和移动支付及互联网金融安全测评为案例,详细阐述针对实际业务系统开展安全测评工作的步骤、内容和判定方法。 一、安全测评工具 介绍在测评工作中常用的几类安全测评工具,包括网络数据分析工具…

什么是算法? – Algorithm

人工智能有三驾马车:数据、算法、算力。本文重点介绍算法相关的知识。 本文将介绍算法在人工智能里的概念,算法的4个特征、6个通用方法。以及在选择算法时需要注意的3个点。 目录 什么是算法? 算法的4个基本特征 算法的6个基本方法 选择算…

大数据学习之Spark分布式计算框架RDD、内核进阶

一.RDD 28.RDD_为什么需要RDD 29.RDD_定义 30.RDD_五大特性总述 31.RDD_五大特性1 32.RDD_五大特性2 33.RDD_五大特性3 34.RDD_五大特性4 35.RDD_五大特性5 36.RDD_五大特性总结 37.RDD_创建概述 38.RDD_并行化创建 演示代码: // 获取当前 RDD 的分区数 Since ( …

蓝桥杯刷题 DAY4:小根堆 区间合并+二分

import os import sys import heapq# 请在此输入您的代码if __name__"__main__":x,n map(int,input().split())l[]a[0]*nb[0]*nc[0]*nq[]for i in range(n):l.append(list( map( int ,input().split()) ))l.sort(keylambda pair:-pair[1])total0j0for i in range(x,0…

使用Ollama 在Ubuntu运行deepseek大模型:以DeepSeek-coder为例

DeepSeek大模型这几天冲上热搜啦! 咱们来亲身感受下DeepSeek模型的魅力吧! 整个操作流程非常简单方便,只需要2步,先安装Ollama,然后执行大模型即可。 安装Ollama 在Ubuntu下安装Ollama非常简单,直接sna…