bootstrap 4 tiện ích đáp ứng hiển thị / ẩn xs sm lg không hoạt động


96

Gặp sự cố với các lớp ẩn / hiện của tiện ích đáp ứng mới khi di chuyển sang Bootstrap 4 . Tôi biết rằng các lớp .hides- đã bị xóa khỏi v3 và được thay thế bằng .hidden-*-up .hidden-*-down. Sử dụng các .hidden-*-up.hidden-*-downlớp mới nhưng các phần tử không thay đổi thành hiển thị / ẩn. Không thể tìm ra lý do tại sao.

<div class="col hidden-xs-down">
    <span class="vcard"></span>
</div>
<div class="col hidden-lg-down">
    <div class="hidden-sm-down"></div>
    <div class="hidden-xs-down"></div>
</div>

* không có gì bị ẩn trong ví dụ này, bất kể kích thước màn hình (Safari, Chế độ thiết kế đáp ứng)


2
Và câu hỏi của bạn là gì? stackoverflow.com/help/how-to-ask
Rob

@Rob fair;) đã thay đổi.
Yatko

Bạn được yêu cầu đăng một ví dụ tối thiểu về đánh dấu gây ra sự cố: ví dụ tối thiểu có thể tái tạo Chúng tôi không có manh mối nào về "các phần tử".
Rob

Thiết lập một codepen chứa Bootstrap 4 và ví dụ HTML của bạn: codepen.io/esr360/pen/prWjYv . Tuyên bố của bạn về "không có gì bị ẩn trong ví dụ này, bất kể kích thước màn hình" là không chính xác.
ESR

@EdmundReed có, nó làm tôi bực bội: Tôi đã thử với một ví dụ đơn giản, hoạt động trên mac của tôi, ngừng hoạt động ngay sau khi đồng bộ hóa ... cố gắng nhớ cache, thậm chí là một ISP khác nhau để cai trị-out bất kỳ bộ nhớ đệm
Yatko

Câu trả lời:


227

Với Bootstrap, 4 .hidden-* lớp đã bị loại bỏ hoàn toàn (vâng, chúng đã được thay thế bằng hidden-*-*nhưng những lớp đó cũng biến mất khỏi v4 alphas).

Bắt đầu với v4-beta, bạn có thể kết hợp .d-*-none.d-*-blockcác lớp để đạt được cùng một kết quả.

hiển thị- * cũng đã bị xóa ; thay vì sử dụng .visible-*các lớp rõ ràng , hãy làm cho phần tử hiển thị bằng cách không ẩn nó (một lần nữa, sử dụng kết hợp .d-none .d-md-block). Đây là ví dụ hoạt động:

<div class="col d-none d-sm-block">
    <span class="vcard"></span>
</div>
<div class="col d-none d-xl-block">
    <div class="d-none d-md-block"></div>
    <div class="d-none d-sm-block"></div>
</div>

class="hidden-xs"trở thành class="d-none d-sm-block"(hoặc d-none d-sm-inline-block ) ...

<span class="d-none d-sm-inline">hidden-xs</span>

<span class="d-none d-sm-inline-block">hidden-xs</span>

Một ví dụ về các tiện ích đáp ứng Bootstrap 4 :

<div class="d-none d-sm-block"> hidden-xs           
  <div class="d-none d-md-block"> visible-md and up (hidden-sm and down)
    <div class="d-none d-lg-block"> visible-lg and up  (hidden-md and down)
      <div class="d-none d-xl-block"> visible-xl </div>
    </div>
  </div>
</div>

<div class="d-sm-none"> eXtra Small <576px </div>
<div class="d-none d-sm-block d-md-none d-lg-none d-xl-none"> SMall ≥576px </div>
<div class="d-none d-md-block d-lg-none d-xl-none"> MeDium ≥768px </div>
<div class="d-none d-lg-block d-xl-none"> LarGe ≥992px </div>
<div class="d-none d-xl-block"> eXtra Large ≥1200px </div>

