overflow(溢出)4个属性值,水平/垂直溢出,文字超出显示省略号的详解

news2024/9/20 3:32:07

你好,我是云桃桃。

一个希望帮助更多朋友快速入门 WEB 前端的程序媛。

云桃桃-大专生,一枚程序媛,感谢关注。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端工具”,可获取 Web 开发工具合集

279篇原创内容-更多前端系列内容可以go公众.h:云桃桃

后台回复“前端工具”可获取开发工具,持续更新中

后台回复“前端基础题”可得到前端基础100题汇总,持续更新中

后台回复“前端电子书”可获取20+本精选电子书

前言

CSS 的 overflow 属性用于控制元素内容溢出时的表现方式。当元素的内容超出其指定的尺寸范围时,就会出现溢出现象。比如,一个元素的高度设置是 80px,但内容高度不只是 80px,内容此时就叫做溢出了。

图片

而 overflow 属性则可以决定如何处理这种溢出情况,能让溢出部分,达到如下效果,。右侧出现了滚动条,可以查看所有内容了。

图片

那需要注意的是,overflow 属性生效的前提是需要设置元素的宽度和高度。如果没有明确设置宽度和高度,浏览器将会自动根据内容进行调整,此时 overflow 属性可能不会产生预期的效果。

ok,那我们一起来看看吧。

overflow 的 4 个属性值

1、visible:默认值,溢出内容会显示在元素框外,不会被剪切或隐藏。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      .box {
        background-color: #ddd;
        width: 300px;
        height: 80px;
        border: 1px dotted #333;
        font-size: 26px;
        overflow: visible;
      }
    </style>
  </head>
  <body>
    <div class="box">周杰伦(Jay Chou),1979年1月18日出生于台湾省新北市,祖籍福建省永春县,华语流行乐男歌手、音乐人、演员、导演、编剧,毕业于淡江中学。2000年,发行个人首张音乐专辑《Jay》 [26]。2001年,凭借专辑《范特西》奠定其融合中西方音乐的风格 [16]。2002年,举行“The One”世界巡回演唱会 [1]。2003年,成为美国《时代》杂志封面人物 [2];同年,发行音乐专辑《叶惠美》 [21],该专辑获得第15届台湾金曲奖最佳流行音乐演唱专辑奖 [23]。2004年,发行音乐专辑《七里香》 [29],该专辑在亚洲的首月销量达到300万张 [316];同年,获得世界音乐大奖中国区最畅销艺人奖 [320]。2005年,主演个人首部电影《头文字D》 [314],并凭借该片获得第25届香港电影金像奖和第42届台湾电影金马奖的最佳新演员奖 [3] [315]。2006年起,连续三年获得世界音乐大奖中国区最畅销艺人奖 [4]。</div>
  </body>
</html>

效果如下:

图片

2、hidden:溢出内容会被剪切或隐藏,不会显示在元素框外,但也不会提供滚动条。

还延续上个案例,把最后一行 css 改成overflow: hidden;

效果如下,内容被剪切隐藏了:

图片

3、scroll:如果内容溢出,会显示滚动条以便查看所有内容,即使溢出内容不可见。

把 css 改成overflow: scroll;

效果如下,展示了滚动条了:

图片

4、auto:根据内容是否溢出来决定是否显示滚动条,只有当内容有溢出情况发生时才会显示滚动条,不溢出不显示。

把 css 改成overflow: auto;

效果如下,因为内容多溢出了,所以展示滚动条了:

图片

overflow 的水平与垂直

有时候,我们也许不需要水平和垂直都有,而是垂直有,水平没有,或者水平没有,垂直有,怎么做呢?

overflow-x 和 overflow-y就是来解决这个问题的, 它们是用于控制元素在水平和垂直方向上溢出内容的属性。

  • overflow-x:用于控制元素在水平方向上溢出内容的显示方式。其属性值和上述overflow的 4 个属性值一样。

  • overflow-y:用于控制元素在垂直方向上溢出内容的显示方式。其属性值和上述overflow的 4 个属性值一样。

它们通常用于以下布局场景:导航栏/标签栏,数据表格,图片/图册,横向滚动的页面区域等。

来看代码,这个就是一个横向相册的案例:

<div class="container">
  <div class="content"><img src="img/header1.png" alt="" /> <img src="img/header1.png" alt="" /><img src="img/header1.png" alt="" /><img src="img/header1.png" alt="" /><img src="img/header1.png" alt="" /></div>
</div>
.container {
  width: 600px; /* 设置容器宽度 */
  height: 240px; /* 设置容器高度 */
  border: 1px solid #ccc;
  overflow-x: auto; /* 当内容溢出时显示滚动条 */
  overflow-y: hidden; /* 垂直方向上隐藏溢出内容 */
}

.content {
  width: 1200px; /* 设置内容宽度超出容器 */
  height: 150px; /* 设置内容高度 */
  padding: 10px; /* 设置内边距 */
}
.content img {
  margin-right: 10px;
}

效果如下:

图片

