วิธีลบคุณสมบัติตอบสนองใน Twitter Bootstrap 3


85

เนื่องจาก Bootstrap 3 ไม่มีไฟล์แยกต่างหากสำหรับสไตล์ชีตที่ตอบสนองและมาตรฐานอีกต่อไป ดังนั้นฉันจะลบคุณสมบัติที่ตอบสนองได้อย่างง่ายดายได้อย่างไร


1
โพสต์บล็อกนี้มีข้อมูลบางอย่างเกี่ยวกับการทำและลิงก์ในตอนท้ายของเวอร์ชันที่สมบูรณ์บน Github
bbill

1
@STLDeveloper ถาม 3 ธ.ค. 55 เวลา 16:11 น. Bootstrap 3 มีอายุ 2 วันหรืออย่างใดอย่างหนึ่ง
kanarifugl

1
@STLDeveloper เขาบอกว่าไฟล์ที่ตอบสนองจะไม่แยกจากกันใน Bootstrap 3 โพสต์บล็อกและบัญชี Github ของ Bootstrap อธิบายการเปลี่ยนแปลง
bbill

เอกสาร bootstrap อธิบายวิธีการทำ: getbootstrap.com/getting-started/#disable-responsive
Nicolas Janel

@NicolasJanel ลิงค์ของคุณตายแล้ว
Dmitry

คำตอบ:


104

ในการปิดใช้งานสไตล์ที่ไม่ใช่เดสก์ท็อปคุณเพียงแค่เปลี่ยนโค้ด 4 บรรทัดในไฟล์ variable.less ตั้งค่าเบรกพอยต์ความกว้างของหน้าจอในไฟล์ variable.less ดังนี้:

// เบรกพอยต์การสืบค้นสื่อ
// ------------------------------------------------ -

// หน้าจอเล็กพิเศษ / โทรศัพท์
// หมายเหตุ: เลิกใช้ @ screen-xs และ @ screen-phone ตั้งแต่ v3.0.1
@ screen-xs: 1px;
@ screen-xs-min: @ screen-xs;
@ หน้าจอโทรศัพท์: @ screen-xs-min;

// จอเล็ก / แท็บเล็ต
// หมายเหตุ: เลิกใช้ @ screen-sm และ @ screen-tablet ตั้งแต่ v3.0.1
@ screen-sm: 2px;
@ screen-sm-min: @ screen-sm;
@ หน้าจอแท็บเล็ต: @ screen-sm-min;

// หน้าจอขนาดกลาง / เดสก์ท็อป
// หมายเหตุ: เลิกใช้ @ screen-md และ @ screen-desktop ตั้งแต่ v3.0.1
@ screen-md: 3px;
@ screen-md-min: @ screen-md;
@ หน้าจอเดสก์ท็อป: @ screen-md-min;

// หน้าจอขนาดใหญ่ / เดสก์ท็อปกว้าง
// หมายเหตุ: เลิกใช้ @ screen-lg และ @ screen-lg-desktop ณ v3.0.1
@ screen-lg: 9999px;
@ screen-lg-min: @ screen-lg;
@ screen-lg-desktop: @ screen-lg-min;

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

แก้ไข: chris ตั้งข้อสังเกตว่าคุณสามารถตั้งค่าตัวแปรเหล่านี้ในคอมไพเลอร์ออนไลน์น้อยบนไซต์ bootstrap


7
คุณยังสามารถหยุด navbar ไม่ให้ซ้อนกันได้โดยเปลี่ยนตัวแปร @ grid-float-breakpoint เป็น 1px
คริส

8
ว้าวมันใช้งานได้ในคอมไพเลอร์ออนไลน์บนเว็บไซต์ดาวน์โหลดแบบกำหนดเอง bootstrap
chris

1
ฉันไม่แน่ใจว่าข้างต้นได้ผล หากมีคนกำหนด@media (min-width: @screen-sm-min)(หมายถึงใช้ลักษณะนี้กับเบรกพอยต์ sm และเบรกพอยต์ที่สูงขึ้นทั้งหมดนั่นคือ sm, md, lg) การแทนที่ข้างต้นจะทำลายสมมติฐานนั้นเนื่องจากคำจำกัดความจะไม่ใช้กับ md อีกต่อไป? ฉันตั้งค่า @ screen-xs เป็น 1px และ @ screen-sm เป็น 1px เช่นกัน (นอกเหนือจาก @ screen-md เป็น 1px); ด้วยวิธีนี้จะใช้รูปแบบ xs, sm และ md ทั้งหมดโดยแทนที่ตัวเองด้วยลำดับความสำคัญของลำดับต้นทาง
Martin Suchanek

