flex 布局 左侧固定右侧自适应 超出内容隐藏,并保证布局效果

效果图:

注意点:
当右侧设置文本超出隐藏后,会影响整体页面布局,只需为右侧添加min-width数据即可。

代码: 以下是代码

<template>
  <div class="main-view">
    <div class="left-view">这是左侧</div>
    <div class="right-view">
      <div class="text-overflow-ellipsis">{{ testData }}</div>
    </div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      testData: '这是测试文字,这是测试文字,这是测试文字,这是测试文字,这是测试文字,这是测试文字,这是测试文字,这是测试文字,这是测试文字,这是测试文字,这是测试文字,这是测试文字,这是测试文字,这是测试文字,这是测试文字,这是测试文字,这是测试文字,这是测试文字,这是测试文字,这是测试文字,这是测试文字,这是测试文字,这是测试文字,这是测试文字,这是测试文字,这是测试文字,'
    }
  }
}
</script>
<style lang="scss">
.main-view {
  width: 100%;
  height: 100vh;
  display: flex;
}
.left-view  {
  min-width: 100px;
  padding: 20px;
  width: 200px;
  height: 100%;
  background: skyblue;
}
.right-view {
  width: 100%;
  padding: 20px;
  flex-grow: 1;
  height: 100%;
  background: yellowgreen;
}
.text-overflow-ellipsis {
  overflow: hidden;
  text-overflow:ellipsis;
  white-space: nowrap;
}
</style>

 

### 回答1: 幕效果的实现方法是什么? 要实现左右滑动字幕效果,可以使用CSS3中的animation属性,结合@keyframes规则来完成。具体实现方法如下: 首先通过CSS定义一个外层容器,设置宽度、高度、overflow属性为hidden,以及position属性为relative,作为整个滑动字幕的框架。 .container { width: 100%; height: 50px; overflow: hidden; position: relative; } 然后在内部创建一个子元素,用于显示字幕内容。设置其为inline-block类型,宽度为100%,高度为50px,position属性为absolute,left属性为0。 .text { display: inline-block; width: 100%; height: 50px; position: absolute; left: 0; } 接着通过@keyframes定义动画效果,将text元素从左侧移出container容器,移动到右侧,再从右侧移动回来,形成循环效果。 @keyframes slide { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } } 最后将animation属性应用到.text元素上,设置动画名称为slide,动画时长为10秒(可以根据实际情况进行调整),动画函数为linear,动画延迟为2秒(也可以根据实际情况进行调整),重复播放次数为无限循环。 .text { animation: slide 10s linear 2s infinite; } 以上就是实现左右滑动字幕效果的CSS代码。 ### 回答2: 在CSS中,我们可以使用动画和过渡效果来定义左右滑动的字。下面是一种实现方式: 首先, 我们可以使用CSS动画来实现左右滑动字。通过@keyframes规则,我们可以定义动画的关键帧,从而实现左右滑动的效果。 ```html <style> @keyframes slide { 0% { transform: translateX(0); } 50% { transform: translateX(50%); } 100% { transform: translateX(0); } } .sliding-text { animation: slide 3s infinite; } </style> <div class="sliding-text">滑动字</div> ``` 在上面的代码中,我们定义了一个名为`slide`的动画。在0%和100%的关键帧中,`transform`属性设置为`translateX(0)`,表示元素不进行水平偏移。而在50%的关键帧中,`transform`属性设置为`translateX(50%)`,表示元素在水平方向上向右偏移50%的宽度。通过将这个动画应用于类名为`sliding-text`的元素,我们可以让这些元素在3秒内无限循环地进行左右滑动的效果。 另一种实现方式是使用CSS过渡效果。通过将元素的`left`属性和`transition`属性结合起来,我们可以实现元素的平滑移动。 ```html <style> .sliding-text { position: relative; left: 0; transition: left 3s ease-in-out infinite; } .sliding-text:hover { left: 50%; } </style> <div class="sliding-text">滑动字</div> ``` 在上面的代码中,我们将类名为`sliding-text`的元素的`position`属性设置为`relative`,以便在其正常位置的基础上进行偏移。初始情况下,我们将元素的`left`属性设置为0,表示元素不进行水平偏移。通过将元素的`transition`属性设置为`left 3s ease-in-out infinite`,我们可以让元素的`left`属性以3秒的时间,在缓入缓出的过渡效果下无限循环地从0到50%进行平滑移动。当鼠标悬停在元素上时,将元素的`left`属性设置为50%,从而让元素平滑地滑向右侧,实现左右滑动的效果。 以上两种方式都可以实现左右滑动字的效果,选择哪一种方式取决于具体的使用场景和需求。 ### 回答3: 要定义左右滑动字,可以使用CSS的动画特性和过渡属性来实现。具体步骤如下: 1. 首先,在CSS中创建一个类名为"slide"的样式规则。在这个规则中,给元素设置一个固定宽度,设置属性"white-space: nowrap;"将文字内容限制在一行显示,设置属性"overflow: hidden;"隐藏超出元素宽度的部分。 2. 使用动画特性,设置元素的初始位置为左边界之外,即X轴的负方向,使用属性"transform: translateX(-100%);"实现。 3. 接下来,使用过渡属性"transition",设置元素的过渡时间、过渡速度函数和延迟时间等属性。例如,设置"transition: transform 2s ease-in-out 0s;"表示过渡效果为2秒的持续时间,缓入缓出的速度,没有延迟时间。 4. 在类名为"slide"的样式规则中,使用伪类":hover"来设置鼠标悬停时的样式。设置属性"transform: translateX(0%);"表示将元素的位置移回原来的位置,即X轴的0点。 5. 最后,在HTML中使用该类名为"slide"的样式规则来应用于需要左右滑动的文字元素。 这样,当鼠标悬停在文字元素上时,文字将从左侧滑入显示,默认情况下文字是隐藏的;当鼠标移出文字元素时,文字将从右侧滑出隐藏。通过调整过渡属性的数值,可以改变滑动的速度和效果。 这是一个基本的实现思路,可以根据具体需求和效果进行进一步调整和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值