การซ่อนองค์ประกอบในเค้าโครงที่ตอบสนองได้หรือไม่


298

มองผ่าน bootstrap ดูเหมือนว่าพวกเขาสนับสนุนการยุบรายการแถบเมนูสำหรับหน้าจอขนาดเล็ก มีบางอย่างที่คล้ายกันสำหรับรายการอื่น ๆ ในหน้า?

ตัวอย่างเช่นฉันมียาเม็ดคุมกำเนิดลอยไปทางขวา บนหน้าจอขนาดเล็กสิ่งนี้จะทำให้เกิดปัญหา ฉันชอบที่จะนำมาไว้ในรายการแบบเลื่อนลงแบบคลิกเพื่อแสดงเพิ่มเติมที่คล้ายกัน

สิ่งนี้เป็นไปได้หรือไม่ภายในกรอบ Bootstrap ที่มีอยู่

คำตอบ:


648

คลาสที่มองเห็นได้ใหม่ถูกเพิ่มใน Bootstrap

อุปกรณ์ขนาดเล็กพิเศษ โทรศัพท์ (<768px)(Class names : .visible-xs-block, hidden-xs)

อุปกรณ์ขนาดเล็ก แท็บเล็ต (≥768px)(Class names : .visible-sm-block, hidden-sm)

เดส ก์ท็อปอุปกรณ์ขนาดกลาง (≥992px)(Class names : .visible-md-block, hidden-md)

เดส ก์ท็อปอุปกรณ์ขนาดใหญ่ (≥1200px)(Class names : .visible-lg-block, hidden-lg)

สำหรับข้อมูลเพิ่มเติม: http://getbootstrap.com/css/#responsive-utilities


ด้านล่างเลิกใช้ตั้งแต่วันที่ v3.2.0


อุปกรณ์ขนาดเล็กพิเศษโทรศัพท์ (<768px) (Class names : .visible-xs, hidden-xs)

อุปกรณ์ขนาดเล็กแท็บเล็ต (≥768px) (Class names : .visible-sm, hidden-sm)

เดสก์ท็อปอุปกรณ์ขนาดกลาง (≥992px) (Class names : .visible-md, hidden-md)

เดสก์ท็อปอุปกรณ์ขนาดใหญ่ (≥1200px) (Class names : .visible-lg, hidden-lg)


Bootstrap ที่เก่ากว่ามาก


.hidden-phone, .hidden-tablet ฯลฯ ไม่ได้รับการสนับสนุน / ล้าสมัย

UPDATE:

ใน Bootstrap 4 มีคลาส 2 ประเภท:

  • hidden-*-upซึ่งซ่อนองค์ประกอบเมื่อวิวพอร์ตที่เบรกพอยต์ที่กำหนดหรือที่กว้างขึ้น
  • hidden-*-down ซึ่งซ่อนองค์ประกอบเมื่อวิวพอร์ตอยู่ที่เบรกพอยต์ที่กำหนดหรือเล็กกว่า

นอกจากนี้xlวิวพอร์ตใหม่จะถูกเพิ่มสำหรับอุปกรณ์ที่มีความกว้างมากกว่า 1200px สำหรับข้อมูลเพิ่มเติมคลิกที่นี่


2
ผมไม่เชื่อ.hidden-phoneและ.hidden-tabletจะเลิก ** - พวกเขากำลังได้รับการสนับสนุน ** เลิกมีแนวโน้มที่จะหมายถึง“ได้ถูกแทนที่โดยวิธีการอื่น ๆ แต่ยังคงได้รับการสนับสนุนมีวัตถุประสงค์ที่จะค่อย ๆ ออกมาเร็ว ๆ นี้” นี่เป็นกรณีของ Bootstrap 3.2.0 .visible-xsและสิ่งที่ยังคงใช้ได้ในขณะนี้.hidden-phoneและเพื่อน ๆ ก็หายไปจากการทำงานของ Bootstrap
Slipp D. Thompson

2
ขอบคุณ - ฉันได้อัปเดตคำตอบสำหรับข้อความที่ถูกต้องแล้ว ควรจะชัดเจนขึ้นสำหรับผู้ใช้รายอื่นในขณะนี้
Marc Uberstein

2
FYI ได้ทำการวิจัยเพิ่มเติมอีกเล็กน้อย - ดูเหมือนว่า "ล้าสมัย" มักใช้ในบริบทที่เป็นทางการเนื่องจากสถานะของความไม่สนับสนุนตามการปฏิเสธ ฉันคิดว่า "ไม่สนับสนุน" ก็ใช้ได้เหมือนกัน แต่ก็อะไรก็ตาม ขอขอบคุณที่พิจารณาข้อเสนอแนะก่อนหน้าของฉัน
Slipp D. Thompson