1
ควรใช้ 1px สำหรับ xs, 2px สำหรับ sm, 3px สำหรับ md และ 9999px สำหรับ lg วิธีนี้ทำให้คุณไม่มีแถบนำทางและโมดอลใน "โหมดมือถือ"
2called- ความโกลาหล

1
ใช้งานได้ แต่แถบเลื่อนแนวนอนของเบราว์เซอร์ยังคงหายไป
Cichy

45

สิ่งนี้ได้อธิบายไว้ในเอกสารเผยแพร่ Bootstrap 3 อย่างเป็นทางการ :

ขั้นตอนในการปิดใช้งานมุมมองที่ตอบสนอง

หากต้องการปิดใช้งานคุณสมบัติตอบสนองให้ทำตามขั้นตอนเหล่านี้ ดูการใช้งานจริงในเทมเพลตที่แก้ไขด้านล่าง

  1. ลบ (หรือไม่เพิ่ม) วิวพอร์ตที่<meta>กล่าวถึงในเอกสาร CSS
  2. ลบความกว้างสูงสุดบน. คอนเทนเนอร์สำหรับระดับกริดทั้งหมดที่มีความกว้างสูงสุด: none! important; และตั้งค่าความกว้างปกติเช่น width: 970px; ตรวจสอบให้แน่ใจว่าสิ่งนี้เกิดขึ้นหลังจาก Bootstrap CSS เริ่มต้น คุณสามารถเลือกที่จะหลีกเลี่ยง! important ด้วยการสืบค้นสื่อหรือตัวเลือกบางอย่าง
  3. หากใช้แถบนำทางให้ยกเลิกการยุบและขยายแถบการนำทางทั้งหมด (แสดงมากเกินไปที่นี่ดังนั้นโปรดดูตัวอย่าง)
  4. สำหรับการจัดวางแบบกริดให้ใช้คลาส. col-xs- * นอกเหนือจากหรือแทนคลาสขนาดกลาง / ใหญ่ ไม่ต้องกังวลกริดอุปกรณ์ขนาดเล็กพิเศษจะปรับขนาดได้ตามความละเอียดทั้งหมดดังนั้นคุณจึงตั้งค่าไว้ที่นั่น

คุณจะยังคงต้องใช้ Respond.js สำหรับ IE8 (เนื่องจากข้อความค้นหาสื่อของเรายังคงอยู่ที่นั่นและจำเป็นต้องหยิบขึ้นมา) นี่เป็นการปิดใช้งาน "ไซต์บนมือถือ" ของ Bootstrap

ดูตัวอย่างได้ที่GetBootstrap.com/examples/non-responsive/


5
สิ่งนี้ไม่ได้ผลสำหรับฉัน องค์ประกอบบางอย่างตอบสนองต่อความกว้างของพอร์ตมุมมอง
Ziyan Junaideen

@ZiyanJunaideen คุณคงพลาดอะไรไป คุณสามารถจัดหา jsfiddle ได้หรือไม่?
Adrien Be

1
สิ่งนี้ได้ผลสำหรับฉัน ฉันคิดว่าควรทำเครื่องหมายว่าเป็นคำตอบที่ถูกต้อง
Dave Stewart

20

ฉันเพิ่งคิดออกเมื่อเร็ว ๆ นี้ว่าการทำให้ bootstrap v3.1.1 ของคุณไม่ตอบสนองนั้นง่ายเพียงใด ซึ่งรวมถึงแถบนำทางเพื่อไม่ให้ทำงานร่วมกัน ฉันไม่รู้ว่าทุกคนรู้เรื่องนี้หรือไม่ แต่ฉันต้องการแบ่งปัน

สองขั้นตอนสู่ Bootsrap v3.1.1 ที่ไม่ตอบสนอง

ขั้นแรกสร้างชื่อไฟล์ css เป็น non-responsive.css ตรวจสอบให้แน่ใจว่าได้ต่อท้ายเข้ากับธีมหรือลิงก์ของคุณทันทีหลังจากไฟล์ bootstrap css

ประการที่สองวางรหัสนี้ใน non-responsive.css ของคุณ:

/* Template-specific stuff
 *
 * Customizations just for the template; these are not necessary for anything
 * with disabling the responsiveness.
 */

/* Account for fixed navbar */
body {
  min-width: 970px;
  padding-top: 70px;
  padding-bottom: 30px;
}

/* Finesse the page header spacing */
.page-header {
  margin-bottom: 30px;
}
.page-header .lead {
  margin-bottom: 10px;
}


/* Non-responsive overrides
 *
 * Utilitze the following CSS to disable the responsive-ness of the container,
 * grid system, and navbar.
 */

/* Reset the container */
.container {
  width: 970px;
  max-width: none !important;
}

