div里面的内容超出自身高度时,显示省略号

1.给DIV设置属性:width: 200px; text-overflow: ellipsis; overflow: hidden; 当div里面的内容总宽度找过 200PX的时候,超出的部分会以“...”的形式显示。


2.上面那个案例之适用于单行文本的现实,才会有效。但当div里面的内容出现多行的时候则不能达到预期的效果。下面是解决多行的时候显示“...”的方案。



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
    <script type="text/javascript">
    $(function () {
        $(".figcaption").each(function (i) {
            var divH = $(this).height();
            var $p = $("p", $(this)).eq(0);
            while ($p.outerHeight() > divH) {
                $p.text($p.text().replace(/(\s)*([a-zA-Z0-9]+|\W)(\.\.\.)?$/, "..."));
            };
        });
        });
    </script>
    <style>
        .figcaption
        {
            background: #EEE;
            width: 410px;
            height: 3em;
            margin: 1em;
        }
        .figcaption p
        {
            margin: 0;
            line-height: 1.5em;
        }
    </style>
</head>
<body>
    <div class="figcaption">
        <p>
            You probably can't do it (currently?) without a fixed-width font like Courier. With
            a fixed-width font every letter occupies the same horizontal space, so you could
            probably count the letters and multiply the result with the current font size in
            ems or exs. Then you would just have to test how many letters fit on one line, and
            then break it up.</p>
    </div>
</body>
</html>



在 Vue 中实现文本超出字数显示省略号,可以使用 CSS 的 `text-overflow: ellipsis` 属性。具体步骤如下: 1. 在 CSS 中设置需要显示省略号的元素的样式: ```css .text-ellipsis { white-space: nowrap; /* 不换行 */ overflow: hidden; /* 超出部分隐藏 */ text-overflow: ellipsis; /* 显示省略号 */ } ``` 2. 在 Vue 模板中使用 `v-bind:class` 绑定样式类,并设置 `title` 属性为完整文本: ```html <p v-bind:class="{ 'text-ellipsis': isOverflow }" title="完整文本">{{ text }}</p> ``` 其中,`isOverflow` 是一个计算属性,用于判断文本是否超出,`text` 是需要显示的文本。 3. 在计算属性中计算文本是否超出: ```javascript computed: { isOverflow() { const el = this.$el.querySelector('.text-ellipsis'); return el ? el.offsetWidth < el.scrollWidth : false; } } ``` 使用 `querySelector` 获取元素,然后判断元素的实际宽度是否大于容器的宽度,如果大于就返回 `true`,否则返回 `false`。如果获取不到元素,就返回 `false`。 完整代码示例: ```html <template> <div> <p v-bind:class="{ 'text-ellipsis': isOverflow }" title="完整文本">{{ text }}</p> </div> </template> <script> export default { data() { return { text: '这是一段很长很长很长的文本,超过了容器宽度' }; }, computed: { isOverflow() { const el = this.$el.querySelector('.text-ellipsis'); return el ? el.offsetWidth < el.scrollWidth : false; } } }; </script> <style> .text-ellipsis { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 100px; border: 1px solid #ccc; } </style> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值