• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Poziome przewijanie

Mały hosting, OGROMNE możliwości
+1 głos
410 wizyt
pytanie zadane 16 listopada 2020 w HTML i CSS przez Konrad M'k Nowicjusz (240 p.)
edycja 16 listopada 2020 przez Konrad M'k

Cześć,

jestem początkujący i mam pytanie dotyczące stworzenia horizontal scroll w projekcie Bootstrap'a. Kod, o który posiadam przedstawiam poniżej natomiast napotkałem 2 problemy: 

1) Na urządzeniach mobilnych poniższe rozwiązanie działa świetnie, jednak na komputerach bez touchpad'a nie ma możliwości scrollowania. I zastanawiam się jak ten problem rozwiązaćsad

2) Drugim problemem jest to, że jeżeli dopiszę więcej tekstu w klasach card-title lub card-text tekst wyjeżdża po za granicę card i prezentuje się to tak jak na poniższym zdjęciu. 

Bardzo Was proszę o wsparcie i z góry bardzo dziękuję!

Kod HTML: 

<html lang="pl">
    <head>
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
        <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
    </head>
    <body>
        <section>
          <div class="container-fluid">
            <div class="row">
              <div class="scrollcards">
                
                  <div class="card">
                    <img class="card-img-top" src="http://via.placeholder.com/350x150">
                    <div class="card-block">
                      <h4 class="card-title">Card title</h4>
                      <p class="card-text">Text Here</p>
                    </div>
                  </div>
                
                  <div class="card">
                    <img class="card-img-top" src="http://via.placeholder.com/350x150">
                    <div class="card-block">
                      <h4 class="card-title">Card title</h4>
                      <p class="card-text">Text Here</p>
                    </div>
                  </div>
                  
                  <div class="card">
                    <img class="card-img-top" src="http://via.placeholder.com/350x150">
                    <div class="card-block">
                      <h4 class="card-title">Card title</h4>
                      <p class="card-text">Text Here</p>
                    </div>
                  </div>
                
                  <div class="card">
                    <img class="card-img-top" src="http://via.placeholder.com/350x150">
                    <div class="card-block">
                      <h4 class="card-title">Card title</h4>
                      <p class="card-text">Text Here</p>
                    </div>
                  </div>
                
                  <div class="card">
                    <img class="card-img-top" src="http://via.placeholder.com/350x150">
                    <div class="card-block">
                      <h4 class="card-title">Card title</h4>
                      <p class="card-text">Text Here</p>
                    </div>
                  </div>
                
                  <div class="card">
                    <img class="card-img-top" src="http://via.placeholder.com/350x150">
                    <div class="card-block">
                      <h4 class="card-title">Card title</h4>
                      <p class="card-text">Text Here</p>
                    </div>
                  </div>
                
                  <div class="card">
                    <img class="card-img-top" src="http://via.placeholder.com/350x150">
                    <div class="card-block">
                      <h4 class="card-title">Card title</h4>
                      <p class="card-text">Text Here</p>
                    </div>
                  </div>
                
                  <div class="card">
                    <img class="card-img-top" src="http://via.placeholder.com/350x150">
                    <div class="card-block">
                      <h4 class="card-title">Card title</h4>
                      <p class="card-text">Text Here</p>
                    </div>
                  </div>
              </div>
            </div>
           </div>
        </section>
    </body>
</html>

Kod CSS:

section{
  margin-top: 40px;
}
.card {
  margin: 10px 4px;
  transition: .6s ease;
}



.card-block {
   padding: 10px;
}

.scrollcards {
  background-color: #fff;
  overflow: auto;
  white-space: nowrap;
}

::-webkit-scrollbar {
    width: 0px;
    height: 0px;
    background: transparent;
}

div.scrollcards .card {
    display: inline-block;
    text-decoration: none;
    height: auto; 
    width: 300px;
}

Screen,  o którym wspomniałem:

 

1 odpowiedź

0 głosów
odpowiedź 16 listopada 2020 przez VBService Ekspert (256,580 p.)
wybrane 16 listopada 2020 przez Konrad M'k
 
Najlepsza

1. użyj overfolw-x w css na odpowiednim div-ie (tzn. zdecyduj, która część kodu html ma być "scrollowana") np.:

(kolory czerwony i zielony użyte, aby łatwiej zrozumieć, która cześć kodu css odpowiada za, którą część "paska przewijania" wink) Codepen

section{
  margin-top: 40px;  
}



.row {
  overflow-x: auto;
}
::-webkit-scrollbar-track
{
	border: 7px solid white;
	background-color: green;
}

::-webkit-scrollbar
{
	height: 15px;
	background-color: white;
}

::-webkit-scrollbar-thumb
{
	background-color: red;
	border-radius: 10px;
}



.card {
  margin: 10px 4px;
  transition: .6s ease;
}
 
.card-block {
   padding: 10px;
}
 
.scrollcards {
  background-color: #fff;
  overflow: auto;
  white-space: nowrap;
}
 
div.scrollcards .card {
    display: inline-block;
    text-decoration: none;
    height: auto; 
    width: 300px;
}

i za pomocą @media z css, rozpoznaj gdzie jest uruchomiana strona (czy desktop, czy telefon)

i tak np.: gdy telefon

@media ... ( ... ) {
::-webkit-scrollbar {
    width: 0px;
    height: 0px;
    background: transparent;
}

desktop

@media ... ( ... ) {
  .row {
    overflow-x: auto;
  }
  ::-webkit-scrollbar-track
  {
     border: 7px solid white;
     background-color: green;
  }

  ::-webkit-scrollbar
  {
     height: 15px;
     background-color: white;
  }

  ::-webkit-scrollbar-thumb
  {
     background-color: red;
     border-radius: 10px;
  }
}

2. Spróbuj użyć

.twoja_klasa { // W Twoim przypadku to chyba .card-text
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

 

1
komentarz 16 listopada 2020 przez Konrad M'k Nowicjusz (240 p.)

Bardzo Ci dziękuję, wszystko działa jak trzeba!smiley

Podobne pytania

0 głosów
1 odpowiedź 1,439 wizyt
pytanie zadane 31 stycznia 2018 w HTML i CSS przez Hardwell Dyskutant (9,060 p.)
0 głosów
1 odpowiedź 1,152 wizyt
pytanie zadane 9 lutego 2019 w JavaScript przez Byczek_ Bywalec (2,570 p.)
0 głosów
1 odpowiedź 811 wizyt

93,718 zapytań

142,631 odpowiedzi

323,262 komentarzy

63,266 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...