width: auto 和 width: 100% 的区别

width: auto Vs. width: 100%

关于 width 属性

  • CSS 中的 width 属性用于设置元素的宽度。默认情况下,width 设置的是内容区(content area)的宽度。如果元素有样式 box-sizing: border-box,则 width 设置的是边框区(border area)的宽度。

  • width 取值为百分比(percentage),表示当前元素的宽度为其包含块(containing block)的宽度的百分比。

    通常情况下(即对于非定位元素而言),元素的包含块为该元素最近的块级祖先元素的内容区

  • width 取值为 auto,表示浏览器根据实际情况会自动计算出一个宽度。

width: auto 的行为

  • 对于非替换的块级元素(如 <div><p> 等),width: auto 意味着元素会尽可能地填满其父元素的可用空间,但不会超过父元素的宽度,同时会考虑 marginpaddingborder 的值。

    • 默认情况下:如果没有设定 floatposition: absoluteposition: fixed 等样式,width: auto 会使元素的宽度自动调整,以适应其父元素的宽度。换句话说,元素会扩展到填满其包含块的可用宽度(减去 paddingbordermargin 后的宽度)。
    • 浮动元素:对于设置了 float 的元素,width: auto 会使元素的宽度收缩到内容所需的最小宽度。
    • 绝对定位元素:对于设置了 position: absolute 的元素,width: auto 会使元素的宽度取决于其包含块的宽度和其他相关的 CSS 属性(如 leftright 等)。
  • 对于替换元素(如 <img><video><iframe> 等),width: auto 的行为会有所不同。

    • 固有尺寸:替换元素通常有一个固有的尺寸(intrinsic size)。当 width: auto 时,这些元素会优先根据它们的固有尺寸进行展示。
    • 包含块的宽度:如果包含块(即父元素)的宽度有限制,替换元素会根据包含块的宽度进行调整。具体来说,替换元素会在其固有尺寸和包含块宽度之间找到一个平衡点。

总结起来,width: auto 的实际行为确实依赖于元素的类型(替换元素或非替换元素)以及元素的上下文(如是否浮动、是否绝对定位等)。这个说法正确并且在大多数情况下能够准确描述 width: auto 的行为。

width: 100% 的行为

  • width: 100% 意味着元素的宽度将被设置为其包含块的宽度。这会使元素的内容区与父元素的内容区等宽。

  • 如果元素有 paddingbordermargin,这些会额外占用空间,从而可能导致元素的总宽度超过父元素的宽度,造成溢出(overflow)。

  • 如果父元素的宽度发生变化,设置 width: 100% 的元素会随之调整,始终保持与父元素等宽。

小结

通常情况下(元素非定位元素,且为非替换元素),100% 的取值可能会导致元素溢出,而 auto 的取值不会导致元素溢出。

REFERENCES

https://developer.mozilla.org/en-US/docs/Web/CSS/width

https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#calculating_percentage_values_from_the_containing_block

https://forsethingvild.medium.com/the-difference-between-width-auto-and-width-100-a58e2ac7832f

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/16225.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

正运动控制器:视觉纠偏和找孔

一、用户主界面CCD参数设置 通过主界面CCD参数设置&#xff0c;学习如何操作计算相机中心与电批中心的偏移量&#xff0c;以及相机标定的功能。 1、相机中心与电批中心的偏移量计算 1.1、在用户主界面点击CCD参数按钮&#xff0c;进入CCD设置界面。 主界面 CCD参数设置界面 1…

制作电子画册速成攻略,快来试试

​当今社会&#xff0c;数字媒体日益普及&#xff0c;电子画册作为一种崭新的展示方式&#xff0c;受到了越来越多人的青睐。它不仅形式新颖&#xff0c;互动性强&#xff0c;而且制作起来也并不复杂。想知道如何快速掌握制作电子画册的技巧吗&#xff1f;我来教你吧。 接下来&…

二叉树的广义表反序列化

前言 个人小记 一、代码 #include<stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #define MAX_NODE 10 #define MAX_LEN 100 #define key(n)(n)?(n->key):(-1) typedef struct Node {int key;struct Node* lchild,*rchil…

Leetcode 3159. Find Occurrences of an Element in an Array

Leetcode 3159. Find Occurrences of an Element in an Array 1. 解题思路2. 代码实现 题目链接&#xff1a;3159. Find Occurrences of an Element in an Array 1. 解题思路 这一题的话我们只需要首先统计一下array当中目标元素x出现在第几次的位置&#xff0c;构造一个has…

推荐13款常用的Vscode插件,提高前端日常开发效率

1. Live Server Live Server 插件是一个用于前端开发的扩展&#xff0c;它的主要作用是提供一个本地开发服务器&#xff0c;以便实时预览和调试网页应用程序。其最大特点在于热重载&#xff0c;即开发者可实时预览代码效果。 因为Live Server 允许开发者在浏览器中实时预览您正…

软件测试面试题(五)

一&#xff1a;如何选择用户测试的工作产品&#xff1f;、 答&#xff1a;在用户有需求得到签字确认以后&#xff0c;我们选择用户测试的工作产品。我们几乎所有的项目都进行了测试&#xff0c;我们是在项目立项公告中得知需要对工作产品进行测试。 二&#xff1a;测试环境描述…

C++中集合的使用

在 C 中&#xff0c;集合通常指的是标准模板库&#xff08;STL&#xff09;中的 std::set 或 std::unordered_set。这两个都是用来存储不重复元素的容器&#xff0c;但在实现和使用方式上有一些区别。 1. std::set&#xff1a; 基于红黑树实现&#xff0c;元素按照严格的顺序…