/* Demonstrate the grids */
.col-xs-4 {
  padding-top: 15px;
  padding-bottom: 15px;
  background-color: #eee;
  background-color: rgba(86,61,124,.15);
  border: 1px solid #ddd;
  border: 1px solid rgba(86,61,124,.2);
}

.container .navbar-header,
.container .navbar-collapse {
  margin-right: 0;
  margin-left: 0;
}

/* Always float the navbar header */
.navbar-header {
  float: left;
}

/* Undo the collapsing navbar */
.navbar-collapse {
  display: block !important;
  height: auto !important;
  padding-bottom: 0;
  overflow: visible !important;
}

.navbar-toggle {
  display: none;
}
.navbar-collapse {
  border-top: 0;
}

.navbar-brand {
  margin-left: -15px;
}

/* Always apply the floated nav */
.navbar-nav {
  float: left;
  margin: 0;
}
.navbar-nav > li {
  float: left;
}
.navbar-nav > li > a {
  padding: 15px;
}

/* Redeclare since we override the float above */
.navbar-nav.navbar-right {
  float: right;
}

/* Undo custom dropdowns */
.navbar .navbar-nav .open .dropdown-menu {
  position: absolute;
  float: left;
  background-color: #fff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, .15);
  border-width: 0 1px 1px;
  border-radius: 0 0 4px 4px;
  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
          box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
}
.navbar-default .navbar-nav .open .dropdown-menu > li > a {
  color: #333;
}
.navbar .navbar-nav .open .dropdown-menu > li > a:hover,
.navbar .navbar-nav .open .dropdown-menu > li > a:focus,
.navbar .navbar-nav .open .dropdown-menu > .active > a,
.navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
.navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
  color: #fff !important;
  background-color: #428bca !important;
}
.navbar .navbar-nav .open .dropdown-menu > .disabled > a,
.navbar .navbar-nav .open .dropdown-menu > .disabled > a:hover,
.navbar .navbar-nav .open .dropdown-menu > .disabled > a:focus {
  color: #999 !important;
  background-color: transparent !important;
}

เท่านี้ก็สนุกแล้ว .. ^^

ที่มา: ไม่ใช่ responsive.cssจากตัวอย่างที่ getbootstrap.com


2
ว้าวดีมาก! ขอบคุณ :)
Ronald Araújo

2
โปรดเชื่อมโยงไปยังแหล่งที่มาของรหัสของคุณเมื่อคุณคัดลอก / วางที่นี่
ba0708

11

ที่มาจาก: http://getbootstrap.com/getting-started/#disable-responsive

  1. ละเว้นวิวพอร์ตที่<meta>กล่าวถึงในเอกสาร CSS
  2. แทนที่widthบน.containerสำหรับแต่ละชั้นของกริดด้วยความกว้างเดียวเช่นwidth: 970px !important;ตรวจสอบให้แน่ใจว่าสิ่งนี้มาหลังจาก Bootstrap CSS เริ่มต้น คุณสามารถเลือกที่จะหลีกเลี่ยงการ!importantค้นหาด้วยสื่อหรือตัวเลือกบางอย่าง
  3. หากใช้แถบนำทางให้ลบพฤติกรรมการยุบและขยายแถบนำทางทั้งหมดออก
  4. สำหรับโครงร่างแบบกริดให้ใช้.col-xs-*คลาสนอกเหนือไปจากหรือแทนที่คลาสขนาดกลาง / ใหญ่ ไม่ต้องกังวลตารางอุปกรณ์ขนาดเล็กพิเศษจะปรับขนาดตามความละเอียดทั้งหมด

11

ฉันต้องการลบคุณสมบัติตอบสนอง Bootstrap โดยสิ้นเชิงฉันได้ลบล้างพฤติกรรมด้วยตัวอย่างต่อไปนี้:

.container {
    width: 960px !important;
}

