当前位置: 首页 > news >正文

面试笔记【16:9区域问题】

目录

问题描述

方法一:padding处理

方法二:aspect-ratio


问题描述

最近面试遇到了这样一个【16:9区域问题】,思考一番决定记录下来,希望可以帮助到小伙伴们

问题:“如何用纯CSS实现一个16:9的固定区域?

方法一:padding处理

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><style>html,body {margin: 0;padding: 0;}.parent-container {position: relative;width: 100%;height: 0;padding-bottom: 56.25%; /* 9/16比例 */}.content-container {position: absolute;top: 0;left: 0;width: 100%;height: 100%;background-color: black;}</style>
</head><body><div class="parent-container"><div class="content-container"></div></div>
</body></html>

效果:

  • 在CSS中,所有“百分比形式的内边距”都是基于“父元素的宽度”来决定的
  • 使用中,应当使用“content-box”(标准盒模型),而不应该使用“border-box”(怪异盒模型),尽管两者都可以完成16:9的任务,但是当父元素“parent-container”存在边框左右内边距时,实际的width会被压缩,这就会导致实际效果并不是精确的16:9
  • 该方法也是兼容性最好的方法,在任何浏览器中都可以使用

我们让box-sizing:content-boxbox-sizing:border-box做一个比较,我们令宽度为1000px,对比高度即可发现区别

box-sizing:content-box:

box-sizing:content-box模式下,宽度为1000px时,高度约为608.25px

box-sizing:border-box(未添加border):

在未添加border时,高仍然约为608.25px

box-sizing:content-box模式下,宽度为1000px时,高度约为608.25px

box-sizing:border-box(添加border:10px):

此时,宽度变为980px,而高度仍然为608.25px,这显然是不对的

方法二:aspect-ratio

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><style>html,body {margin: 0;padding: 0;}.aspect-container{width: 100%;aspect-ratio: 16/9;background-color: black;} </style>
</head><body><div class="aspect-container"></div>
</body></html>

效果:

  • aspect-ratio是CSS中新引入控制元素“宽高比”的属性

aspect-ratio取值形式

  1. aspect-ratio:宽度比例/高度比例
  2. aspect-ratio:数值,等价于“数值/1”,例如aspect:ratio:2,表示“宽高比等于2比1”

http://www.lryc.cn/news/606514.html

相关文章:

  • SQL注入SQLi-LABS 靶场less25a-28a详细通关攻略
  • ESP32 外设驱动开发指南 (ESP-IDF框架)——GPIO篇:基础配置、外部中断与PWM(LEDC模块)应用
  • 机械学习--逻辑回归
  • 第1章:基础篇——第1节:基础操作与认识界面
  • Vercel 全面介绍与网站部署指南
  • 老旧远程控制管理模块(物联网设备)渗透实战:SNMP泄露+内核提权攻击链深度解析
  • Gold 序列
  • 7月31号打卡
  • nvm安装nodejs后提示No installations recognized
  • 爱普生002墨水与004墨水基本参数及支持机型
  • pyspark使用
  • 火焰图(Flame Graph)深度指南:CPU性能分析与瓶颈定位
  • STM32——HAL 库MDK工程创建
  • 计算机网络知识【推荐!!!】按照OSI七层模型梳理
  • 动手学习深度学习-深度学习知识大纲
  • Spring Boot + MinIO + KKFile:三步搭建企业级文件预览系统
  • SpringBoot3.x入门到精通系列:1.2 开发环境搭建
  • 前端核心技术Node.js(二)——path模块、HTTP与模块化
  • 2025年物联网新趋势:格行随身WiFi的模块化架构与低延迟优化
  • 代码随想录算法训练营第三十七天
  • 从C语言到C++:拥抱面向对象编程的全新世界
  • LCGL使用简介
  • 【qiankun】基于vite的qiankun微前端框架下,子应用的静态资源无法加载的问题
  • 详解Vite 配置中的代理功能
  • 基于岗位需求的康养休闲旅游服务实训室建设方案
  • 【赵渝强老师】OceanBase租户的资源管理
  • Opus音频编码器全解析:从技术原理到实战应用
  • 在 CentOS 7 安装中文字体
  • yolo目标检测基础知识
  • 【算法基础课-算法模板2】数据结构