关于overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷等等)

2023-05-16

一. overflow:hidden  溢出隐藏

给一个元素中设置overflow:hidden,那么该元素的内容若超出了给定的宽度和高度属性,那么超出的部分将会被隐藏,不占位。

/*css样式*/
<style type="text/css">
    div{ width: 150px; height: 60px; background: skyblue;
	 overflow: hidden;  /*溢出隐藏*/
       }
</style>

/*html*/
<div style="">
    今天天气很好!<br>今天天气很好!<br>
    今天天气很好!<br>今天天气很好!<br>
</div>

效果如下:

一般情况下,在页面中,一般溢出后会显示省略号,比如,当一行文本超出固定宽度就隐藏超出的内容显示省略号。

/*只适用于单行文本*/
div{ 
    width: 150px;
    background: skyblue;
    overflow: hidden;      /*溢出隐藏*/
    white-space: nowrap;	/*规定文本不进行换行*/
    text-overflow: ellipsis;	/*当对象内文本溢出时显示省略标记(...)*/
}

效果如下:

二. overflow:hidden  清除浮动

一般而言,父级元素不设置高度时,高度由随内容增加自适应高度。当父级元素内部的子元素全部都设置浮动float之后,子元素会脱离标准流,不占位,父级元素检测不到子元素的高度,父级元素高度为0。那么问题来了,如下:

/*css样式*/
<style type="text/css">
    .box{ background:skyblue; }
    .kid{ width: 100px;height: 100px; float:left;}
    .kid1{ background: yellow; }
    .kid2{ background: orange; }
    .wrap{ width: 300px; height: 150px; background: blue; color: white; }
</style>

/*html*/
<body>
    <div class="box">
        <div class="kid kid1">子元素1</div>
	<div class="kid kid2">子元素2</div>
    </div>
    <div class="wrap">其他部分</div>
</body>

如上,由于父级元素没有高度,下面的元素会顶上去,造成页面的塌陷。因此,需要给父级加个overflow:hidden属性,这样父级的高度就随子级容器及子级内容的高度而自适应。如下:

由于在IE比较低版本的浏览器中使用overflow:hidden;是不能达到这样的效果,因此需要加上 zoom:1;

所以为了让兼容性更好的话,如果需要使用overflow:hidden来清除浮动,那么最好加上zoom:1;

/*css样式*/
<style type="text/css">
    .box{ background:skyblue; 
	  overflow: hidden;  /*清除浮动*/
	  zoom:1;
        }
    .kid{ width: 100px;height: 100px; float:left;}
    .kid1{ background: yellow; }
    .kid2{ background: orange; }
    .wrap{ width: 300px; height: 150px; background: blue; color: white; }
</style>

/*html*/
<body>
    <div class="box">
        <div class="kid kid1">子元素1</div>
	<div class="kid kid2">子元素2</div>
    </div>
    <div class="wrap">其他部分</div>
</body>

 

三. overflow:hidden  解决外边距塌陷

父级元素内部有子元素,如果给子元素添加margin-top样式,那么父级元素也会跟着下来,造成外边距塌陷,如下:

/*css样式*/
<style type="text/css">
    .box{ background:skyblue;}
    .kid{ width: 100px;height: 100px; background: yellow; margin-top: 20px}
</style>

/*html*/
<body>
    <div class="box">
	<div class="kid">子元素1</div>
    </div>
</body>

因此,给父级元素添加overflow:hidden,就可以解决这个问题了。

/*css样式*/
<style type="text/css">
    .box{ background:skyblue;
          overflow: hidden; /*解决外边距塌陷*/   
        }
    .kid{ width: 100px;height: 100px; background: yellow; margin-top: 20px}
</style>

/*html*/
<body>
    <div class="box">
	<div class="kid">子元素1</div>
    </div>
</body>


 

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

