实现div内部文字,一旦超出div的范围,就不显示,并且超出的用"..."显示

本文介绍如何在网页布局中实现文本的自动截断及省略号显示,包括纯CSS方法、JavaScript方法及input标签模拟方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当内部不足以填充满整个div的时候,文字内容以居中显示,当内超出范围就截断,多出的部分并以.。。。来代替。

方法1:只用CSS样式进行控制,但是找个方法的兼容性不知道怎么样,反正在火狐11上是成功了!上代码

<div id="gaoshi1" style="WORD-WRAP: break-word">

只写整个是不行的,效果应该就是截断,记住div一定要设定width和hight;

最后要和overflow和text-overFflow:属性一起使用:

<div align="center" style="text-overflow:ellipsis;overflow:hidden;width:90px;height: 15px"><s:property value='fileName' />wwww</div>

方法2:

直接上js解决问题,这个不用考虑兼容问题,但是在页面保存的也不完整内容,所以也有弊端,要是也要使用的话,就麻烦了!

<script>
function csubstr(str,len){
 if(str.length>10){
  return str.substring(0,len)+"...";
 }else{
  return str;
 }
}
</script>

<div ><script>document.write(csubstr("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",10));</script></div>

方法3:使用input标签模拟,但是也有问题!

<input type="text" value="<s:property value='fileName' />" readonly="readonly" size="13"/>

就是不能使,多出来的的代码以...的形式显示,要是必须用的话,还需要加js进行辅助,将readonly设置成readonly,大小设置成13

### HTML/CSS 中处理超出 `div` 内容的显示方法 在 HTML 和 CSS 开发中,当需要处理超出容器的内容时,通常会采用隐藏多余内容并用省略号替代的方式。以下是几种常见的实现方式: #### 1. **单行文本超出隐藏** 对于单行文本的情况,可以通过以下样式来实现超出部分隐藏并显示省略号的效果。 ```css .single-line { width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } ``` 此代码片段通过设置 `white-space: nowrap` 来防止文本换行,并利用 `overflow: hidden` 隐藏多余的文本[^2]。最后,`text-overflow: ellipsis` 将超出部分替换为省略号。 --- #### 2. **多行文本超出隐藏** 如果目标是让多行文本在指定行数后隐藏并显示省略号,则可以使用 `-webkit-line-clamp` 属性配合其他样式属性完成。 ```css .multi-line { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; /* 控制最大显示几行 */ overflow: hidden; text-overflow: ellipsis; } ``` 在此方案中,`display: -webkit-box` 和 `-webkit-box-orient: vertical` 是关键属性组合,用于创建垂直方向上的弹性盒模型[^3]。而 `-webkit-line-clamp` 则定义了允许的最大行数。 需要注意的是,`-webkit-line-clamp` 的兼容性主要集中在 WebKit 渲染引擎支持的浏览器上(如 Chrome、Safari)。对于完全支持该特性的环境,可能需要额外考虑回退策略。 --- #### 3. **通用解决方案** 无论是单行还是多行情况,都可以基于相同的原理构建基础样式模板。下面是一个综合示例: ```html <div class="example"> 这是一段测试文字,它可能会超出设定的宽度或者高度限制。 </div> ``` ```css .example { width: 200px; /* 容器宽度 */ height: 60px; /* 如果限定高度则可直接设高 */ overflow: hidden; text-overflow: ellipsis; /* 单行模式 */ white-space: nowrap; /* 多行模式 (取消上面的 single-line 特性) */ display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; /* 自定义行数 */ } ``` 以上代码展示了如何灵活切换单行或多行模式下的省略号效果[^4]。 --- #### 4. **注意事项** - 对于某些特殊场景(例如动态调整字体大小),建议结合 JavaScript 动态计算实际所需空间以确保布局一致性。 - 当前主流浏览器对 `-webkit-line-clamp` 支持良好,但在 IE/Edge 较旧版本可能存在局限性,因此开发过程中应评估项目需求决定是否引入 polyfill 或备用方案。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值