1
:) ฉันได้เพิ่มทั้ง ... เพื่อประโยชน์ของคนธรรมดา ขอบคุณที่ทำวิจัยเพิ่มเติมอีกเล็กน้อยเกี่ยวกับการใช้ถ้อยคำที่ถูกต้อง ไชโย
Marc Uberstein

2
โปรดทราบว่าการอัพเดต Bootstrap 4 ใช้สำหรับ bootstrap 4 อัลฟา ในรุ่นที่วางจำหน่ายคุณควรใช้คลาส. d- -none และ d- -block getbootstrap.com/docs/4.0/migration/#responsive-utilities
Pieter De Bie

137

Bootstrap 4 Beta คำตอบ:

d-block d-md-noneไปซ่อนในขนาดกลางขนาดใหญ่และขนาดใหญ่พิเศษอุปกรณ์

d-none d-md-blockไปซ่อนในขนาดเล็กและขนาดเล็กพิเศษอุปกรณ์

ป้อนคำอธิบายรูปภาพที่นี่

โปรดทราบว่าคุณสามารถอินไลน์โดยแทนที่d-*-blockด้วยd-*-inline-block


คำตอบเก่า: Bootstrap 4 Alpha

  • คุณสามารถใช้คลาส.hidden-*-upเพื่อซ่อนในขนาดที่กำหนดและอุปกรณ์ขนาดใหญ่

    .hidden-md-upไปซ่อนในขนาดกลางขนาดใหญ่และขนาดใหญ่พิเศษอุปกรณ์

  • เช่นเดียวกับ.hidden-*-downการซ่อนในขนาดที่กำหนดและอุปกรณ์ขนาดเล็ก

    .hidden-md-downไปซ่อนในขนาดกลางขนาดเล็กและขนาดเล็กพิเศษอุปกรณ์

  • visible- * ไม่ได้เป็นตัวเลือกสำหรับ bootstrap 4 อีกต่อไป

  • หากต้องการแสดงเฉพาะบนอุปกรณ์ขนาดกลางคุณสามารถรวมทั้งสอง:

    hidden-sm-down และ hidden-xl-up

ขนาดที่ถูกต้องคือ:

  • xs สำหรับโทรศัพท์ในโหมดแนวตั้ง (<34em)
  • sm สำหรับโทรศัพท์ในโหมดแนวนอน (≥34em)
  • md สำหรับแท็บเล็ต (≥48em)
  • lg สำหรับเดสก์ท็อป (≥62em)
  • xl สำหรับเดสก์ท็อป (≥75em)

นี่เป็นของ Bootstrap 4, alpha 5 (มกราคม 2017) รายละเอียดเพิ่มเติมได้ที่นี่: http://v4-alpha.getbootstrap.com/layout/responsive-utilities/

บน Bootstrap 4.3.x: https://getbootstrap.com/docs/4.3/utilities/display/


8
สิ่งเหล่านี้ถูกลบออกจาก v4 เบต้า ตอนนี้คุณใช้.d-คลาสเพื่อซ่อนหรือแสดงในขนาดต่าง ๆ getbootstrap.com/docs/4.0/utilities/display
DriverDan

1
ฉันเห็น แต่ฉันยังคงพยายามทำสิ่งนี้อยู่ .... ฉันจะซ่อนบางสิ่งบางอย่างบนหน้าจอขนาดเล็กได้อย่างไรตอนนี้ ฉันต้องการตรงกันข้ามกับ d-md-none เนื่องจากฉันสลับเป็น div ขึ้นอยู่กับหน้าจอขนาดใหญ่และหน้าจอขนาดเล็ก
Leo Muller

@LeoMuller หากคุณต้องการองค์ประกอบที่จะซ่อนในเอสเอ็มขนาดและด้านล่าง แต่มองเห็นได้บน MD, LG และ XL, d-none d-md-blockการใช้งาน code.luasoftware.com/tutorials/bootstrap/…
Desmond Lua

@DesmondLua ฉันคิดเหมือนกันว่า LeoMuller ... ใน BS4 องค์ประกอบบางอย่างทำงานเป็นบล็อกและบางส่วนเป็นแบบยืดหยุ่น ... ¿ทำไมฉันต้องรู้ก่อนหน้านี้เกี่ยวกับลักษณะ BS4 ขององค์ประกอบเฉพาะเมื่อฉันต้องการซ่อนไว้ในโทรศัพท์ แต่ฉัน ต้องการแสดงว่าเป็นมาตรฐาน BS4 ในแท็บเล็ตและแล็ปท็อปหรือไม่ มันตรงกันข้ามกับที่คุณคิดว่าปกติ ... ฉันหวังว่าทีม BS4 จะแก้ไขปัญหานี้ก่อนที่จะเผยแพร่ครั้งสุดท้าย
JavierFuentes

