Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Modal bootstrap drukowany na każdej stronie - błąd
Forum PHP.pl > Forum > Po stronie przeglądarki > CSS
markonix
Mam problem, chciałem sobie drukować popupy ale ciągle mi się drukowały 2 razy.
Cofając się zauważyłem, że ten problem leży już gdzieś u podstaw tj. nawet bez żadnych moich cssów dla print modal drukuje się na każdej stronie.

Przykładowo w tych templatkach:
http://www.deemble.com/deeadmin/v1_2_0/modals.html
https://agileui.com/demo/monarch/demo/admin...ate/modals.html
Otwierając modal i dając CTR + P widać już w podglądzie (Chrome), że modal nachodzi na treść na każdej stronie.

Co ciekawe gdy jednak ustawię w przeglądarce emulacje print to wszystko ładnie działa.

Jakieś sugestie jak się pozbyć tego modala?
Myślałem, że modal się po prostu jakoś dubluje i próbowałem first:child ale to nie jest problem z dwoma divami.
Comandeer
Strzelam, że do druku należy zamienić position: fixed na position: absolute. W druku position: fixed jest uznawany za element znajdujący się na każdej stronie.
markonix
Zgadza się, jest to bezpośrednia przyczyna.

Niestety ciągle mam problem bo teraz ok, zamiast dwóch mam jeden ale drugą stronę ciągle mi drukuje (jest teraz tylko pusta).
Mój css:

  1. @media print {
  2.  
  3. /* on modal open bootstrap adds class "modal-open" to body, so you can handle that case and hide body */
  4. body.modal-open {
  5. visibility: hidden;
  6. }
  7.  
  8. body.modal-open .modal {
  9. position: absolute;
  10. visibility: visible;
  11. }
  12.  
  13. body.modal-open .modal .modal-footer {
  14. visibility: hidden;
  15. }
  16. }


Po prostu drukuje tyle stron pustych ile byłoby stron gdybym nie ukrył wszystkiego poza modalem (czyli jak zrobię 2 większą tabele pod modalem to będzie modal i 3 puste strony).

Próbowałem np. tego rozwiązania:
http://stackoverflow.com/a/22320644/2177401
i nic, ciągle widzi stronę jaka była przed ukryciem.

Z FF w ogóle modal troszkę się rozjechał ale to sobie poradzę.
Natomiast w IE/Edge wygląda tak jak powinno, ładnie wyśrodkowany i tylko jedna strona, kto by pomyślał.
Comandeer
A nadanie overflow: hidden dla html, body? Bo visibility zachowuje rozmiary ukrytego elementu.
markonix
Tak, to właśnie robi. Pod modalem mam dynamiczną tabelę z ustawieniem liczby na stronę więc mogę łatwo zwiększać jej rozmiar.
I niestety.

  1. html, body {
  2. overflow: hidden !important;
  3. }


Nic nie daje. Jak zrobię długą tabelę to mam 1 stronę z modalem i 9 pustych.
Nie rozumiem czemu nie to nie reaguje na zadanie wysokości dla body :/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.