Llama 3没能逼出GPT-5!OpenAI怒“卷”To B战场,新企业级 AI 功能重磅推出!

Meta 是本周当之无愧的AI巨星&#xff01;刚刚推出的 Llama 3 凭借着强大的性能和开源生态的优势在 LLM 排行榜上迅速跃升。 按理说&#xff0c;Llama 3在开源的状态下做到了 GPT-3.7 的水平&#xff0c;必然会显得用户&#xff08;尤其是企业用户&#xff0c;他们更具备独立部…

指令中常用的7种寻址方式z

指令中的寻址方式就是对指令中的地址字段进行解释&#xff0c;以获得操作数的方法或获得程序转移地址的方法。常用的寻址方式有&#xff1a; 立即寻址&#xff1a;操作数就包含在指令中。直接寻址&#xff1a;操作数存放在内存单元中&#xff0c;指令中直接给出操作数所在存储…

C#调用HttpClient.SendAsync报错:System.Net.Http.HttpRequestException: 发送请求时出错。

C#调用HttpClient.SendAsync报错&#xff1a;System.Net.Http.HttpRequestException: 发送请求时出错。 var response await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, cancellationToken);问题出在SSL/TLS&#xff0c;Windows Server 2012不支持…

先进制造aps专题八 基于ai大模型的ai超级应用,ai生管

目前正在研发的面向消费者的ai超级应用有ai文员&#xff0c;ai教师&#xff0c;ai家教&#xff0c;ai护士&#xff0c;ai翻译 而ai生管无疑是面向制造业的ai超级应用 从商业角度来说&#xff0c;ai生管&#xff0c;必然是aps公司必然要研发的ai超级应用

Grafana 路径遍历所有路径 CVE-2021-43798漏洞预警

简介​ ​Grafana是一个跨平台、开源的数据可视化网络应用程序平台。用户配置连接的数据源之后&#xff0c;Grafana可以在网络浏览器里显示数据图表和警告。 漏洞危害等级 高危 CVE 编号​ CVE-2021-43798 FOFA查询 ​app"Grafana" ​zoomeyes查询 ​app:"gr…

Vue3解决“找不到模块“@/components/xxx.vue”或其相应的类型声明”

文章目录 前言背景问题描述解决方案总结 前言 在使用 Vue 3 开发项目时&#xff0c;遇到“找不到模块 ‘/components/xxx.vue’ 或其相应的类型声明”的错误是一个常见问题。这通常与 TypeScript 和模块解析相关的配置不当有关。本文将详细介绍如何解决此问题&#xff0c;确保…

2024-6-遥远的救世主

2024-6-遥远的救世主 2024-4-18 豆豆 fatux&#xff1a; 2021.5.26 看完电视剧《天道》之后购买本书&#xff0c;断断续续一直没有读完。 非常好奇&#xff0c;一个什么样的作者能写出如此奇书。老丁&#xff0c;一个智者&#xff0c;智者是多么孤独&#xff0c;因为找不到同…

信息安全等级保护测评: 登陆日志

文章目录 引言I 登录日志表结构设计II 日志处理2.1 封装日志入库2.2 收集登陆信息2.3 查询接口引言 等保测评是信息安全等级保护测评的简称,是对信息和信息载体按照重要性等级分级别进行检测、评估的过程。 背景:近期AIS监控平台(网页版)等保测评,发现没有登陆日志,现要…

从用法到源码再到应用场景:全方位了解CompletableFuture及其线程池

文章目录 文章导图什么是CompletableFutureCompletableFuture用法总结API总结 为什么使用CompletableFuture场景总结 CompletableFuture默认线程池解析&#xff1a;ForkJoinPool or ThreadPerTaskExecutor&#xff1f;ForkJoinPool 线程池ThreadPerTaskExecutor线程池Completab…

Qt 界面上字体自适应控件大小 - 随控件缩放

Qt 界面上字体自适应控件大小 - 随控件缩放 引言一、设计思路二、进阶版大致思路三、参考链接 引言 Qt控件自适应字体大小可以用adjustSize()函数&#xff0c;但字体自适应控件大小并没有现成的函数可调. - 本文实现了按钮上的字体随按钮大小变化而变化 (如上图所示) - 其他控件…

Spring MVC+mybatis 项目入门:旅游网(三)用户注册——控制反转以及Hibernate Validator数据验证

个人博客&#xff1a;Spring MVCmybatis 项目入门:旅游网&#xff08;三&#xff09;用户注册 | iwtss blog 先看这个&#xff01; 这是18年的文章&#xff0c;回收站里恢复的&#xff0c;现阶段看基本是没有参考意义的&#xff0c;技术老旧脱离时代&#xff08;2024年辣铁铁&…

澳大利亚.德国-门户媒体投放通稿:需要注意什么地方

概述 在现代社会&#xff0c;新闻媒体的投放成为企业和组织宣传推广的重要手段之一。澳大利亚和德国作为全球重要的经济和科技中心&#xff0c;其新闻媒体也备受关注。本文将介绍澳大利亚和德国的一些主要新闻媒体&#xff0c;并讨论发表新闻稿时需要注意的地方。 澳大利亚媒…

streamlit 学习

表情网站 https://getemoji.com/ 官网&#xff1a; https://streamlit.io/ 文档 https://docs.streamlit.io/develop/api-reference/chat/st.chat_message 安装&#xff1a; pip install streamlit启动 以下的python 文件指写streamlit 程序的脚步。 1、先切换目录到Pyth…