CSS学习笔记八——宽高自适应

2023-10-26

一、宽度自适应

不写宽度或者写 width:auto就表示宽度自适应,可用于横栏或导航栏。
与 width:100%不同,设为100%已经固定了宽度,宽度始终不变,而宽度自适应是会自动更改宽度,前者在设置 padding 时横向出现滚动条,后者在设置 padding 时会自动压缩宽度大小。
有 min-width、max-width 属性,max-width 用于图片上可避免拉大屏幕时图片失真。

二、高度自适应

不写高度或者写 height:auto就表示高度自适应,可用于内容多时让盒子自动撑开。
不写高度时,内容太少的情况下,网页看着不美观,因此可设置 min-height 属性确定最小高度,使其在无内容或内容少时仍保持美观。
有 max-height、min-height 属性,其中,最常用的属性是 min-height。

三、浮动元素的高度自适应

父元素不写高度时,子元素进行了浮动,此时父元素会出现高度塌陷。

解决高度塌陷的方法:

  1. 写固定高度。
    将父元素的高度设置与子元素高度一致;
    缺点:高度固定,如果浮动过多,换行会出现问题;
  2. 清除浮动。
    在补位元素,即顶上浮动元素位置的元素中添加 CSS 中的 clear 属性,清除前方浮动元素带来的干扰作用;
    缺点:不利于代码可读性,自己产生的问题,却由其他元素来解决;
  3. 补盒子。
    在当前浮动元素的下方添加一个空的 div 元素,并在该元素中添加 CSS 中的 clear 属性;
    缺点:增加空标签,不利于代码可读性,降低浏览器性能;
  4. 引发 bfc。
    给父元素添加 CSS 样式 overflow:hidden,引发 bfc,构成一个封闭空间,让浮动元素计算高度;
    缺点:隐藏溢出元素,当浮动元素为二级菜单时,二级菜单无法展示;
    注:二级菜单要脱离文档流,与父元素设置子绝父相,通过 top 等设置位置
  5. 使用伪元素(万能方案)。
    给父元素设置伪元素选择器 ::after ,通过属性 content 在最后方设置内容(有无值都可),添加清浮动属性 clear:both,同时将虚拟元素设为块元素,再设置宽高为0,最后设置 visibility 属性为 hidden,隐藏伪元素内容。
    此处的 visibility:hidden 不可改为 display:none,否则前功尽弃。

四、窗口自适应

盒子根据窗口大小进行改变,盒子宽度、高度均可通过百分比设置,但高度需设置 html,body{ height:100%} ,对 body 和 html 元素进行样式更改后,高度设置百分比才可生效。

五、结语

