Da Bootstrap 3 non ci sono più file separati per fogli di stile reattivi e standard. Quindi come posso rimuovere facilmente le funzionalità reattive?
Da Bootstrap 3 non ci sono più file separati per fogli di stile reattivi e standard. Quindi come posso rimuovere facilmente le funzionalità reattive?
Risposte:
Per disattivare gli stili non desktop è sufficiente modificare 4 righe di codice nel file variables.less. Imposta i punti di interruzione della larghezza dello schermo nel file variables.less in questo modo:
// Media interroga i punti di interruzione // ------------------------------------------------ - // Schermo / telefono extra piccolo // Nota: @ screen-xs e @ screen-phone obsoleti a partire dalla v3.0.1 @ screen-xs: 1px; @ screen-xs-min: @ screen-xs; @ screen-phone: @ screen-xs-min; // Piccolo schermo / tablet // Nota: @ screen-sm e @ screen-tablet obsoleti a partire dalla v3.0.1 @ screen-sm: 2px; @ screen-sm-min: @ screen-sm; @ screen-tablet: @ screen-sm-min; // Schermo medio / desktop // Nota: @ screen-md e @ screen-desktop obsoleti a partire dalla v3.0.1 @ screen-md: 3px; @ screen-md-min: @ screen-md; @ screen-desktop: @ screen-md-min; // Schermo grande / desktop ampio // Nota: @ screen-lg e @ screen-lg-desktop obsoleti a partire dalla v3.0.1 @ screen-lg: 9999px; @ screen-lg-min: @ screen-lg; @ screen-lg-desktop: @ screen-lg-min;
Questo imposta la larghezza minima sulla media query in stile desktop su un valore inferiore in modo che venga applicata a tutte le larghezze dello schermo. Grazie a 2calledchaos per il miglioramento! Alcuni stili di base sono definiti negli stili mobili, quindi dobbiamo essere sicuri di includerli.
Modifica: chris nota che è possibile impostare queste variabili nel compilatore less online sul sito bootstrap
@media (min-width: @screen-sm-min)
(il che significa applicare questo stile a sm breakpoint e tutti i breakpoint superiori; cioè, sm, md, lg), le sovrascritture di cui sopra infrangerebbero quell'ipotesi, poiché la definizione non sarebbe più applicata a md? Ho impostato @ screen-xs su 1px e @ screen-sm su 1px (oltre a @ screen-md su 1px); in questo modo, vengono applicati tutti gli stili xs, sm e md, sovrascrivendo se stessi con la precedenza dell'ordine di origine.
Questo è spiegato nei documenti ufficiali di rilascio di Bootstrap 3 :
Passaggi per disabilitare le visualizzazioni reattive
Per disabilitare le funzioni reattive, segui questi passaggi. Guardalo in azione nel modello modificato di seguito.
- Rimuovi (o semplicemente non aggiungere) il riquadro di visualizzazione
<meta>
menzionato nei documenti CSS- Rimuovi la larghezza massima dal .container per tutti i livelli della griglia con larghezza massima: nessuna! Importante; e imposta una larghezza regolare come width: 970px ;. Assicurati che questo venga dopo il Bootstrap CSS predefinito. Facoltativamente, puoi evitare! Important con le media query o alcuni selector-fu.
- Se usi le navbar, annulla tutto il comportamento di compressione ed espansione della barra di navigazione (questo è troppo da mostrare qui, quindi guarda l'esempio).
- Per i layout a griglia, usa le classi .col-xs- * in aggiunta o al posto di quelle medio / grandi. Non preoccuparti, la griglia del dispositivo extra-piccola si adatta a tutte le risoluzioni, quindi sei lì.
Avrai ancora bisogno di Respond.js per IE8 (poiché le nostre query multimediali sono ancora presenti e devono essere raccolte). Questo disabilita solo il "sito mobile" di Bootstrap.
Vedi anche l'esempio su GetBootstrap.com/examples/non-responsive/
Ultimamente ho capito quanto sia facile rendere il tuo bootstrap v3.1.1 non reattivo. Ciò include le barre di navigazione per non collpase. Non so se tutti lo sanno ma mi piacerebbe condividerlo.
Due passaggi per un Bootsrap non reattivo v3.1.1
Innanzitutto, crea un file css denominalo come non-responsive.css. Assicurati di aggiungerlo ai temi o al collegamento subito dopo i file css di bootstrap.
In secondo luogo, incolla questo codice nel tuo 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;
}
Questo è tutto e divertiti .. ^^
Fonte: non responsive.css dal esempio a getbootstrap.com .
Fonte da: http://getbootstrap.com/getting-started/#disable-responsive
<meta>
menzionato nei documenti CSSwidth
sul .container
per ogni livello di griglia con una singola larghezza, ad esempio width: 970px !important;
Assicurarsi che questo viene dopo il CSS di default Bootstrap. Opzionalmente puoi evitare le !important
query con media o alcuni selector-fu..col-xs-*
classi in aggiunta o al posto di quelle medio / grandi. Non preoccuparti, la griglia del dispositivo extra-piccola si adatta a tutte le risoluzioni.Avevo bisogno di rimuovere completamente la funzione reattiva di Bootstrap, ho finito per sovrascrivere il comportamento con il seguente frammento:
.container {
width: 960px !important;
}
@media (min-width: 1px) {
.container {
max-width: 940px;
}
.col-lg-1,
.col-lg-2,
[...]
Snippet completo: https://gist.github.com/ivanminutillo/8557293
Puoi farlo utilizzando Bootstrap 3 CSS con funzionalità non reattive
Se vuoi un sito web di dimensioni fisse, dovrebbe essere abbastanza semplice:
// 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;
A meno che tu non stia usando .container-fluid, aggiungi anche:
.container-fluid {
width: 700px;
}
body {
width: 700px + @general-min-width;
}
Guarda www.goo.gl/2SIOJj , è un lavoro in corso ma potrebbe aiutarti.
Utilizzo i cookie per definire se desidero la versione desktop o reattiva. Nel piè di pagina della pagina puoi trovare due intervalli e in generale.js è lo script per gestire i clic.
<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`
ho finito per dividere tutto il mio css personalizzato in due file non uso la navigazione bootstrap ma la mia quindi questa è la maggior parte dei miei stili personalizzati, quindi non risolverà l'intero problema ma funziona per me
e ho anche creato non-responsive.css che costringe la griglia a mantenere la versione a grande schermo
nel caso in cui si selezioni mobile, caricherò / echo
<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" />
nel caso in cui selezioni desktop, caricherò / 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" />
il non-responsive.css è quello che ha override per bootstrap la mia preoccupazione è il layout quindi non c'è molto lì, dato che gestisco la navigazione a modo mio quindi css per esso e gli altri bit sono nei miei altri file css
tieni presente che la mia configurazione si comporta come desktop anche sui browser desktop a differenza di alcune altre soluzioni che ho visto che ignorerà solo il viewport che sembra aver funzionato solo sui dispositivi mobili per me