需要图片的可以在公众号回复overflow获取。

延伸:3个常见的使用场景

1、处理长文本溢出显示省略号

  • 场景:当文本内容超出容器宽度时,需要控制文本到一定宽度后,显示...省略号。比如网易云音乐的这样。

图片

  • 解决方案:通常使用 overflow: hidden;配合white-space text-overflow这三个属性一起实现文本超出显示省略号。

这种效果的代码如下:

<div class="txt-over">这个内容这么长这么长这么长这么长这么长这么长这么长这么长这么长这么长这么长这么长abcdef.</div>
.txt-over {
  width: 400px;
  white-space: nowrap; /* 防止文本换行 */
  overflow: hidden; /* 溢出部分隐藏 */
  text-overflow: ellipsis; /* 超出部分显示省略号 */
  border: 1px solid #ccc;
}

效果如下:

图片

2、图片溢出处理

  • 场景:当图片尺寸大于页面要求尺寸时,需要控制图片的显示的一种缺省方式。

  • 解决方案:可以根据情况使用 overflow: hidden;,将溢出的部分隐藏,以保持容器的视觉整洁。

.image-container {
  width: 300px; /* 容器宽度 */
  height: 200px; /* 容器高度 */
  overflow: hidden; /* 溢出部分隐藏 */
}

3、轮播图

  • 场景:在轮播图组件中,通常会有多张图片或内容进行轮播展示。比如,京东的圈的这块。

图片

  • 解决方案:需要结合 JavaScript 实现轮播功能,并使用 overflow: hidden; 控制容器显示范围,配合定位或动画实现图片切换效果。

.carousel-container {
  width: 100%; /* 容器宽度 */
  height: 300px; /* 容器高度 */
  overflow: hidden; /* 溢出部分隐藏 */
  position: relative; /* 相对定位,用于轮播图元素定位 */
}

根据具体需求和展示效果,选择合适的 overflow 属性值,可以有效控制元素的溢出内容,提升页面的视觉效果和用户体验。

ok,本文完。

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

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

相关文章

基于SpringBoot+Vue钢材销售管理系统的设计与实现

系统介绍 为了更好地发挥本系统的技术优势&#xff0c;根据钢材销售管理系统的需求&#xff0c;本文尝试以B/S经典设计模式中的Spring Boot框架&#xff0c;JAVA语言为基础&#xff0c;通过必要的编码处理、钢材销售管理系统整体框架、功能服务多样化和有效性的高级经验和技术…

[数据结构与算法]-什么是二叉树?

二叉树是一种数据结构&#xff0c;由节点组成&#xff0c;每个节点最多有两个子节点&#xff0c;分别称为左子节点和右子节点。二叉树的每个节点包含一个值&#xff0c;并且左子节点的值小于等于父节点的值&#xff0c;右子节点的值大于等于父节点的值。这个性质使得二叉树在搜…

论文辅助笔记:处理geolife数据

论文笔记&#xff1a;Context-aware multi-head self-attentional neural network model fornext location prediction-CSDN博客 对应命令行里 python preprocessing/geolife.py 20 这一句 1 读取geolife数据 pfs, _ read_geolife(config["raw_geolife"], print_…

文本生成任务的评价方法BLEU 和 ROUGE

BLEU 是 2002 年提出的&#xff0c;而 ROUGE 是 2003 年提出的。这两种指标虽然存在着一些问题&#xff0c;但是仍然是比较主流的评价指标。 BLUE BLEU 的全称是 Bilingual evaluation understudy&#xff0c;BLEU 的分数取值范围是 0&#xff5e;1&#xff0c;分数越接近1&a…

Mysql The last packet sent successfully to the server was 0 milliseconds ago.

项目启动后&#xff0c;报错&#xff0c;但是我的navicat 数据库连接工具是连接上的&#xff0c;没有问题的&#xff0c;但是程序就是连接不上。端口放开了&#xff0c;防火墙也放开了 先说问题&#xff1a;是网络问题&#xff0c; 如何解决&#xff1a;因为我的机子上又跑了…

思颜肌密:匠心独蕴,传世掠影

赋予延绵岁月以华彩乐章&#xff0c;将来自时间的承诺注入生活每分每秒&#xff0c;在思颜肌密的世界里&#xff0c;恒久之美并非遥不可及&#xff0c;它是艺术&#xff0c;亦是心意。华美节日翩然而至&#xff0c;思颜肌密拉开神秘帷幕&#xff0c;在惊鸿掠影中向世人展现传世…

IO实现方式(同步阻塞、同步非阻塞、IO多路复用)

1. 同步阻塞IO 同步阻塞io在数据在数据拷贝到两个阶段都是阻塞的&#xff0c;即把socket的数据拷贝到内核缓冲区和把内核缓冲区的数据拷贝到用户态到应用程序缓冲区都是阻塞的。用户线程在这个期间不能处理其他任务。 优点&#xff1a;简单易用 缺点&#xff1a;为每一次io请…

基于Springboot+Vue的Java项目-网上超市系统开发实战(附演示视频+源码+LW)

