1

@michael-benjamin Center and right align flexbox elements almost what I want, but with 2 differences:

  1. Div have to take empty space at left side too (when it be wide)
  2. Div have to collapse text when there is no empty space around at all.

What I have?

enter image description here

A is main centered object and BBBBBBBBBBBBBBB is right object.

This is fine till A will grow:

enter image description here

What I want?

enter image description here

Is it possible to do with flex/grid/table-tr-td/any other css tricks?

What I tried?

  1. CSS Positioning Properties - can't stop when grow to B
  2. Flex Auto Margins & Invisible Flex Item (DOM element) - invisible item don't give empty space at left side
  3. CSS Grid Layout - 1fr don't give empty space at left side
Temani Afif
  • 245,468
  • 26
  • 309
  • 415
mixalbl4
  • 3,507
  • 1
  • 30
  • 44

1 Answers1

1

CSS grid can do it like below:

.container {
  margin: 10px;
  display: grid;
  grid-template-columns: 1fr minmax(0,max-content) 1fr;
  color: #fff;
}
.container::before {
  content:"";
}

.b {
  margin-left: auto;
  background: grey;
}

.a {
  margin: auto;
  background: blue;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
}



body {
  background:linear-gradient(red,red) center/ 2px 100% no-repeat;
}
<div class="container">
  <div class="a">AA</div>
  <div class="b">BBBBBBBBBBBBBBBB</div>
</div>

<div class="container">
  <div class="a">AA</div>
  <div class="b">BBBBBBBBBBBBBBBB</div>
</div>

<div class="container">
  <div class="a">AAAAAAAAAAAAAA</div>
  <div class="b">BBBBBBBBBBBBBBBB</div>
</div>

<div class="container">
  <div class="a">AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</div>
  <div class="b">BBBBBBBBBBBBBBBB</div>
</div>

<div class="container">
  <div class="a">AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</div>
  <div class="b">BBBBBBBBBBBBBBBB</div>
</div>
Temani Afif
  • 245,468
  • 26
  • 309
  • 415