ฉันไม่พบเอกสารของ d-block ในเอกสาร Bootstrap 4 ปัจจุบันพวกเขาลบออกหรือไม่
Mojimi

32

Bootstrap 4.x คำตอบ

hidden-* คลาสจะถูกลบออกจาก Bootstrap 4 เบต้าเป็นต้นไป

ถ้าคุณต้องการที่จะแสดงในระดับกลางและสูงกว่าใช้d-*ชั้นเรียนเช่น:

<div class="d-none d-md-block">This will show in medium and up</div>

หากคุณต้องการที่จะแสดงในขนาดเล็กและด้านล่างใช้สิ่งนี้:

<div class="d-block d-md-none"> This will show only in below medium form factors</div>

ขนาดหน้าจอและแผนภูมิระดับ

| Screen Size        | Class                          |
|--------------------|--------------------------------|
| Hidden on all      | .d-none                        |
| Hidden only on xs  | .d-none .d-sm-block            |
| Hidden only on sm  | .d-sm-none .d-md-block         |
| Hidden only on md  | .d-md-none .d-lg-block         |
| Hidden only on lg  | .d-lg-none .d-xl-block         |
| Hidden only on xl  | .d-xl-none                     |
| Visible on all     | .d-block                       |
| Visible only on xs | .d-block .d-sm-none            |
| Visible only on sm | .d-none .d-sm-block .d-md-none |
| Visible only on md | .d-none .d-md-block .d-lg-none |
| Visible only on lg | .d-none .d-lg-block .d-xl-none |
| Visible only on xl | .d-none .d-xl-block            |

แทนที่จะใช้.visible-*คลาสที่ชัดเจนคุณสามารถทำให้องค์ประกอบมองเห็นได้โดยไม่ซ่อนไว้ที่ขนาดหน้าจอนั้น คุณสามารถรวม.d-*-noneชั้นหนึ่งกับชั้นหนึ่ง.d-*-blockเพื่อแสดงองค์ประกอบเฉพาะในช่วงเวลาที่กำหนดขนาดหน้าจอ (เช่น.d-none.d-md-block.d-xl-none แสดงองค์ประกอบเฉพาะบนอุปกรณ์ขนาดกลางและขนาดใหญ่)

เอกสาร


23

คุณสามารถป้อนส่วนต่อท้ายคลาสโมดูลเหล่านี้สำหรับโมดูลใดก็ได้เพื่อควบคุมที่จะแสดงหรือซ่อนอยู่ได้ดียิ่งขึ้น

.visible-phone  
.visible-tablet     
.visible-desktop    
.hidden-phone   
.hidden-tablet  
.hidden-desktop 

http://twitter.github.com/bootstrap/scaffolding.html เลื่อนไปด้านล่าง


ขอบคุณ - ที่จริงผมต้องการให้พวกเขาสามารถมองเห็นได้ ... เพียงแค่ในรูปแบบย่อ / ทรุดตัวลงเช่น navbar ยุบซึ่งเป็นเฉพาะสำหรับ navbar และผมเห็นไม่มีการสนับสนุนอื่น ๆ สำหรับองค์ประกอบอื่น ๆ ...
Kaitlyn2004

สามารถยุบได้ตามชื่อคลาสและ / หรือรหัส หากคุณค้นหา CSS / JS จากนั้นคุณสามารถเพิ่มคลาส / รหัสเพิ่มเติมที่ทำสิ่งเดียวกัน
justinavery

โอกาสใดที่คุณสามารถให้ตัวอย่างได้บ้าง ฉันเห็นปลั๊กอินการยุบ แต่ไม่แน่ใจเกี่ยวกับการนำไปใช้ อย่างน้อยภายใน navbar ดูเหมือนว่าจะได้รับการจัดการโดยอัตโนมัติ - หรืออย่างน้อยก็สร้างไว้ในแกนของ bootstrap
Kaitlyn2004

7
เลิกใช้แล้วตั้งแต่ Bootstrap 3
Gereltod

1
โปรดแจ้งว่าเป็นเพียงสำหรับ #Bootstrap 2
Lucas Bustamante

19

ฉันมีการชี้แจงสองสามข้อให้เพิ่มที่นี่:

1) รายการที่แสดง (โทรศัพท์ที่มองเห็นได้, แท็บเล็ตที่มองเห็นได้ ฯลฯ ) เลิกใช้แล้วใน Bootstrap 3. ค่าใหม่คือ:

  • มองเห็น xs- *
  • มองเห็น sm- *
  • มองเห็น md- *
  • มองเห็น lg- *
  • ซ่อน xs- *
  • ซ่อน sm- *
  • ซ่อน md- *
  • ซ่อน lg- *

เครื่องหมายดอกจันแปลดังต่อไปนี้สำหรับแต่ละ (ฉันแสดงให้เห็นเท่านั้น -xs- * ด้านล่าง):

  • มองเห็น XS-บล็อก
  • มองเห็น XS-แบบอินไลน์
  • มองเห็น XS-อินไลน์บล็อก

2) เมื่อคุณใช้คลาสเหล่านี้คุณจะไม่เพิ่มช่วงเวลาก่อนหน้า (ตามที่แสดงอย่างสับสนในส่วนของคำตอบด้านบน)

ตัวอย่างเช่น:

<div class="visible-md-block col-md-6 text-right text-muted">
   <h5>Copyright &copy; 2014 Jazimov</h5>
</div>

3) คุณสามารถใช้ visible- * และ hidden- * (ตัวอย่างเช่น visible-xs และ hidden-xs) แต่สิ่งเหล่านี้เลิกใช้แล้วใน Bootstrap 3.2.0

สำหรับรายละเอียดเพิ่มเติมและข้อมูลจำเพาะล่าสุดไปที่นี่และค้นหา "visible": http://getbootstrap.com/css/


ไม่ถูกต้องhidden-xs-blockไม่ถูกต้อง แต่visible-xs-blockคือ
Hammad Khan

@hmd: คุณสามารถให้แหล่งที่มา / การอ้างอิงสำหรับความคิดเห็นของคุณซึ่งฉันไม่เข้าใจแม้แต่เพราะมันไม่ได้เป็นประโยคเต็ม คุณพยายามแชร์อะไรกันแน่ คุณกำลังพูดว่า hidden-xs-block ไม่ถูกต้องหรือคุณกำลังบอกว่า hidden-xs- * ไม่ถูกต้อง? คุณกำลังบอกว่า hidden-md-block นั้นถูกต้องในขณะที่ hidden-xs-block นั้นไม่ถูกต้อง? โปรดทำอย่างละเอียดโดยเฉพาะอย่างยิ่งเพราะดูเหมือนว่าคุณ downvoted ความคิดเห็นของฉันเมื่อฉันได้คัดลอก verbiage โดยตรงจาก bootstrap เอกสารออนไลน์ คุณอ้างถึง bootstrap เวอร์ชันใดในความคิดเห็นของคุณ?
Jazimov

2
ตกลงอาจมีการเปลี่ยนแปลงบางอย่างใน bootstrap เพียงแค่ดูคำตอบที่ได้รับการโหวตสูงสุดซึ่งมอบวิธีการแก้ไขที่ถูกต้อง ด้วยองค์ประกอบที่ซ่อนอยู่คุณจะไม่สามารถใช้บล็อกบล็อกแบบอินไลน์และบล็อกอินไลน์ ด้วยการมองเห็นได้คุณจะต้องใช้มัน ฉันคิดว่าฉันกำลังใช้บูต 3.x.Just ลองแก้ปัญหาของคุณสำหรับองค์ประกอบที่ซ่อนตัวเองบนโทรศัพท์ :)
Hammad ข่าน

2

ทั้งหมดhidden-*-up, hidden-*เรียนไม่ทำงานสำหรับฉันดังนั้นฉันเพิ่มตัวเองทำhiddenชั้นก่อนvisible-* (ซึ่งทำงานสำหรับรุ่นบูตปัจจุบัน) มันมีประโยชน์มากถ้าคุณต้องการแสดง div เพียงหน้าจอเดียวและซ่อนไว้สำหรับคนอื่น ๆ ทั้งหมด

CSS:

.hidden {display:none;}

HTML:

<div class="col-xs-12 hidden visible-xs visible-sm">
   <img src="photo.png" style="width:100%">
</div>

1
hidden- * คลาสถูกดร็อปใน bootstrap 4 เบต้าตอนนี้คุณใช้ d- {sm, md, lg, xl} -none
Chris M

ขอบคุณ! ในกรณีที่คำตอบของฉันยังคงใช้ได้สำหรับผู้ที่ไม่ใช่ Beted
Gediminas

2

