【CSS】一個自適應大小的父元素,如何讓子元素的寬高比一直是2:1

父元素是自適應大小的容器(比如 width:100%),我們希望子元素 始終保持 2:1 寬高比(比如寬 200px → 高 100px,寬 300px → 高 150px)。

有幾種常見解法:


? 方法一:CSS aspect-ratio(推薦,現代瀏覽器)

<div class="parent"><div class="child"></div>
</div>
.parent {width: 100%;      /* 父元素寬度自適應 */max-width: 600px; /* 可選:限制最大寬度 */
}.child {aspect-ratio: 2 / 1;  /* 寬高比 2:1 */width: 100%;          /* 填滿父容器 */background: lightblue;
}

👉 好處:代碼最簡潔,瀏覽器原生支持比例。
👉 兼容性:Chrome 88+、Safari 14.1+、Firefox 89+。


? 方法二:padding 百分比法(兼容性好)

利用 padding-top 是基于 父元素寬度 的特性:

<div class="parent"><div class="child"><div class="content">內容</div></div>
</div>
.parent {width: 100%;max-width: 600px;
}.child {width: 100%;padding-top: 50%;  /* 高度 = 寬度 * 0.5(即 2:1),撐開的高度 */position: relative;background: lightcoral;
}.content {position: absolute; /* 讓子內容覆蓋在容器里 */top: 0;left: 0;width: 100%;height: 100%;
}

👉 原理:2:1 → 高度 = 寬度 / 2 → padding-top: 50%
👉 優點:兼容所有瀏覽器。
👉 缺點:需要額外一層定位來放實際內容。


? 方法三:JS 動態設置(不推薦,除非要兼容特別老的瀏覽器)

function resize() {const parent = document.querySelector('.parent');const child = document.querySelector('.child');const width = parent.offsetWidth;child.style.height = width / 2 + "px"; // 寬高比 2:1
}window.addEventListener("resize", resize);
resize();

👉 不推薦,性能差,維護成本高。


🔑 總結

  • 現代瀏覽器 → 用 aspect-ratio,最簡潔。
  • 要兼容老瀏覽器 → 用 padding-top 技巧。
  • 特殊情況(比如需要動態計算) → 用 JS。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/98221.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/98221.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/98221.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何搭建redis集群(docker方式非哨兵)

1、redis的配置文件這里要注意&#xff0c;主從的ip不需要我們去設置&#xff0c;只需要設置主從的密碼就可以&#xff0c;然后就是protect-mode&#xff0c;我設置的是no&#xff0c;一定注意不能設置主從。客戶端要訪問&#xff0c;一定要加# 每個節點的 redis.conf 中 clust…

如何學習VBA_3.3.9:利用“搭積木”思想,快速有效地完成你的代碼

我給VBA的定義&#xff1a;VBA是個人小型自動化處理的有效工具。利用好了&#xff0c;可以大大提高自己的勞動效率&#xff0c;而且可以提高數據處理的準確度。我推出的VBA系列教程共九套和一部VBA漢英手冊&#xff0c;現在已經全部完成&#xff0c;希望大家利用、學習。如果您…

JSP程序設計之輸入/輸出對象 — response對象

response對象1.概述2.實例&#xff1a;response對象方法運用&#xff08;1&#xff09;實例一&#xff1a;頁面自動刷新&#xff08;2&#xff09;實例二&#xff1a;實現頁面重定向&#xff0c;具體的代碼&#xff08;3&#xff09;綜合實例&#xff1a;實現登錄并記錄用戶名1…

Redis 事件驅動框架(ae.c_ae.h)深度解析

Redis 事件驅動框架&#xff08;ae.c/ae.h&#xff09;深度解析 之前咱們用 “超市收銀員” 的例子&#xff0c;簡單看懂了 ae 模塊是 Redis 的 “多任務神器”。現在咱們再往深走一層&#xff0c;不用復雜代碼&#xff0c;只拆它的 “核心運作邏輯”—— 搞懂它怎么做到 “一個…

[能源化工] 面向鋰電池RUL預測的開源項目全景速覽

鋰離子電池是新能源汽車、儲能系統及便攜式電子設備的核心能源部件&#xff0c;其剩余使用壽命&#xff08;Remaining Useful Life&#xff0c;RUL&#xff09;的準確預測直接關系到設備運行安全、維護成本優化和能源效率提升。RUL預測算法能夠提前量化電池剩余可用時間&#x…

PEFT QLora Deepspeed Zero Stage 3 Offload Trainning

使用 accelerate deepspeed zero stage 3 offload 進行 sft trainning 的自動設備映射: GPU 訓練計算 CPU 存儲 run_peft_qlora_deepspeed_stage3.sh #!/bin/bashexport MAX_JOBS4 export OMP_NUM_THREADS4 export disable_exllamaTrue export CUDA_VISIBLE_DEVICES0,1 expor…

JAVA上門家政維修服務系統源碼微信小程序+微信公眾號+APP+H5

一、功能介紹用戶端&#xff1a;精準分類、支持家政、維修、萬能服務、一口價、報價、線上、各類家政服務、優惠專區、師傅入駐、商家入駐、我的需求、補費明細、我的投訴&#xff1b;師傅端&#xff1a;接單池、消息通知、接單管理、今日訂單、師傅入駐、我的錢包、實名認證&a…

GCKontrol對嵌入式設備FPGA設計流程的高效優化

1 前言FPGA&#xff08;Field-Programmable Gate Array&#xff0c;現場可編程邏輯門陣列&#xff09;是一種可編程的半導體器件&#xff0c;因其硬件可重構性、硬件并行計算能力、低延遲和實時性的優勢&#xff0c;廣泛應用于數字電路設計、原型驗證和系統加速等領域。但開發…

