CSS 溢出overflow属性的使用
作者:
WangMin
格言:努力做好自己喜欢的每一件事
在CSS中,如果给一个盒子设置了固定的宽度与高度,但内容过多就会溢出盒子本身的宽度或高度。此时,就可以使用 overflow 属性来控制内容溢出时的处理方式。那么接下来就开始来学习这个属性吧!

overflow 属性值如下:
| 属性值 | 含义 |
|---|---|
| visible | 不剪切形式也不添加转动条,也就是元素的内容在元素框之外也可见 |
| auto | 如果内容被剪裁,则浏览器会显示滚动条以便查看其余的内容 |
| hidden | 元素的内容会在元素框的边界处剪裁,并且超出元素框之外的内容不可见 |
| scroll | 元素的内容会在元素框的边界处剪裁,但浏览器会显示滚动条以便查看其余的内容 |
overflow 属性的延伸:overflow-X | overflow-y
| 属性 | 含义 |
|---|---|
| overflow-x | 主要用来定义对水平方向内容溢出的剪切 |
| overflow-y | 主要用来定义对垂直方向内容溢出的剪切 |
[注意]:如果 overflow-x 和 overflow-y 值相同则等同于overflow;如果overflow-x和overflow-y值不同,其中一个值显式设置为visible或未设置默认为visible,而另外一个值是非visible(除默认值以外的其他值)的值,则visible值会被重置为auto。
overflow:visible
如果没有给元素设置 overflow属性,表示使用其默认值 visible,让溢出的内容可见。此时,溢出的内容就会渲染到盒子的外面。例如,有一个盒子设置了固定宽度和高度,其中它的内容的尺寸超过了盒子本身的尺寸,效果如下:
<div class="box">
<p>
在CSS中,如果给一个盒子设置了固定的宽度与高度,但内容过多就会溢出盒子本身的宽度或高度。
此时,就可以使用 overflow 属性来控制内容溢出时的处理方式。那么接下来就开始来学习这个属性吧!
</p>
</div>
.box{
width:150px;
height:150px;
overflow:visible;
background:pink;
color:#666;
}

[注意]:
1、溢出的内容不会改变盒子的形状,盒子外面的内容是可见的,但它不会把周围其他容器挤下去。所以,溢出的内容不会影响页面布局,但溢出的内容可能与周围其他容器重叠。
2、就上面的例子来说,在IE6和更低版本中,超出的内容会撑开盒子的高度,以便适应内容的尺寸。在IE6下,元素的高度根据自动撑开。

overflow:auto
如果把元素的 overflow属性设置为 auto,则滚动条只在需要的时候出现,也就是当内容溢出元素时自动出现滚动条(溢出的内容滑动滚动条可以显示),没有溢出元素时不出现。就以overflow:visible上面提到的案例来说,效果如下:
.box{
width:150px;
height:150px;
overflow: auto;
background:pink;
color:#666;
}

overflow:hidden
如果把元素的 overflow属性设置为 hidden,情况则与 overflow:visible 相反,它会把超出盒子的内容全部隐藏掉。就以overflow:visible上面提到的案例来说,效果图如下:
.box{
width:150px;
height:150px;
overflow: hidden;
background:pink;
color:#666;
}

注意:这种情况下,因为盒子没有出现滚动条,所以对用户来说,被隐藏的内容就彻底看不到。overflow:hidden也可用于清除浮动。具体清除浮动的方法可参考 CSS 浮动和清除浮动方法总结
overflow:scroll
如果把 overflow属性设置为 scroll,它将会隐藏渲染到盒子之外的内容,但会在盒子内部提供一个滚动条,从而可以查看剩下的内容。就以overflow:visible上面提到的案例来说,效果图如下:
.box{
width:150px;
height:150px;
overflow: scroll;
background:pink;
color:#666;
}

这种情况下,无论内容是否溢出,都会在水平方向(overflow-x)和垂直方向(overflow-y)同时出现滚动条。
设置overflow失效的情况
绝对定位元素与固定定位元素不总是被父级overflow属性剪裁,尤其是当overflow在绝对定位元素及其包含块之间的时候,就以overflow:hidden上面提到的案例来说,这里我添加了一个.big 将 .box 包住,并给 .box 设置了绝对定位,效果图如下:
<div class="big">
<div class="box">
<p>
在CSS中,如果给一个盒子设置了固定的宽度与高度,但内容过多就会溢出盒子本身的宽度或高度。
此时,就可以使用 overflow 属性来控制内容溢出时的处理方式。那么接下来就开始来学习这个属性吧!
</p>
</div>
</div>
.big{
width:150px;
height:150px;
overflow: hidden;
}
.box{
width:150px;
height:150px;
position: absolute;
background:pink;
color:#666;
}

因为绝对定位是相对于父元素定位的,所以绝对定位元素无法被它的父级元素overflow属性剪裁 ,父级元素的overflow属性就会失效。这里父元素 .big 的 'overflow: hidden;' 就失效了,怎样来解决这个问题呢?那就给父级设置position:absolute或fixed或relative,父级元素的overflow属性就会生效啦。这里我们给 .big设置一个 position: relative;属性就可以了,效果如下:
.big{
width:150px;
height:150px;
position: relative;
overflow: hidden;
}
.box{
width:150px;
height:150px;
position: absolute;
background:pink;
color:#666;
}

