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

本文阐述了如何利用CSSoverflow属性处理元素内容溢出,包括四种模式:visible、hidden、scroll和auto,并举例说明了在文本省略、图片管理和轮播图中的应用。
摘要由CSDN通过智能技术生成

你好,我是云桃桃。

一个希望帮助更多朋友快速入门 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,本文完。

  • 27
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 你可以使用 CSS 属性 `text-overflow: ellipsis` 来实现超出显示省略号的效果。 首先,需要设置元素的宽度和 `overflow: hidden`,然后再使用 `text-overflow: ellipsis` 来指定省略号的样式。 例如,下面的 CSS 代码可以让一个宽度为 200px 的 div 元素超出内容显示省略号: ```css div { width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; /* 禁止换行 */ } ``` 注意,这种方式只适用于单行文本,如果需要处理多行文本,可以考虑使用 JavaScript 或其他库来实现。 ### 回答2: 在CSS中,可以通过使用text-overflow属性来控制文字超出时的显示效果。其中,常用的属性是ellipsis(省略号)。 要实现文字超出显示省略号,首先需要将文本容器的宽度设定为一个固定或一个相对(如百分比)。接着,对文本容器设置overflow属性为hidden,这样当文本内容超出容器宽度时,会自动隐藏超出的部分。 然后,使用text-overflow属性超出部分的文本内容进行省略显示。为了使省略号显示在文本内容的末尾,还需将white-space属性设置为nowrap,使文本不换行。 最后,设置文本容器的display为块级元素(display: block)或行内块级元素(display: inline-block),以确保text-overflow属性生效。 以下是实现的示例代码: HTML: <div class="text-container"> 这是一段超出显示省略号的文本内容。 </div> CSS: .text-container { width: 200px; /* 设置文本容器的宽度 */ overflow: hidden; /* 超出部分隐藏 */ white-space: nowrap; /* 文本不换行 */ text-overflow: ellipsis; /* 超出部分显示省略号 */ display: block; /* 或 inline-block,确保text-overflow生效 */ } 使用以上CSS代码,当文本内容超出容器宽度时,会自动隐藏超出的部分并在末尾显示省略号,从而实现文本超出显示省略号的效果。 ### 回答3: 在CSS中,如果要实现文字超出显示省略号的效果,可以通过以下方法进行设置。 首先,需要设置元素的宽度和文本溢出控制属性。使用CSS的`width`属性来设置元素的宽度,例如`width: 200px;`。然后,使用`white-space`属性来控制文本的溢出方式,将其设置为`nowrap`,表示文本不换行,例如`white-space: nowrap;`。 接下来,需要使用`text-overflow`属性显示省略号。将其设置为`ellipsis`,表示使用省略号来表示文本的截断,例如`text-overflow: ellipsis;`。 另外,还需要设置`overflow`属性来指定当文本溢出时的处理方式。可以将其设置为`hidden`,表示隐藏超出元素宽度的部分,例如`overflow: hidden;`。 最后,为了兼容不同浏览器,还可以添加`-webkit`或`-moz`前缀来设置相应浏览器的样式,例如`-webkit-text-overflow: ellipsis;`。 综上所述,通过设置元素的宽度、文本溢出控制属性省略号显示方式等样式,就可以实现CSS文字超出显示省略号的效果了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值