DBAPI免費版對比apiSQL免費版

DBAPI簡介 零代碼開發api服務&#xff0c;只需編寫sql&#xff0c;就可以生成http api服務。支持api動態創建&#xff0c;兼容多種數據庫。 適用于BI報表、數據可視化大屏的后端接口快速開發。 旨在為企業數據服務的發布提供完整解決方案 一、DBAPI免費版本支持1個數據源連接支…

CTFHub SSRF通關筆記8:數字IP Bypass 原理詳解與滲透實戰

目錄 一、SSRF 二、數字IP原理 1、IP多進制 &#xff08;1&#xff09;十進制整數格式 (Dword / 長整數格式) &#xff08;2&#xff09;八進制格式 (Octal IP) &#xff08;3&#xff09;十六進制格式 (Hex IP) 2、SSRF繞過 三、滲透實戰 1、打開靶場 2、嘗試127.0.…

C++中雙引號和單引號的區別(全面分析)

我在刷算法題的時候經常遇到&#xff0c;用了 出現警告或者使用" "直接報錯&#xff0c;尤其是在字符串部分&#xff08;py玩家后遺癥/(ㄒoㄒ)/~~&#xff09;在詳細了解后總結一下加強記憶。 總的來說在 C 中&#xff0c;雙引號 "" 和單引號 是完全不同…

Ubuntu20.04仿真 |iris四旋翼添加云臺相機詳述

申明&#xff1a; 1、本人使用的是Ubuntu20.04ros1gazeboxtdronepx4的仿真組合 2、為了使傳感器模型和飛機模型解耦合&#xff0c;實現不同平臺對傳感器可直接調用&#xff0c;本系列博文涉及的所有傳感器均不直接添加在相應平臺的sdf當中&#xff0c;而是通過編寫xxx_joint.…

《人工智能AI之機器學習基石》系列 第 16 篇:關聯規則與數據挖掘——“啤酒與尿布”傳奇背后的增長秘密

《人工智能AI之機器學習基石》? 專欄核心理念: 用通俗語言講清楚機器學習的核心原理,強調“洞察+ 技術理解 + 應用連接”,構建一個完整的、富有啟發性的知識體系。 引言:藏在購物車里的“讀心術” 朋友們,歡迎回到我們的AI基石之旅。 在過去的兩次探索中,我們深入…

Spring Boot 的自動配置原理

Spring Boot 的自動配置是其 "約定大于配置" 理念的核心實現&#xff0c;它能自動配置 Spring 應用所需的各種組件&#xff0c;大幅減少手動配置。下面從核心注解、加載流程、條件過濾等方面詳細講解其原理&#xff0c;并結合關鍵源碼說明。一、自動配置的入口&#…

谷歌云平臺(Google Cloud Platform, GCP)介紹(全球領先的云計算服務平臺,為企業和開發者提供包括計算、存儲、數據分析、人工智能、機器學習、網絡和安全等在內的全面云服務)

文章目錄**1. GCP的核心優勢****1.1 全球領先的基礎設施****1.2 強大的數據分析和人工智能能力****1.3 卓越的安全性和合規性****1.4 靈活的定價模式****2. GCP的主要服務****2.1 計算服務****2.2 存儲和數據庫****2.3 網絡服務****2.4 人工智能與大數據****2.5 安全與管理工具…

RISC-V異常機制和異常定位

不少人在調試RISC-V core時&#xff0c;面對異常的出現不知所措&#xff0c;不知道如何定位代碼問題。這里將從RISC-V異常機制以及幾個異常實例學習下。 1 異常機制 1.1 什么是異常 異常是軟件程序員不得不要深入了解的&#xff0c;首先在學習異常機制前&#xff0c;對異常要…

c++中導出函數調用約定為__stdcall類型函數并指定導出函數名稱

開發環境在Visual studio 2022版本下&#xff0c;為防止編譯器重命名函數名稱&#xff08;會加上8等等亂七八糟的東西&#xff09;&#xff0c;我們對函數名稱進行指定&#xff1a;一、新建.def文件&#xff0c;名稱須與dll名稱相同&#xff0c;并放在與cpp文件相同文件夾下&am…

Vision Transformer (ViT) :Transformer在computer vision領域的應用(二)

METHOD,論文主要部分 In model design we follow the original Transformer (Vaswani et al., 2017) as closely as possible. An advantage of this intentionally simple setup is that scalable NLP Transformer architectures – and their efficient implementations –…

AI 論文周報丨紅隊測試語言模型/多視角 3D 點追蹤方法/蛋白質表示學習框架/密碼學漏洞檢測新框架……

近年來&#xff0c;已有若干方法嘗試從單目視頻實現 3D 點跟蹤&#xff0c;然而由于在遮擋和復雜運動等挑戰性場景中難以準確估計 3D 信息&#xff0c;這些方法的性能仍難以滿足實際應用對高精度與魯棒性的要求。 基于此&#xff0c;蘇黎世聯邦理工學院、卡內基梅隆大學聯合提出…

STM32 通過USB的Mass Storage Class讀寫掛載的SD卡出現卡死問題

問題描述&#xff1a;使用stm32cubemx生成的sdio和usb Mass Storage Class的代碼后&#xff0c;在USB_DEVICE\App\usbd_storage_if.c文件里面的接口調用以下函數出現卡死問題&#xff1a; SD_Driver.disk_initialize(0); SD_Driver.disk_read(lun, buf, blk_addr, blk_len) SD_…