大家好&#xff01;我是程序员一帆&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &am…

腾讯后端一面:如果需要实现一个分布式锁,你该如何实现?

更多大厂面试内容可见 -> http://11come.cn 腾讯后端一面&#xff1a;如果需要实现一个分布式锁&#xff0c;你该如何实现&#xff1f; 分布式锁 如果让你来实现一个分布式锁&#xff0c;该如何实现&#xff1f; 实现分布式锁的话&#xff0c;肯定需要一个地方去存储锁的…

Python | Leetcode Python题解之第35题搜索插入位置

题目&#xff1a; 题解&#xff1a; class Solution:def searchInsert(self, nums: List[int], target: int) -> int:left, right 0, len(nums) #采用左闭右开区间[left,right)while left < right: # 右开所以不能有,区间不存在mid left (right - left)//2 # 防止溢出…

java线程-线程池

简介 工作原理 如何获取线程池对象 构造器的参数含义 注意事项 构造器-ThreadPoolExecutor // ArrayBlockingQueue 是一个有界的阻塞队列&#xff0c;它的内部实现是一个数组。有界的意思是它的容量是有限的&#xff0c;我们必须在创建 ArrayBlockingQueue 实例的时候指定容量…

IMUGNSS的误差状态卡尔曼滤波器(ESKF)---更新过程

IMU&GNSS的误差状态卡尔曼滤波器&#xff08;ESKF&#xff09;---更新过程 ESKF的更新过程 ESKF的更新过程 前面介绍的是ESKF的运动过程&#xff0c;现在考虑更新过程。假设一个抽象的传感器能够对状态变量产生观测&#xff0c;其观测方程为抽象的h,那么可以写为 其中z为…

科研基础与工具(论文搜索)

免责申明&#xff1a; 本文内容只是学习笔记&#xff0c;不代表个人观点&#xff0c;希望各位看官自行甄别 参考文献 科研基础与工具&#xff08;YouTube&#xff09; 搜索论文 Google Scholar 谷歌学术 涵盖面太全了&#xff0c;都收录&#xff0c;就会有很多低质量的论文…

NodeRed节点编辑用于边缘计算和规则引擎,能做带UI界面和业务逻辑的上位机或前端应用吗?

先说结论&#xff0c;可以&#xff0c;但是需要有页面嵌套继承类似的技术&#xff0c;实现页面模块化封装&#xff0c;否则难以实现复杂应用。 相信目光敏锐的人都在关注节点编辑在自身行业的应用&#xff01; NodeRed在边缘计算做数据协议解析、以及物联网平台中作为规则链引…

算法训练营day13

一、SlidingWindowMaximum(滑动窗口最大值) 前置题&#xff0c;155.最小栈 参考K神155. 最小栈 - 力扣&#xff08;LeetCode&#xff09; 做完最小栈的题能更好的理解这道题 鄙人想到了开辟空间来保存最小值&#xff0c;使用的HashMap&#xff1b;K神用的是栈逻辑优化 cla…

网盘_游戏_博客自动化部署(Nginx多项目部署)

目录 一.前提介绍 二.环境介绍 三.自述&#xff08;脚本&#xff09; 四.关于Nginx多项目部署 一.前提介绍 在我之前的博客里详细介绍了上述项目的部署&#xff0c;那么如何使用简单脚本自动部署和使用Nginx多项目部署是本文来介绍的基础篇章。 二.环境介绍 CentOS Linux…

吴恩达深度学习 (week5,6)

文章目录 一、训练开发测试集二、机器学习基础三、 正则化初步介绍四、Dropout 正则化五、其他正则化方法六、归一化输入介绍七、梯度消失与梯度爆炸八、神经网络的权重初始化九、梯度数值逼近和检验十、上述学习总结第一题 划分训练/开发/测试集第二题 开发和测试集分布第三题…

gradle安装和部署

准备工作 下载地址&#xff1a;https://gradle.org/releases/ 安装和配置环境变量 将压缩包解压到/usr/local/目录下 unzip gradle-8.7-bin.zip -d /usr/local/找到gradle的安装目录/usr/local/gradle-8.7 编辑/etc/vi /etc/profileprofile配置环境变量&#xff08;这是ce…

duke liver datasets数据处理

Duke liver datasets 如果大家是做医学图像处理的&#xff0c;刚好又是做肝脏那边的&#xff0c;对这个数据集应该不会陌生 我发现网上现有的资料很少有说怎么读取这个数据集的&#xff0c;由于我之前一直都是做的nii格式的数据集&#xff0c;现在碰到了dicom格式的数据集页研…

SQLite导出数据库至sql文件

SQLite是一款实现了自包含、无服务器、零配置、事务性SQL数据库引擎的软件库。SQLite是世界上部署最广泛的SQL数据库引擎。 SQLite 是非常小的&#xff0c;是轻量级的&#xff0c;完全配置时小于 400KiB&#xff0c;省略可选功能配置时小于250KiB。 SQLite 源代码不受版权限制。…