Bootstrap 4 Изменение размера изображения карты на мобильном устройстве - PullRequest
0 голосов
/ 05 мая 2020

Я работаю над адаптивным веб-приложением на Bootstrap 4 и использую карточки с изображениями на одной из страниц. Все работает нормально при любом изменении размера окна на рабочем столе; однако, когда я просматриваю их на мобильном устройстве, высота изображения карточки совершенно не соответствует размеру и примерно вдвое меньше, чем должна быть.

Вот HTML:

<div class="container">
 <header class="jumbotron">
     <div class="container">
         <h1>By The Numbers.</h1>
         <p>View our growing database:</p>
         <p>
            <a class="btn btn-primary btn-large" href="/players/new">Add New Player</a>
         </p>
         <p>
             <form action="/players" method="GET" class="form-inline">
                 <div class="form-group">
                     <input type="text" name="search" placeholder="Player Search..." class="form-control">
                     <input type="submit" value="Search" class="btn btn-default">
                 </div>
             </form>
         </p>
     </div>
 </header>
<div class="row text-center">
        <div class="col-lg-3 col-md-4 col-sm-6 mb-4">
            <div class="card">
                <img src="https://t3.ftcdn.net/jpg/02/12/43/28/240_F_212432820_Zf6CaVMwOXFIylDOEDqNqzURaYa7CHHc.jpg" id="playerCardImage" class="card-img-top" alt="Name">
                <div class="card-body">
                    <h5 class="card-title">Name</h5>
                    <h5 class="card-title">Detail</h5>
                    <a href="#" class="btn btn-primary">More Info</a>
                </div>
            </div>  
        </div>
</div>

Ниже CSS был добавлен, чтобы все карты оставались одинаковой высоты, но это, кажется, вызывает проблема, из-за которой изображение на мобильном устройстве становится очень маленьким.

CSS:

#playerCardImage {
width: 100%;
height: 15vh;
object-fit: cover;
}

Кодовое описание с примером карты можно найти здесь: https://codepen.io/franchise/pen/MWaoXOp.

Подробности:

  • Невозможно воспроизвести проблему размера с Chrome мобильным представлением Dev Tools, оно показывает только то, что я ожидал , как карта будет выглядеть на мобильном телефоне
  • Чтобы воссоздать проблему, просмотрите Codepen на мобильном устройстве, чтобы увидеть, что изображение примерно вдвое меньше, чем при просмотре Codepen на рабочем столе.

Что мне здесь не хватает? Заранее благодарим за помощь.

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Вместо создания стиля на основе id, можно попробовать создать стиль на основе класса card-img-top.

.card-img-top {
    width: 100%;
    height: 150px;
    object-fit: cover;
}
1 голос
/ 05 мая 2020

Вы должны использовать высоту в процентах

#playerCardImage {
    width: 100%;
    object-fit: cover;
  }


 @media all and (max-width:768px){
  #playerCardImage {
    width: 100%;
    height: 110px;
    object-fit: cover;
  }
 }
<!DOCTYPE html>
<html>
    <head>
        <title>Footer Pen</title>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        <!-- Bootstrap CSS -->
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous"> 
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css">
        <link rel="stylesheet" href="/stylesheets/main.css">
        <script src="https://kit.fontawesome.com/175e0bfa97.js" crossorigin="anonymous"></script>
  </head>
<body>
 <div class="container">
     <header class="jumbotron">
         <div class="container">
             <h1>By The Numbers.</h1>
             <p>View our growing database:</p>
             <p>
                <a class="btn btn-primary btn-large" href="/players/new">Add New Player</a>
             </p>
             <p>
                 <form action="/players" method="GET" class="form-inline">
                     <div class="form-group">
                         <input type="text" name="search" placeholder="Player Search..." class="form-control">
                         <input type="submit" value="Search" class="btn btn-default">
                     </div>
                 </form>
             </p>
         </div>
     </header>
    <div class="row text-center">
            <div class="col-lg-3 col-md-4 col-sm-6 mb-4">
                <div class="card">
                    <img src="https://t3.ftcdn.net/jpg/02/12/43/28/240_F_212432820_Zf6CaVMwOXFIylDOEDqNqzURaYa7CHHc.jpg" id="playerCardImage" class="card-img-top" alt="Name">
                    <div class="card-body">
                        <h5 class="card-title">Name</h5>
                        <h5 class="card-title">Detail</h5>
                        <a href="#" class="btn btn-primary">More Info</a>
                    </div>
                </div>  
            </div>
    </div>
</div>


         <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
    </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...