以上仅是个人见解,若有不足之处欢迎在下方评论指出,那就先分享到这里!! 后续继续更新!!
CSS 溢出overflow属性的使用的更多相关文章
- css 溢出overflow
css 溢出overflow 当一个元素被设置为固定大小,在这个元素中的内容如果超出元素的界限,就会出现溢出的现象. 通常情况下我们可以通过overflow来控制这个属性. overflow语法定义 ...
- 眼见为实 — CSS的overflow属性
1. overflow属性 CSS的overflow属性指定当内容溢出一个元素的框,会发生什么.举个栗子: <!DOCTYPE html> <html> <head> ...
- 深入理解CSS溢出overflow & overflow:hidden真的失效了吗[转载]
深入理解CSS溢出overflow http://www.cnblogs.com/xiaohuochai/p/5289653.html overflow:hidden真的失效了吗 http://www ...
- 深入理解CSS溢出overflow
× 目录 [1]定义 [2]属性 [3]失效[4]应用 前面的话 当一个元素固定为某个特定大小,但内容在元素中放不下.此时就可以利用overflow属性来控制这种情况 定义 overflow溢出 值: ...
- CSS display overflow 属性 cursor光标类型
display属性 功能:规则网页元素如何显示的问题. 取值:none(隐藏).block(以块元素显示).inline(以行内元素显示) block:可以实现将行内元素转成块元素. ...
- css的overflow属性
原文:https://www.jianshu.com/p/67b536fc67c1 ------------------------------------------- 事实上我挺长一段时间都没弄清 ...
- CSS中的overflow属性
导读:overflow属性一般用来隐藏超过div范围的元素,包括不隐藏(visible),直接隐藏(hidden),用滚动条隐藏(scroll),自动(aotu)这四个属性.当然overflow的用法 ...
- 转:CSS Overflow 属性
原文:CSS Overflow 属性译自:The CSS Overflow Property版权所有,转载请注明出处,多谢!! 根据CSS的盒模型概念,页面中的每个元素,都是一个矩形的盒子.这些盒子的 ...
- CSS之样式属性(背景固定、圆形头像、模态框)
CSS属性 一.宽和高 width属性可以为元素设置宽度. height属性可以为元素设置高度. 块级标签才能设置宽度,内联标签的宽度由内容来决定. div {width: 1000px;backgr ...
- overflow属性-摘自网友
关于我们 版权声明 网站地图 前端观察 专注于网站前端设计与前端开发 用IE6抢不到火车票的!!! Home 首页 CSS样式之美 Front News前端资讯 JavascriptAjax与JS技术 ...
随机推荐
- 如何通过cookie、session鉴权(nodejs/koa)
http是一种无状态的协议,每一个请求都是独立的,即使同一个页面向服务器发送多次请求,服务器也无法区分是不是同一用户,所以这个时候可以借助于cookie来做身份认证,当用户登录成功,服务器为浏览器设置 ...
- python将print的打印内容保存到日志
将python程序中的所有打印内容都输出到日志文件中,在程序执行完成后,方便查询程序运行过程是否出现异常. 1. 将打印内容输出到日志文件 1.1 代码实现: sys.stdout = open('s ...
- VScode软件的安装以及C/C++环境配置的方法
今天和大家分享一下VScode软件的安装以及C/C++环境配置的方法.手把手教大家入门. 1,下载VScode编译器 (1) 官网下载链接:https://code.visualstudio.c ...
- [ABC128E] Roadwork
2023-01-14 题目 题目传送门 翻译 翻译 难度&重要性(1~10):4 题目来源 AtCoder 题目算法 区间覆盖,线段树,双堆 解题思路 可以将问题转化为区间覆盖问题和单点查询问 ...
- GaussDB技术解读系列:高安全之密态等值
本文分享自华为云社区< DTCC 2023专家解读 | GaussDB技术解读系列:高安全之密态等值>,作者:GaussDB 数据库. 近日,在第14届中国数据库技术大会(DTCC2023 ...
- YShow性能测试平台搭建
ShowSlow安装 ShowSlow是一个YSlow性能数据收集平台,用于将收集的性能数据 ShowSlow是用php实现的,所以我们需要搭建一台服务器来接收YSlow数据 我搭建的环境是:ubun ...
- 从软件工程师角度聊聊 Kubernetes
作为软件工程师,我们应该熟悉 K8s,尽管它有点像 DevOps,但它能让我们更好地了解幕后发生的事情,让我们与部署工作更密切相关,更有责任感.本文将从软件工程师的角度探讨 Kubernetes (K ...
- Codeforces Round 882 div.2 A
Smiling&Weeping ----总有人间一两风,填我十万八千梦 A. The Man who became a God time limit per test 1 second mem ...
- 万字长文深度解读Java线程池,硬核源码分析
前言 本文将深入分析Java线程池的源码,包括线程池的创建.任务提交.工作线程的执行和线程池的关闭等过程.通过对线程池源码的解析,我们能够更好地理解线程池的原理和机制,为我们在实际开发中合理使用线程池 ...
- Linux 用户及用户组相关文件、命令详解
Linux 用户及用户组相关文件.命令详解 1. 用户.用户组概念及其文件结构详解 Linux用户只有两个等级:root及非root.Linux中还有一部分用户,如:apache.mysql.no ...