本学习笔记主要用于记录博主个人的前端学习过程,目前学习资源来自b站千锋的前端1000集教学,如笔记内容有写错的地方,希望大家能够指出。同时,欢迎看到博文的小伙伴们与我一同学习!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS学习笔记八——宽高自适应 的相关文章

  • a:active 不起作用

    我在这里很困惑 the a active不工作 但是 hover工作正常 我已经尝试了很多事情 但这个让我陷入困境 而且真的很令人困惑 我刚刚在表中添加了链接 我已将单元格添加到了类中 menu1 现在 当我访问活动页面时 活动链接不会突出
  • 在每个打印页上重复水印? JavaScript 或 CSS

    所以 我有这个发票页面 我正在页面后面添加水印 我需要为要打印的每一页重复水印 问题是 我不知道会有多少页 可以有任意数量的页面 我需要在每个页面后面显示水印 这些图像取自 Google Chrome 的打印模式 这是该页面的 html 你
  • 如何使用 Cypress 定位没有 id 属性的嵌套输入?

    我正在为 React 项目编写 Cypress 测试 我需要能够瞄准
  • 设置overflow-y可见,而overflow-x为auto,以便内容可以垂直溢出父容器

    我在用着position absolute and position relative如果将其父级悬停在图像上 则在图像上显示文本 文本和图像父 div 所在的容器设置为overflow x auto 使其具有水平滚动条 我想要看起来垂直溢
  • 单击按钮重复动画

    我想每次单击按钮时都重复动画 我尝试做某事像这样 https jsfiddle net 91raod7e const dist document querySelector dist document querySelector butto
  • React JS - 单击时更改颜色并将默认颜色放在所有其他颜色上

    我有 x 个渲染数文章预览依赖于 API 调用的组件 div div Object keys images map index i gt return div div
  • 使用 bootstrap 将搜索图标放入文本框中

    我默认使用引导程序 文本框占据列的全宽 我想将搜索图标放在文本框的末尾 我的代码是这样的 div class container div class row div class form group col lg 4 div div div
  • 使用JQuery检查元素是否有边框?

    所以我正在玩 el css 尝试确定元素是否有边框 我用 css border style solid 设置边框 这是可行的 但实际上它设置了 4 种单独的样式 border right style border left style bo
  • Menu.Item 中的 Antd 自动换行

    可以在 Menu Item 组件中应用自动换行吗 示例不起作用
  • 自定义 WP 主题时,我应该将导航栏放在“”标签之前还是之后?

    我正在通过制作子主题来自定义 WP 主题 我将 Bootstrap 中的导航栏放入子主题目录中的 header php 文件中 但是 我不确定在哪里放置导航栏代码 我可以把它都放在前面and之后标记成功 例如 无论我选择哪一个 导航栏都显示
  • 删除

    好的 我有一个小菜单栏 菜单内的三个元素还有更多的子菜单 但是菜单栏中的元素之间有不必要的间距 而且我创建的子菜单有不必要的背景宽度 我在代码中将其涂成白色以使读者理解 由于这种不必要的宽度 即使鼠标悬停在不可见的宽度上 在本例中为白色 本
  • javascript:window.print() 打印 2 页,而我有 1 页

    我有一个简单的 HTML 文档 其中仅包含图像标签 我想在文档加载后打印图像 我的代码 img src form1 jpg alt form1 style margin 0 auto display block 它可以工作 但问题是它打印图
  • 每 2 行后使 html 表格的边框变厚

    我创建了一个包含一些内容的表 其中有 12 行和 2 列 我想显示边框 但每 4 行之后 我想将水平边框设置为比正常情况更粗 怎么做 请在这里帮忙 试试这个选择器 table tr nth of type 4n td border bott
  • 理解 z-index:该元素如何出现在其父级同级元素的前面?

    为什么当我删除时红色 div 位于绿色 div 前面z index from wrapperRed 感觉像z index是沿着链条向上继承的 如果我改变z index将绿色 div 更改为 6 即使删除第一句中描述的行后 它仍保留在红色 d
  • 使用 python 在一个 html 页面中显示分割数据框的 HTML 代码

    我是 html css 新手 所以对以 html 格式显示的数据有疑问 我有一个很长的列表 我想将其拆分并以 html 格式显示为两个单独的列 例如 而不是 Col1 Col2 1 a 2 a 3 a 4 a 5 b 6 b 7 b 8 b
  • div 中的中心文本?

    我有一个div 30px高和500px宽的 这div可以包含两行文本 一行在一行 并相应地设置样式 填充 但有时它只包含一行 我希望它居中 这可能吗 要水平居中 请使用text align center 要垂直居中 只能使用vertical
  • 删除 IE9 边缘周围的 2px 灰色边框

    我正在尝试对这个网站进行编码 尝试关键字 并且我正在尝试找出如何删除这个阴影2px灰色边框延伸到 IE9 窗口的内部 至少顶部 左侧和底部 我的边距设置为零 因此所有页面元素都到达页面的最边缘 但使用 IE9 它们会停在这个灰色边框处 我没
  • 如何使使用 css 调整大小的图像在 IE 中看起来不错?

    当使用 css 宽度 高度或属性宽度 高度缩放图像时 IE6 和 IE7 无法很好地缩放网页中的图像 我不确定它默认使用哪种算法 但这不好 在这些浏览器中缩放时 缩放图像会显示锯齿伪影 幸运的是 有一种方法可以通过简单的 css 规则强制
  • 主页(网格)上的缩略图现在显得模糊。如何纠正?

    我不知道这看起来是否愚蠢 但从早上开始我就无法纠正这个突然出现在我的博客网站上的错误www candidopinions in http www candidopinions in 我有一个网格视图模板 其中博客文章中的特色图像作为调整大小
  • css3按钮背景颜色无限过渡

    有没有办法仅使用 css3 使按钮的背景颜色从灰色渐变为蓝色 然后又回到灰色 一个很好的例子是默认操作按钮是可可 我知道这可以在 javascript 中完成 但我宁愿只使用 css 来完成此操作 您好 我已经通过 CSS3 动画制作了按钮