สำหรับ Bootstrap 4.0 เบต้า (และฉันคิดว่าสิ่งนี้จะยังคงอยู่ในขั้นสุดท้าย) มีการเปลี่ยนแปลง - โปรดระวังว่าคลาสที่ซ่อนอยู่ถูกลบ

ดูเอกสาร: https://getbootstrap.com/docs/4.0/utilities/display/

เพื่อซ่อนเนื้อหาบนมือถือและแสดงบนอุปกรณ์ขนาดใหญ่คุณต้องใช้คลาสต่อไปนี้:

d-none d-sm-block

ชุดชั้นหนึ่งไม่มีอุปกรณ์ทั้งหมดแสดงและชุดที่สองแสดงสำหรับอุปกรณ์ "sm" ขึ้นไป (คุณสามารถใช้ md, lg ฯลฯ แทน sm หากคุณต้องการแสดงบนอุปกรณ์ต่าง ๆ

ฉันขอแนะนำให้อ่านก่อนการโยกย้าย:

https://getbootstrap.com/docs/4.0/migration/#responsive-utilities


มันเป็นเรื่องน่าเศร้าแม้ว่ามันจะไม่ได้ผลตามปกติเมื่อมีการสลับ toggler
David Constantine

0

ใน boostrap 4.1 (เรียกใช้ส่วนย่อยเนื่องจากฉันคัดลอกรหัสตารางทั้งหมดจากเอกสารประกอบ Bootstrap):

.fixed_headers {
  width: 750px;
  table-layout: fixed;
  border-collapse: collapse;
}
.fixed_headers th {
  text-decoration: underline;
}
.fixed_headers th,
.fixed_headers td {
  padding: 5px;
  text-align: left;
}
.fixed_headers td:nth-child(1),
.fixed_headers th:nth-child(1) {
  min-width: 200px;
}
.fixed_headers td:nth-child(2),
.fixed_headers th:nth-child(2) {
  min-width: 200px;
}
.fixed_headers td:nth-child(3),
.fixed_headers th:nth-child(3) {
  width: 350px;
}
.fixed_headers thead {
  background-color: #333;
  color: #FDFDFD;
}
.fixed_headers thead tr {
  display: block;
  position: relative;
}
.fixed_headers tbody {
  display: block;
  overflow: auto;
  width: 100%;
  height: 300px;
}
.fixed_headers tbody tr:nth-child(even) {
  background-color: #DDD;
}
.old_ie_wrapper {
  height: 300px;
  width: 750px;
  overflow-x: hidden;
  overflow-y: auto;
}
.old_ie_wrapper tbody {
  height: auto;
}
<table class="fixed_headers">
  <thead>
    <tr>
      <th>Screen Size</th>
      <th>Class</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Hidden on all</td>
      <td><code class="highlighter-rouge">.d-none</code></td>
    </tr>
    <tr>
      <td>Hidden only on xs</td>
      <td><code class="highlighter-rouge">.d-none .d-sm-block</code></td>
    </tr>
    <tr>
      <td>Hidden only on sm</td>
      <td><code class="highlighter-rouge">.d-sm-none .d-md-block</code></td>
    </tr>
    <tr>
      <td>Hidden only on md</td>
      <td><code class="highlighter-rouge">.d-md-none .d-lg-block</code></td>
    </tr>
    <tr>
      <td>Hidden only on lg</td>
      <td><code class="highlighter-rouge">.d-lg-none .d-xl-block</code></td>
    </tr>
    <tr>
      <td>Hidden only on xl</td>
      <td><code class="highlighter-rouge">.d-xl-none</code></td>
    </tr>
    <tr>
      <td>Visible on all</td>
      <td><code class="highlighter-rouge">.d-block</code></td>
    </tr>
    <tr>
      <td>Visible only on xs</td>
      <td><code class="highlighter-rouge">.d-block .d-sm-none</code></td>
    </tr>
    <tr>
      <td>Visible only on sm</td>
      <td><code class="highlighter-rouge">.d-none .d-sm-block .d-md-none</code></td>
    </tr>
    <tr>
      <td>Visible only on md</td>
      <td><code class="highlighter-rouge">.d-none .d-md-block .d-lg-none</code></td>
    </tr>
    <tr>
      <td>Visible only on lg</td>
      <td><code class="highlighter-rouge">.d-none .d-lg-block .d-xl-none</code></td>
    </tr>
    <tr>
      <td>Visible only on xl</td>
      <td><code class="highlighter-rouge">.d-none .d-xl-block</code></td>
    </tr>
  </tbody>
</table>

https://getbootstrap.com/docs/4.1/utilities/display/#hiding-elements

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.