xtlc
xtlc

Reputation: 1378

vertical alignment inside div column with bootstrap 5

I assumed, that unlike when using table it should be easy to align content in a div vertically:

Edit: I want to align the first and the last columns and keep the others like they are.

<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="row bg-dark text-white">
  <div class="col-sm-2 align-items-center">align me vertically
  </div>
  <div class="col-sm-1">
    <div class="row text-center">
      <span class="text-center">1</span>
    </div>
    <div class="row">
      <img src="https://pngimg.com/uploads/futurama/futurama_PNG73.png" class="img-fluid">
    </div>
  </div>
  <div class="col-sm-2">
    <div class="row">
      <span class="text-center">2</span>
    </div>
    <div class="row">
      <img src="https://pngimg.com/uploads/futurama/futurama_PNG73.png" class="img-fluid">
    </div>
    <div class="row mb-1">
      some text could be here
    </div>
  </div>
  <div class="col-sm-1">
    <div class="row text-center">
      <span class="text-center">3</span>
    </div>
    <div class="row">
      <img src="https://pngimg.com/uploads/futurama/futurama_PNG73.png" class="img-fluid">
    </div>
  </div>
  <div class="col-sm-1">
    <div class="row text-center">
      <span class="text-center">4</span>
    </div>
    <div class="row">
      <img src="https://pngimg.com/uploads/futurama/futurama_PNG73.png" class="img-fluid">
    </div>
  </div>
  <div class="col-sm-1">
    <div class="row text-center">
      <span class="text-center">5</span>
    </div>
    <div class="row">
      <img src="https://pngimg.com/uploads/futurama/futurama_PNG73.png" class="img-fluid">
    </div>
  </div>
  <div class="col-sm-1">
    <div class="row text-center">
      <span class="text-center">6</span>
    </div>
    <div class="row">
      <img src="https://pngimg.com/uploads/futurama/futurama_PNG73.png" class="img-fluid">
    </div>
  </div>
  <div class="col-sm-1">
    <div class="row text-center">
      <span class="text-center">7</span>
    </div>
    <div class="row">
      <img src="https://pngimg.com/uploads/futurama/futurama_PNG73.png" class="img-fluid">
    </div>
  </div>
  <div class="col-sm-1">
    <div class="row text-center">
      <span class="text-center">8</span>
    </div>
    <div class="row">
      <img src="https://pngimg.com/uploads/futurama/futurama_PNG73.png" class="img-fluid">
    </div>
  </div>
  <div class="col-sm-1 text-end align-middle">
    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="red" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <circle cx="12" cy="12" r="10"></circle>
            <line x1="15" y1="9" x2="9" y2="15"></line>
            <line x1="9" y1="9" x2="15" y2="15"></line>
        </svg>
  </div>
</div>

How can I align the text and the svg vertically?

Upvotes: 0

Views: 1212

Answers (2)

Rok Benko
Rok Benko

Reputation: 23138

Here you go...

#align-text-end {
  width: 100%;
}
<!DOCTYPE html>
<html lang='en'>

<head>

  <meta charset='UTF-8'>
  <meta http-equiv='X-UA-Compatible' content='IE=edge'>
  <meta name='viewport' content='width=device-width, initial-scale=1.0'>
  <title>Document</title>
  <link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css' integrity='sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU' crossorigin='anonymous'>
  <script src='https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js' integrity='sha384-skAcpIdS7UcVUC05LJ9Dxay8AXcDYfBJqt1CJ85S/CFujBsIzCIv+l9liuYLaMQ/' crossorigin='anonymous'></script>

</head>

<body>

  <div class="row bg-dark text-white">
    <div class="col-sm-2 d-flex align-items-center">align me vertically
    </div>
    <div class="col-sm-1">
      <div class="row text-center">
        <span class="text-center">1</span>
      </div>
      <div class="row">
        <img src="https://pngimg.com/uploads/futurama/futurama_PNG73.png" class="img-fluid">
      </div>
    </div>
    <div class="col-sm-2">
      <div class="row">
        <span class="text-center">2</span>
      </div>
      <div class="row">
        <img src="https://pngimg.com/uploads/futurama/futurama_PNG73.png" class="img-fluid">
      </div>
      <div class="row mb-1">
        some text could be here
      </div>
    </div>
    <div class="col-sm-1">
      <div class="row text-center">
        <span class="text-center">3</span>
      </div>
      <div class="row">
        <img src="https://pngimg.com/uploads/futurama/futurama_PNG73.png" class="img-fluid">
      </div>
    </div>
    <div class="col-sm-1">
      <div class="row text-center">
        <span class="text-center">4</span>
      </div>
      <div class="row">
        <img src="https://pngimg.com/uploads/futurama/futurama_PNG73.png" class="img-fluid">
      </div>
    </div>
    <div class="col-sm-1">
      <div class="row text-center">
        <span class="text-center">5</span>
      </div>
      <div class="row">
        <img src="https://pngimg.com/uploads/futurama/futurama_PNG73.png" class="img-fluid">
      </div>
    </div>
    <div class="col-sm-1">
      <div class="row text-center">
        <span class="text-center">6</span>
      </div>
      <div class="row">
        <img src="https://pngimg.com/uploads/futurama/futurama_PNG73.png" class="img-fluid">
      </div>
    </div>
    <div class="col-sm-1">
      <div class="row text-center">
        <span class="text-center">7</span>
      </div>
      <div class="row">
        <img src="https://pngimg.com/uploads/futurama/futurama_PNG73.png" class="img-fluid">
      </div>
    </div>
    <div class="col-sm-1">
      <div class="row text-center">
        <span class="text-center">8</span>
      </div>
      <div class="row">
        <img src="https://pngimg.com/uploads/futurama/futurama_PNG73.png" class="img-fluid">
      </div>
    </div>
    <div class="col-sm-1 d-flex align-items-center">
      <div class='text-end' id='align-text-end'>
        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="red" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
          <circle cx="12" cy="12" r="10"></circle>
          <line x1="15" y1="9" x2="9" y2="15"></line>
          <line x1="9" y1="9" x2="15" y2="15"></line>
        </svg>
      </div>
    </div>
  </div>

</body>

</html>

Upvotes: 1

Michael
Michael

Reputation: 61

Change your div with the align-middle to align-items-center.

Upvotes: 0

Related Questions