Felhasználói eszközök

Eszközök a webhelyen


oktatas:web:reszponziv

Ez a dokumentum egy előző változata!


< Web

Reszponzív

Bevezetés

Hogyan tegyük reszponzívvá az olyan adatokat, amelyeket általában táblázatban vagy táblázatszerűen jelenítünk meg?

Táblázat celláinak tördelése

Az egyik lehetőség, ha maradunk a táblázatnál, de a táblázat részeit block típusúvá alakítjuk.

A lényeg:

style.css
@media screen and (max-width: 600px) {
 
  table, thead, tbody, th, td, tr {
    display: block;
  }
 
}

600 pixel alatt a táblázat részeinek display értéke legyen block típus.

De így nem látszanak a határok és a táblázat fejléce is felesleges. Tegyünk még néhány kiegészítést.

style.css
@media screen and (max-width: 600px) {
 
  table, thead, tbody, th, td, tr {
    display: block;
  }
 
  td {
    text-align: left;
    border: 1px solid #ddd;
    padding: 8px;
  }
 
  thead tr {
    display: none;
  }
 
  tbody tr {
    margin-bottom: 8px;
  }
 
}

Mezők feliratozása

Ha szeretnénk a tördelt mezők számára mezőneveket megjeleníteni adjunk minden cellához egy data-column mezőt a megfelelő mezőnévvel.

<tbody>
  <tr>
    <td data-column="Név">Arany Ernő</td>
    <td data-column="Település">Szeged</td>
    <td data-column="Fizetés">397</td>
  </tr>
  <tr>
    <td data-column="Név">Taba Mária</td>
    <td data-column="Település">Pécs</td>
    <td data-column="Fizetés">395</td>
  </tr>
</tbody>

A feliratok megjelenítése ezek után:

@media screen and (max-width: 600px) {
 
  /* ... */
  td:before {
    content: attr(data-column);
    float: left;
    font-weight: bold;
  }
 
}

Szebb tördelés

@media screen and (max-width: 600px) {
 
  table, thead, tbody, th, td, tr {
    display: block;
  }
 
  thead tr {
    display: none;
  }
 
  td {
    border: none;
    border-bottom: 1px solid #eee;
    position: relative;
    padding-left: 50%;
  }
 
  td:before {
    position: absolute;
    top: 6px;
    left: 6px;
    width: 45%;
    padding-right: 10px;
    white-space: nowrap;
    content: attr(data-column);
    font-weight: bold;
  }
 
}

Bootstrap kártyák

Érdemes kártyákat használni táblázatok helyett. Használjuk a Card komponenst.

A kártyakomponenseket tegyük egy divbe, majd állítsunk be d-flex és felx-wrap osztályjelölöket.

<div class="d-flex flex-wrap justify-content-center">
  <div class="card" style="width: 18rem;">
    <img src="..." class="card-img-top" alt="...">
    <div class="card-body">
      <h5 class="card-title">Cím</h5>
      <p class="card-text">Leírás</p>
      <a href="#" class="btn btn-primary">Menjünk valahova</a>
    </div>
  </div>
</div>

Angularban

Legyen Angualrban egy productList, amit szeretnénk renderelni a weboldalra. Készítsünk egy div-t, aminek a dispaly tulajdonságát flex értékre állítjuk, majd mondjuk meg, hogy tördelje a tartalmat ha szükséges a flex tulajdonság wrap-ra állításával.

<div class="d-flex flex-wrap justify-content-center">
  @for(product of productList; track product.id) {
    <div class="card m-3" style="width: 18rem;">
      <img src="{{ product.image }}" class="card-img-top" alt="{{ product.name }}"
      width="50px" height="80px">
      <div class="card-body">
        <h5 class="card-title">{{ product.name }}</h5>
        <p class="card-text">{{ product.description }}</p>
 
        <button
        class="btn btn-primary"
        (click)=toCart(emp)
        >Kosárba</button>
      </div>
    </div>
  }
</div>
oktatas/web/reszponziv.1744533177.txt.gz · Utolsó módosítás: 2025/04/13 10:32 szerkesztette: admin