W Bootstrap v3 często używam klas ukrytych - ** w połączeniu z clearfixem, aby kontrolować układy wielu kolumn na różnych szerokościach ekranu. Na przykład,
Mógłbym połączyć wiele ukrytych - ** w jednym DIV, aby moje kolumny były wyświetlane poprawnie przy różnych szerokościach ekranu.
Jako przykład chciałbym wyświetlić rzędy zdjęć produktów, 4 w rzędzie na większych ekranach, 3 na mniejszych ekranach, a następnie 2 na bardzo małych ekranach. Zdjęcia produktów mogą mieć różne wysokości, dlatego potrzebuję poprawki, aby zapewnić prawidłowe łamanie wiersza.
Oto przykład w v3 ...
http://jsbin.com/tosebayode/edit?html,css,output
Teraz, gdy v4 porzuciło te klasy i zastąpiło je klasami widocznymi / ukrytymi - ** - w górę / w dół, wydaje mi się, że muszę zrobić to samo z wieloma DIV.
Oto podobny przykład w v4 ...
http://jsbin.com/sagowihowa/edit?html,css,output
Więc przeszedłem z pojedynczych DIV do konieczności dodawania wielu DIV z mnóstwem klas góra / dół, aby osiągnąć to samo.
Z...
<div class="clearfix visible-xs-block visible-sm-block"></div>
do...
<div class="clearfix hidden-sm-up"></div>
<div class="clearfix hidden-md-up hidden-xs-down"></div>
<div class="clearfix hidden-md-down"></div>
Czy istnieje lepszy sposób na zrobienie tego w v4, które przeoczyłem?
d-initial
takiej opcji, więc nie można już zastąpićd-<breakpoint>-hidden
i ustawić jej wartości początkowej. Jeśli chcę ukryć element na mniejszych ekranach, ale wyświetlać go na średnich i większych bez znajomości początkowego wyświetlania (który może być dynamiczny), nie mogę przywrócić jego wartości. Nie myśleli o tym.Niestety wszystkie klasy
hidden-*-up
ihidden-*-down
wyjęto z Bootstrap (stan Bootstrap wersji 4 beta , w wersji 4 Alpha i wersja 3 klasy te nadal istnieją).Zamiast tego
d-*
należy użyć nowych klas , jak wspomniano tutaj: https://getbootstrap.com/docs/4.0/migration/#utilitiesDowiedziałem się, że w niektórych okolicznościach nowe podejście jest mniej przydatne. Stare podejście polegało na UKRYWANIU elementów, a nowe podejście POKAŻ elementy. Wyświetlanie elementów nie jest tak łatwe w CSS, ponieważ musisz wiedzieć, czy element jest wyświetlany jako blok, wstawka, wstawka, tabela itp.
Możesz przywrócić poprzednie style „ukryte- *” znane z Bootstrap 3 za pomocą tego CSS:
Klasy
hidden-unless-*
nie zostały uwzględnione w Bootstrap 3, ale są również przydatne i powinny być zrozumiałe.źródło
Bootstrap v4.1 używa nowych nazw klas do ukrywania kolumn w systemie siatki.
Aby ukryć kolumny w zależności od szerokości ekranu, użyj
d-none
klasy lub dowolnej zd-{sm,md,lg,xl}-none
klas. Aby wyświetlić kolumny na niektórych rozmiarach ekranu, połącz wyżej wymienione klasy zd-block
lubd-{sm,md,lg,xl}-block
klasami.Przykładami są:
Więcej ich tutaj .
źródło
Nie oczekuję, że wielokrotne div jest dobrym rozwiązaniem.
Myślę też można zastąpić
.visible-sm-block
z.hidden-xs-down
i.hidden-md-up
(lub.hidden-sm-down
i.hidden-lg-up
działać na tych samych zapytań mediów).hidden-sm-up
kompiluje się w:.hidden-sm-down
i.hidden-lg-up
kompiluje się w:Obie sytuacje powinny działać tak samo.
Sytuacja staje się inna, gdy próbujesz zastąpić
.visible-sm-block
i.visible-lg-block
. Dokumenty Bootstrap v4 mówią:źródło
Użytkownik Klaro zasugerował przywrócenie starych klas widoczności, co jest dobrym pomysłem. Niestety ich rozwiązanie nie zadziałało w moim projekcie.
Myślę, że lepszym pomysłem jest przywrócenie starej mieszanki bootstrap, ponieważ obejmuje ona wszystkie punkty przerwania, które użytkownik może indywidualnie zdefiniować.
Oto kod:
W moim przypadku wstawiłem tę część do
_custom.scss
pliku, który znajduje się w tym miejscu wbootstrap.scss
:źródło
display: block
co przerywa przepływ w niektórych scenariuszach.http://v4-alpha.getbootstrap.com/layout/responsive-utilities/
Teraz musisz zdefiniować rozmiar tego, co jest ukryte
Ukryje wszystko przed xs i mniejszymi, tylko xs
Ukryje wszystko
źródło
W przypadku bootstrap 4, oto obraz macierzy wyjaśniający klasy używane do pokazywania / ukrywania elementów zależy od wielkości ekranu:
Źródło: Meduim: Bootstrap 4 Ukryty i widoczny
źródło
Bootstrap 4, aby ukryć całą zawartość, użyj tej klasy „.d-none” , ukryje wszystko bez względu na punkty przerwania takie same jak poprzednia klasa wersji bootstrap „.hidden”
źródło
Niestety te nowe klasy bootstrap 4 nie działają tak jak stare na div przy użyciu,
collapse
ponieważ ustawiają widoczny div, dlablock
którego zaczyna się widoczny, a nie ukryty, a jeśli dodasz dodatkowy div wokółcollapse
funkcjonalności, przestanie on działać.źródło
źródło