flex模式文字溢出问题

方案1:问题:使用flex布局,左边自适应,右边固定 

左边的文字太长了,需求是显示一行,超长显示… 

一般做法:

text-overflow: ellipsis; 
overflow: hidden; 
white-space: nowrap; 
但是这个做法的前提是固定宽度,比如width:200px

现在左边是自适应,使用的方法是父元素加上:max-width: calc(100% - 120px);

然后给它本身增加一个width:100% 

方案2:

<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0">

<div class="main">
    <div class="content">
        <h4 class="name">a namea namea namea namea</h4>
    </div>
    <div class="content">
         <h4 class="name">b namea namea namea namea </h4>
    </div>
    <div class="content">
         <h4 class="name">c namea</h4>
    </div>
</div>

<style type="text/css">
.main {
    display: flex;
}
.content {
    overflow: hidden;  /*也可以用 width:0 代替*/
    flex: 1;   /*关于flex的属性值请看官网,这里相当于 flex-grow */
    border:1px solid red;
}
.name {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
</style>

以上的盒子都是固定的长度,如果你想设置不同的长度,就分开改各自的flex属性即可。

<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0">

<div class="main">
    <div class="long">
        <h4 class="name">a namea namea namea namea</h4>
    </div>
    <div class="short">
         <h4 class="name">b namea namea namea namea </h4>
    </div>
    <div class="short">
         <h4 class="name">c namea</h4>
    </div>
</div>

<style type="text/css">
.main {
    display: flex;
}
.long {
    overflow: hidden;
    flex: 2;  //这里控制长度
    border:1px solid red;
}
.short {
    overflow: hidden;
    flex: 1;
    border:1px solid red;
}
.name {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值