@media (min-width: 1px) {
  .container {
    max-width: 940px;
  }
  .col-lg-1,
  .col-lg-2,
[...]

ตัวอย่างเต็ม: https://gist.github.com/ivanminutillo/8557293


5

คุณสามารถทำได้โดยใช้ Bootstrap 3 CSS พร้อมคุณสมบัติที่ไม่ตอบสนอง

https://github.com/bassjobsen/non-responsive-tb3


1
ดี แต่แย่เกินไปมันเป็นชุด bootstrap css ที่สมบูรณ์ คงจะดีไม่น้อยหากมี css เพียงเพื่อปิดใช้งานคุณสมบัติตอบสนอง สมมติว่าเราตั้งชื่อว่า "nonresponsive.css" ด้วยวิธีนี้หากเรารวม nonresponsive.css การปรับเปลี่ยนการตอบสนองจะถูกปิดใช้งาน ถ้าลบ css นั้นการตอบสนองจะถูกเรียกคืน
user1995781

1
คุณสามารถทำสิ่งที่คุณแนะนำได้โดยเพิ่มที่ส่วนหัว bootstrap.css ดั้งเดิมและ bootstrap.css ที่ไม่ตอบสนองที่โพสต์ไว้ในลิงค์ด้านบน เห็นได้ชัดว่าคุณสามารถเปลี่ยนชื่อได้ตามที่คุณต้องการ แสดงความคิดเห็นในบรรทัดแล้วมันจะทำงานตามที่ต้องการ
ɐsɹǝʌǝɔıʌ

1
ใช่ แต่นั่นจะแทนที่ธีม bootstrap ที่กำหนดเองทั้งหมดของฉัน ตัวอย่างเช่นถ้าฉันใช้ธีมจากbootswatch.comมันจะถูกแทนที่ด้วย css นั้น
user1995781

1
แน่นอน. หากคุณใช้ธีมที่กำหนดเองบน bootstrap คุณจะสูญเสียการปรับแต่งทั้งหมดของคุณ แต่ไม่ใช่ในกรณีที่คุณใช้ bootstrap CSS ดั้งเดิม
ɐsɹǝʌǝɔıʌ

0

หากคุณต้องการเว็บไซต์ขนาดคงที่ควรจะค่อนข้างง่าย:

// Override container sizes
@container-sm:	700px;
@container-md:	700px;
@container-lg:	700px;

// Fixate media queries to tablet view only (lower viewports set to 0px, desired one to 1px, and the higher to ~9999px)

@screen-xs-min: 0px;
@screen-sm-min:	1px;
@screen-md-min: 9999px;
@screen-lg-min: 9999px;

// Disable responsive features such as navbar-collapse
@grid-float-breakpoint: 9999px;

เว้นแต่คุณจะใช้. container-fluid ให้เพิ่ม:

.container-fluid {
    width: 700px;
}
body {
    width: 700px + @general-min-width;
}

-2

ดูที่www.goo.gl/2SIOJjเป็นงานระหว่างทำ แต่อาจช่วยคุณได้

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

        <div class="col-xs-6" style="text-align:center;"><span class="make_desktop">Desktop</span></div>
        <div class="col-xs-6" style="text-align:center;"><span class="make_responsive">Mobile</span></div>

function setMobDeskCookie(c_name, value, exdays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value = escape(value) + ((exdays === null) ? "" : "; expires=" + exdate.toUTCString());
    document.cookie = c_name + "=" + c_value + "; path=/";
    window.location.reload();
}

$(function() {
    $(".make_desktop").click(function() {
        setMobDeskCookie('deskmob', 1, 3650);
    });
    $(".make_responsive").click(function() {
        setMobDeskCookie('deskmob', 0, 3650);
    });
});`enter code here`

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

และฉันยังสร้าง non-responsive.css ที่บังคับให้กริดรักษาเวอร์ชันหน้าจอขนาดใหญ่

ในกรณีที่คุณเลือกมือถือฉันจะโหลด / เสียงสะท้อน

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">  
<!-- Bootstrap core CSS and JS -->
        <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
        <link href="/themes/responsive_lime/bootstrap-3_1_1/css/bootstrap.css" rel="stylesheet">
        <script src="/themes/responsive_lime/bootstrap-3_1_1/js/bootstrap.min.js"></script>

and load these stylesheets
<link rel="stylesheet" type="text/css" media="screen,print" href="/themes/responsive_lime/css/style.css?modified=14-06-2014-12-27-40" />
<link rel="stylesheet" type="text/css" media="screen,print" href="/themes/responsive_lime/css/style-responsive.css?modified=1402758346" />

ในกรณีที่คุณเลือกเดสก์ท็อปฉันจะโหลด / echo

<meta name="viewport" content="width=1024">    


        <!-- Bootstrap core CSS and JS -->
        <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
        <link href="/themes/responsive_lime/bootstrap-3_1_1/css/bootstrap.css" rel="stylesheet">
        <script src="/themes/responsive_lime/bootstrap-3_1_1/js/bootstrap.min.js"></script>

        <!-- Main CSS -->
        <link rel="stylesheet" type="text/css" media="screen,print" href="/themes/responsive_lime/css/style.css?modified=14-06-2014-12-27-40" />
<link rel="stylesheet" type="text/css" media="screen,print" href="/themes/responsive_lime/css/non-responsive.css?modified=1402758635" />

non-responsive.css เป็นสิ่งที่แทนที่สำหรับ bootstrap ข้อกังวลของฉันคือเลย์เอาต์ดังนั้นจึงมีไม่มากในนั้นเนื่องจากฉันจัดการการนำทางด้วยวิธีของฉันเองดังนั้น css สำหรับมันและบิตอื่น ๆ อยู่ในไฟล์ css อื่นของฉัน

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

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