CSS问题,这种怎么做到?

image.png,文字前面跟着已到期或者即将到期,但是这段文字是右对齐,且以最长文本的长度作为整个盒子的宽度,并设置背景色。

阅读 1.5k
3 个回答
<div class="container">
    <span class="text">文本1</span>
    <span class="label red-bg">已到期</span>
</div>

<div class="container">
    <span class="text">文本2</span>
    <span class="label orange-bg">即将到期</span>
</div>
.container {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    margin-bottom: 10px;
}

.label {
    padding: 5px;
    margin-left: 10px;
}

.red-bg {
    background-color: red;
}

.orange-bg {
    background-color: orange;
}

.text {
    white-space: nowrap;
}

可以使用table进行布局,第一列文字右对齐,背景设置颜色

补充一个解决方案: 可以用 inline-flex-column 作为容器

<body>
  <style>
  .box1,
  .box2 {
    display: inline-flex;
    flex-direction: column;
  }

  .box1-1 {
    text-align: right;
    color: white;
  }
  </style>
  <div class="box1">
    <div class="box1-1" style="background-color: blue;">已到期</div>
    <div class="box1-1" style="background-color: red;">即将到期</div>
  </div>
  <div class="box2">
    <div>测试1</div>
    <div>测试2</div>
  </div>
</body>

效果图

image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题