关于overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷等等) 的相关文章

  • 重复排列:避免溢出

    背景 Given n球使得 a balls are of colour GREEN b balls are of colour BLUE c balls are of colour RED 当然a b c n 这些球可以排列的排列数量由下式
  • CSS 溢出 - 未按预期工作

    http jsfiddle net bSnaG http jsfiddle net bSnaG 在我看来 上面的例子应该看起来像一个灰色的盒子 x不越过边缘并且 y探出底部 但事实并非如此 显然是这样的overflow x hidden c
  • 隐藏用户输入

    我正在尝试获取一个既可以在本机 Windows shell 中也可以在 cygwin shell 通过 ssh 中运行的脚本 该脚本会提示并读取用户输入的密码 到目前为止 我已经尝试过以下方法 using Term ReadKey and
  • 选项菜单操作栏

    谁能明白为什么我的帮助图标没有显示在操作栏中 我已将代码的相关部分粘贴在下面 谢谢 菜单topline xml
  • Bootstrap 4:隐藏卡片文本中的溢出

    我有一张 bootstrap 4 卡 我想在其中隐藏字幕的溢出 并显示 我怎样才能实现这个目标 如果可能的话使用纯引导代码 div class card block p 1 p class card title Test object p
  • 有没有办法使用 PHP 在 Windows 文件上切换“隐藏”或“只读”开关?

    UPDATED 正如标题所说 有没有办法使用 PHP 在 Windows 上切换 隐藏 或 只读 开关 我想在不打开外壳的情况下执行此操作exec 如果可能的话 一个文件不能是hidden 它总是在文件系统中 NIX 约定文件以 a 开头
  • 当元素的父元素溢出时,使元素宽度拉伸以适合其子元素:auto;

    在这个简化的示例中 我有一个书柜 书架上放着书籍 书架是具有定义宽度的最外面的元素 书架上的书应该从左到右排列 没有包装 书架应该拉伸其宽度以显示书架上的所有书籍 所有书架的宽度必须相同 即最宽书架的宽度 My HTML div class
  • Phonegap和Android溢出问题

    看来Android webview根本不关心overflow hidden当 div 溢出时的 css 属性 我拿了一个伟大的代码使用 HTML CSS 进行 GPU 转换的教程 http coenraets org blog 2013 0
  • 使用 numpy 处理 exp 溢出

    使用 numpy 我有一个函数的定义 def powellBadlyScaled X f1 10 4 X 0 X 1 1 f2 numpy exp numpy float X 0 numpy exp numpy float X 1 1 00
  • “-webkit-overflow-scrolling: touch”破坏了 css 3d 透视

    正在寻找解决方案仅限 iOS Safari 使用时 webkit overflow scrolling touch它打破了 iOS 上的 3D 视角 请参阅演示CodePen http codepen io abernier pen qda
  • 在 C# 中处理整数溢出的最佳方法?

    处理整数溢出是一项常见任务 但在 C 中处理它的最佳方法是什么 是否有一些语法糖可以使其比其他语言更简单 或者这真的是最好的方法吗 int x foo int test x common if test common x Console W
  • C++ 重载虚函数发出 clang 警告?

    clang 在编译以下代码时发出警告 struct Base virtual void get char e virtual void get char e int index struct Derived public Base virt
  • 不可能的布局?

    我开始认为这是不可能的 但我想我会问你们 基本上它是一个 2 列布局 但 业务 需要以下内容 始终占据整个浏览器窗口 适应浏览器窗口大小的调整 左栏的宽度是固定的 但该宽度在不同页面上应该是灵活的 左列顶部有一个固定高度的区域 左栏有一个底
  • 如何更改Android中全息主题的菜单项文本颜色?

    我在我的应用程序中使用 Theme Holo 我使用以下 Style xml 自定义了我的主题
  • 算术溢出相当于模运算吗?

    我需要在 C 中进行模 256 算术 那么我可以简单地做吗 unsigned char i i 代替 int i i i 1 256 不 没有什么可以保证unsigned char有八位 使用uint8 t from
  • 如何检测C++中的溢出?

    我只是想知道是否有一些方便的方法来检测运行时 C 程序中使用的任何默认数据类型的任何变量是否发生溢出 我所说的方便是指 如果每次变量的值发生变化时该变量都在其数据类型的范围内 则无需编写代码来跟踪每个变量 或者如果不可能实现这一点 你会怎么
  • 最有效的便携式溢出检测? [复制]

    这个问题在这里已经有答案了 与 C C 和 D 等金属语言类似 检测无符号 64 位溢出的最有效 合理可移植的方式是什么 即不使用汇编程序 尽管您可能假设二进制补码算术和环绕行为 乘法中的整数 通过将无符号类型可表示的最大值除以被乘数之一
  • 是否有像 numpy.clip(a, a_min, a_max) 这样的函数,其中 a_min 和 a_max 之外的值被包裹而不是饱和?

    对于给定的整数 numpy 数组 我可以使用 numpy clip a a min a max 将该数组中的值饱和到任意最小值和最大值 我想知道是否有一个 numpy 函数或技巧来执行此操作 以便它不会使值饱和 而是将它们包装起来 我知道
  • Chrome 中的错误或 CSS 错误? (隐藏可见性的锚点)

    在任何 HTML 中测试这个简单的行 a href anything span insible text here span a 您可以直接从这里测试 http jsfiddle net wqS3E http jsfiddle net wq
  • Android SoundPool 堆限制

    我正在使用 SoundPool 加载多个声音剪辑并播放它们 据我所知 它的功能 100 正确 但在 load 调用期间 我的日志中充斥着以下内容 06 09 11 30 26 110 ERROR AudioCache 23363 Heap

随机推荐