随机推荐

  • three.js加载管理器LoadingManager实现对纹理图片的加载监听

    一 加载管理器LoadingManager使用介绍 LoadingManager是three js中的加载管理器 用于监控和管理加载资源的过程 通过使用LoadingManager 我们可以在应用程序中方便地加载各种类型的数据 例如模型 纹
  • POJ 1811 Prime Test —— Miller_Rabin+Pollard_Rho

    http poj org problem id 1811 题意 给定一个64位整数 问是否为质数 如果不是 则输出其最小因子 分析 Miller Rabin素数判定 若不是 则Pollard Rho分解质因子 找到最小即可 Miller r
  • 【对比Java学Kotlin】作用域函数

    什么是作用域函数 首先 落脚点是函数 什么的函数呢 能在某个上下文对象 可能是普通对象 也可能是个 Unit 的作用域内执行代码的函数 这里的作用域和 Java 的作用域有所不同 Java 的作用域更多的是指一对闭合的 的内部区域 void
  • Oracle数据库环境变量配置+修改数据库密码

    1 设置环境变量 必须设置环境变量才可以用CMD命令访问Oracle数据库 1 1 首先找到你Oracle安装位置路径 C app Administrator product 11 2 0 dbhome 1 1 2 设置环境变量 1 2 1
  • RAM汇编指令的简单介绍

    一些常见的概念 指令和伪指令 指令和伪指令的本质区别 指令在编译后会生成机器码由CPU去执行 而伪指令只是指导编译的过程 本身不会生成机器码 伪指令是编译器提供的 在编译的过程中 编译器自己会去对伪指令做相应的处理 什么是汇编指令 汇编指令
  • mysql installer no packages found 解决办法

    mysql installer no packages found 解决办法 方法源于https stackoverflow com questions 65772865 mysql installer did not find packa
  • 网络层协议和IP数据包的格式(详解)

    1 网络层的功能 定义了基于IP协议的逻辑地址 就是ip地址 连接不同的媒介类型 选择数据通过网络的最佳路径 完成逻辑地址寻址 2 IP数据包格式 版本号 Version 4bit 指IP协议版本 并且通信双方使用的版本必须保持一致 目前我
  • chatGPT是什么?chatGPT有哪些应用场景

    ChatGPT是一个通过大规模预训练语言模型实现的对话生成系统 它是由OpenAI研发的 这个系统的核心技术是基于深度学习的自然语言处理技术 GPT GenerativePre trainedTransformer 模型 GPT模型采用了T
  • uni-app中的#ifdef #ifndef #endif的用处,可以处理兼容多端平台

    1 ifdef ifndef endif三者的意思 ifdef 仅在某个平台上使用 ifndef 在除了这个平台的其他平台上使用 非此平台使用 endif 结束条件编译 2 平台标识的意思 标识 平台 APP PLUS 5 App MP 微
  • 关于vmware虚拟机的deepin没有网络问题

    首先我的vmware虚拟机的deepin是采用NAT模式 配置NAT网络 配置VMnet8 在deepin中手动添加有线连接 添加设置 保存退出 用有线连接2即可
  • 微信小程序实践——实验2天气查询小程序

    一 申请和风天气的API密钥 登录和风天气 创建成功后可得到自己的key 二 域名的配置 每一个小程序在与指定域名地址进行网络通信前都必须将该域名地址添加到管理员后台白名单中 需对域名地址https devapi qweather com进
  • Search for a Range(LeetCode)

    Given an array of integers nums sorted in ascending order find the starting and ending position of a given target value
  • 【python】爬虫篇:python使用psycopg2批量插入数据(三)

    本人菜鸡 有什么错误 还望大家批评指出 最近在更新python的爬虫系列 皿 Hiahiahia 该系列暂时总共有3篇文章 连接如下 python 爬虫篇 python连接postgresql 一 https blog csdn net l
  • 查看系统使用率命令 vmstat 输出详解!

    使用效果
  • 凸包问题的五种解法

    原文 http blog csdn net yangkunpengd article details 51336453 凸包问题的五种解法 前言 首先 什么是凸包 说凸包首先要说凸性的定义 简单点说就是平面邻域中任意两点所在的线段上的点都在
  • LR(0)文法分析(通过例题穿插讲解)

    目录 LR 0 文法的字面含义 LR 0 分析表的构造 写在最后 LR 0 文法的字面含义 LR 0 分析法是其他LR分析法构造的基础 L表示从左往右扫描 R表示反向构造出一个最右推导 k表示向前看k个字符 缺省为1 在学习LR 0 分析时
  • Linux驱动框架与LED实战

    目录 驱动框架 相关文件 案例分析 LED驱动框架源码 led class c led class attrs leds class class结构体 led classdev register 某一类的设备创建 led classdev结
  • QT获取显示当前时间和日期

    获取当前时间和日期 QT中获取时间和日期的主要是 QTime QDate 和 QDateTime 这三个类 QTime 类 通过 QTime 类中提供的时间相关的方法 可以获取到当前系统时间 时 分 秒 毫秒 需要注意的是 计时的准确性由底
  • QWidget/QDialog主窗体设置边框圆角

    1 问题 QT中窗体QWidget和QDialog为容器 不能对窗体进行边框圆角样式改变 只能通过绘图QPainter 2 设置无上边框选项窗口 this gt setWindowFlags Qt Widget Qt FramelessWi
  • CSS学习笔记八——宽高自适应

    宽高自适应 一 宽度自适应 二 高度自适应 三 浮动元素的高度自适应 四 窗口自适应 五 结语 一 宽度自适应 不写宽度或者写 width auto就表示宽度自适应 可用于横栏或导航栏 与 width 100 不同 设为100 已经固定了宽