<div class="d-xl-none"> hidden-xl (visible-lg and down)         
  <div class="d-lg-none d-xl-none"> visible-md and down (hidden-lg and up)
    <div class="d-md-none d-lg-none d-xl-none"> visible-sm and down  (or hidden-md and up)
      <div class="d-sm-none"> visible-xs </div>
    </div>
  </div>
</div>

Tài liệu


1
Lý do tại sao tôi không thể tìm thấy điều này, phiên bản beta v4 đã được xuất bản vài ngày trước và tất cả các kết quả được Google lập chỉ mục vẫn đưa bạn đến v4-alpha, bằng cách nào đó tôi đã nhận được liên kết CDN mới nhưng tất cả phần còn lại vẫn là -alpha
Yatko

2
Tôi giả sử "d" = display.
user20232359723568423357842364

16
tại sao họ lại đưa ra một sự thay đổi không trực quan, đột phá như vậy? bất kỳ lời giải thích?
szaman

3
@rrrafalsz Tôi cũng thắc mắc về điều tương tự. Điều này có vẻ như là một bước lùi không cần thiết phức tạp so với "hiển thị lên / xuống" trước đó mà họ đã có trong bản alpha. Sẽ rất thú vị nếu biết lý do.
Katai

Bạn có thể nhận xét rõ ràng trong ví dụ của mình, cái nào trong số DIV sẽ hiển thị và cái nào không? Tôi đã mất một lúc, và tôi không chắc, nếu tôi nhận xét nó, liệu điều đó có đúng không. cảm ơn
helle

51

Loại kích thước màn hình

-

  1. Ẩn trên tất cả .d-none

  2. Chỉ ẩn trên xs .d-none .d-sm-block

  3. Chỉ ẩn trên sm .d-sm-none .d-md-block

  4. Chỉ ẩn trên md .d-md-none .d-lg-block

  5. Chỉ ẩn trên lg .d-lg-none .d-xl-block

  6. Chỉ ẩn trên xl .d-xl-none

  7. Hiển thị trên tất cả .d-block

  8. Chỉ hiển thị trên xs .d-block .d-sm-none

  9. Chỉ hiển thị trên sm .d-none .d-sm-block .d-md-none

  10. Chỉ hiển thị trên md .d-none .d-md-block .d-lg-none

  11. Chỉ hiển thị trên lg .d-none .d-lg-block .d-xl-none

  12. Chỉ hiển thị trên xl .d-none .d-xl-block

Tham khảo liên kết này http://getbootstrap.com/docs/4.0/utilities/display/#hiding-elements

Liên kết 4.5: https://getbootstrap.com/docs/4.5/utilities/display/#hiding-elements


1
Mặc dù về mặt lý thuyết, điều này có thể trả lời câu hỏi, nhưng tốt hơn hết bạn nên đưa các phần thiết yếu của câu trả lời vào đây và cung cấp liên kết để tham khảo.
Rick

6

Bootstrap 4 (^ beta) đã thay đổi các lớp cho các phần tử ẩn / hiển thị đáp ứng. Xem liên kết này để biết các lớp học chính xác để sử dụng: http://getbootstrap.com/docs/4.0/utilities/display/#hiding-elements


2
Cảm ơn bạn. Bootstrap ít nhất có thể xóa nội dung cũ để lưu trữ để tổng số người dùng (như tôi) không cần phải tìm 123523532 giải pháp khả thi trước khi tìm thấy câu trả lời này ở ngăn xếp. Trong vài năm gần đây, tràn ngăn xếp hữu ích hơn google, vì vậy khi mọi người nói hãy sử dụng google ... tôi nói không, hãy sử dụng ngăn xếp .. Nhanh hơn và hữu ích hơn.
Màu xanh lam

0

Một số phiên bản hoạt động

<div class="hidden-xs">Only Mobile hidden</div>
<div class="visible-xs">Only Mobile visible</div>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.