Input group not displaying correctly on smaller screen size

Issue

So I was trying to make a shopping cart page based on this design Reference
and it worked on a normal screen size Normal screen. But on smaller screen sizes (Iphone SE specifically) the quantity menu turned into this Smaller screen.
How do I shrink it to fit?

Code:

<ion-view>
  <ion-content>
    <h1 class="text-center">Cart</h1>
    <div class="container">
      <div class="row text-center">
        <div class="col-6">Tất cả</div>
        <div class="col-6">Đã mua</div>
      </div>
    </div>
    <div class="container-fluid">
      <div class="row">
        <div class="col-2 input-group text-center">
          <input type="checkbox" class="form-check-input margin-auto" />
        </div>
        <div class="col-3 text-center">
          <img
            src="scripts\cart\placeholder.png"
            class="img-fluid"
            style="height: fit-content; width: fit-content"
            alt=""
          />
        </div>
        <div class="col-7">
          <div class="row">
            <div class="col-8">
              <div class="row">
                <p>Tên dòng xe</p>
              </div>
              <div class="row">
                <p>Phân loại: Màu sắc</p>
              </div>
              <label for="price" class="">Giá tiền</label>
              <div class="row">
                <div
                  class="input-group-append mw-50"
                  style="width: 20px; height: max-content"
                >
                  <button class="btn btn-primary">-</button>
                  <input
                    type="text"
                    class="form-control text-center"
                    placeholder="1"
                  />
                  <button class="btn btn-primary">+</button>
                  <span class="input-group-text">81 sản phẩm có sẵn</span>
                </div>
              </div>
            </div>
            <div class="col-4">
              <img src="scripts\cart\trashbin.png" width="50" alt="" />
            </div>
          </div>
        </div>
      </div>
    </div>
  </ion-content>
</ion-view>

At first the page looked like this Non append.
Then I added append to the quantity menu but it didn’t work

Solution

There are several ways to fix the issue, I will goes with d-flex as follow,

<div class="d-flex flex-wrap">
  <div class="d-flex" style="max-width: 110px;">
    <button class="btn btn-primary">-</button>
    <input type="text" class="form-control text-center" placeholder="1" />
    <button class="btn btn-primary">+</button>
  </div>

  <div>
    <span class="input-group-text">81 sản phẩm có sẵn</span>
  </div>
</div>

The concept is

  1. use a main d-flex flex-wrap parent container so that input-group-text will goes to bottom when it does not fit into the container
  2. use a d-flex inner container with a max-width to wrap the (+/-) buttons and number input

Full flex behaviors is over here

Hope it helps and Happy Coding !

<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">

<div class="card m-3">
  <h1 class="text-center">Cart</h1>
  <div class="container">
    <div class="row text-center">
      <div class="col-6">Tất cả</div>
      <div class="col-6">Đã mua</div>
    </div>
  </div>
  <div class="container-fluid">
  
    <div class="card">
    
    <div class="row">
      <div class="col-2 _input-group text-center">
        <input type="checkbox" class="form-check-input margin-auto" />
      </div>
      <div class="col-3 text-center">
        <img
          src="scripts\cart\placeholder.png"
          class="img-fluid border"
          style="height: fit-content; width: fit-content"
          alt=""
        />
      </div>
      <div class="col-7">
        <div class="row">
          <div class="col-8">
            <div class="row">
              <p>Tên dòng xe</p>
            </div>
            <div class="row">
              <p>Phân loại: Màu sắc</p>
            </div>
            
            <label for="price" class="">Giá tiền</label>
            
            <div class="d-flex flex-wrap">
              <div 
                class="d-flex"
                style="max-width: 120px;"
              >
                <button class="btn btn-primary">-</button>
                <input
                  type="text"
                  class="form-control text-center"
                  placeholder="1"
                />
                <button class="btn btn-primary">+</button>
              </div>

              <div>
                <span class="input-group-text">81 sản phẩm có sẵn</span>
              </div>
            </div>
            
          </div>
          <div class="col-4">
            <img 
              src="scripts\cart\trashbin.png" 
              width="50" 
              alt="" 
              class="border" 
              style="width: 20px; height: 20px" 
            />
          </div>
        </div>
      </div>
    </div>
    
    </div>
    
  </div>
</div>

Answered By – Zeikman

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published