flex自适应宽度显示省略号

text-overflow:ellipsis文本溢出显示省略号,一般的搭配用法如下:

div{
  text-overflow:ellipsis;
  overflow:hidden;
  white-space: nowrap;
 }

而想要在一定宽度内显示省略号,必须还有一个固定的宽度,否则元素宽度会扩展至父级元素的宽度。但前不久碰到一个问题,希望实现如下布局:

希望左边的图片宽度固定,右边宽度自适应,内容部分溢出显示省略号。于是出现了难题:宽度需要自适应,但自适应就无法显示省略号。首先,我们简单看一下不考虑这个困难,我们一般会怎么写:

<div id="wrap">
    <img alt="" id="left" src="img1.jpg">
    <div id="right">
        <p class="name">昵称</p>
        <p class="content">内容显示省略号内容显示省略号内容显示省略号内容显示省略号内容显示省略号内容显示省略号内容显示省略号内容显示省略号内容显示省略号内容显示省略号内容显示省略号内容显示省略号内容显示省略号内容显示省略号内容显示省略号内容显示省略号内容显示省略号内容显示省略号</p>
    </div>
</div>
#wrap {
    display: flex;
    border: 1px solid black;

}
#left {
    width: 100px;
    height: 100px;
    margin: 10px;
    border: 1px solid #ccc;
}
#right {
    flex: 1;
    background: yellow;
}
.content  {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    background: red;
}

这时候表现如下:

(设置了背景色,以便更好的区分元素)

显然,由于.content设置了white-space: nowrap;,因此内容就将父元素#right撑开,溢出了#wrap。停一下,想一想既然溢出是因为#right被撑开了,那给#right(即.content的父元素)设置overflow:hidden就可以防止.content将#right撑开,应该就能达到效果。试一下,果然达到了预期效果:

在网上查了一下,还可以给#right设置width:0(或者一个较小的宽度),也可以达到同样是效果。不过原因暂时还没弄清楚,待弄清楚原因再更新。

时间: 2024-10-24 05:46:46

flex自适应宽度显示省略号的相关文章

标签内显示文字超过行宽度显示省略号

在table中或者一些特殊的需求情况下,需要展示部分文字并在title中显示全部信息,例如一个简短的说明如果超过15个字就显示省略号 以前自己做的时候都是通过js或者razor语法来实现,但是这样却有一个缺陷,不能自适应页面或者说屏幕的分辨率.当屏幕分辨率改变时,页面就会变形了. 这里给出一个解决方案,采用css技术来实现相应的功能. 页面代码如下: <td> <a class="textbox" title="@(item.Note == null ? &

CSS控制文本超出指定宽度显示省略号和文本不换行

一般的文字截断(适用于内联与块): .text-overflow { display:block;/*内联对象需加 */ width:31em;/* 何问起 hovertree.com */ word-break:keep-all;/* 不换行 */ white-space:nowrap;/* 不换行 */ overflow:hidden;/* 内容超出宽度时隐藏超出部分的内容 */ text-overflow:ellipsis;/* 当对象内文本溢出时显示省略标记(...) :需与overfl

文本超过宽度显示省略号

文本超过宽度,以省略号显示有2种, 第一种单行不换行 <style> .text1 { width:200px; overflow:hidden; text-overflow:ellipsis; -o-text-overflow:ellipsis; -webkit-text-overflow:ellipsis; -moz-text-overflow:ellipsis; white-space:nowrap; } </style> 第二种2行或者2行以上的文本要在结尾省略号超出部分

关于文字单行显示省略号和多行省略号的写法

CSS里的text-overflow属性能用来控制超长溢出的文字内容的显示方式,超出的文字可以是直接截断.用省略号表示,或用自定义的字符替代. 单行文字显示省略号条件: text-overflow的起作用环境是在一个‘block’状态下的父元素容器里,它的inline子元素上水平方向不能换行(即white-space: nowrap;),这种情况下用text-overflow:ellipsis属性,即可将单行文字超出规定宽度显示省略号. p { white-space: nowrap; widt

css如何让自适应宽度的块居中显示

<div class='footer'> <ul> <li>网站首页</li> <li>企业招聘</li> <li>联系我们</li> <li>讲师招聘</li> </ul> </div> .footer{ width: 100%; height: 100px; background: black; position: fixed; bottom: 0; text

css判断不同分辨率显示不同宽度布局实现自适应宽度

一.CSS DIV网页布局中当分辨率小于等于1024px(像素)时,DIV布局对象显示1000px宽度,当分辨率大于1024px时候显示1200px宽度等需求.使用CSS实现改变浏览器显示宽度从而实现布局的网页宽度动态改变变化(网页宽度自动随浏览器显示宽度而变宽变窄).随着发展,越来越多的电脑用户显示屏分辨率越来越高,但有的用户还是使用1024px的分辨率的显示屏(根据几个浏览器分辨率统计平台得到数据现在使用1200分辨率以下用户极少,但我们CSS布局时仍然需要至少考虑1024px分辨率用户),

从三栏自适应宽度布局到css布局的讨论

如何实现一个三栏自适应布局,左右各100px,中间随着浏览器宽度自适应? 第一个想到的是使用table布局,设置table的宽度为100%,三个td,第1个和第3个固定宽度为100px,那么中间那个就会自适应了,下面是一个实时的demo: left  middle  right  但是table布局是不推荐的,table布局是css流行之前使用的布局,有很多缺点:当table加载完之前,整个table的都是空白的,table将数据和排版参和在一起,使得页面混乱,并且table布局修改排版十分麻烦

单行文本和多行文本溢出显示省略号

1.单行文本 overflow: hidden; white-space: nowrap; //用于处理元素内的空白,只在一行内显示 text-overflow: ellipsis; //超过宽度使用省略号 2.多行文本 word-break: break-all; text-overflow: ellipsis; display: -webkit-box; //对象作为伸缩盒子模型显示          -webkit-box-orient: vertical; //设置或检索伸缩盒对象的子元

解决Button在IE6、7下的自适应宽度问题

很早就遇到过这么个小问题,但由于其并未影响到实际作用和美观就没有正面解决它,现在,我们来试着解决它. 写一个Button,有两种方式:其一,直接button标签:其二,input type=”button”. 不管哪种方式,Button的宽度在IE6.7下总是不能完美,接下来我们演示一个普通的Button,你可以用IE6或者IE7浏览器看看其显示宽度,然后对比Chrome或者IE8等浏览器,你会发现Bug的所在. 1.一个普通的Button: 可以很直接的看到Button的两边有空隙,当然,这个