2013-08-27 22 views
15

CSS nob hier ...Switching CSS-Klassen basierend auf der Bildschirmgröße

Ich schaue mir ein reaktionsfähiges Framework und vorstellen, wie ich verschiedene Aufgaben erfüllen würde.

Basierend auf der Größe des Bildschirms, haben sie an den Körper Tag hinzugefügt Klassen wie:

.PhoneVisible, .DesktopVisible, etc ...

Sie auch Klassen Links in Schaltflächen machen :

.btn, kleine Taste, med-Taste, Groß Taste

ich bin verwirrt, wie Sie über das Ändern Sie Ihre CSS gehen würde. I.E. etwas wie:

<a href="#" class="MyButtonOptions">XXXX</> 

.PhoneVisible .MyButtonOptions { btn small-button } 
.TabletVisible .MyButtonOptions { btn med-button } 
.DesktopVisible .MyButtonOptions { btn large-button } 

Müssen Sie die verschiedenen Optionen individuell einstellen?

d. H. .PhoneVisible .MyButtonOptions {height: 30px; } ???

Alle Ratschläge geschätzt!

+0

es gibt css frameworks für das, das ist mix aus CSS und javascript, um es zu erstellen, ich benutze Twitter Bootstrap, aber es gibt viele mehr. Google es einfach. – VsMaX

+0

warum nicht einfach Medienabfragen verwenden? – Prisoner

+0

Werfen Sie einen Blick auf diese Frage: http://stackoverflow.com/questions/13015719/optional-javascript-execution-based-on-media-queries – frenchie

Antwort

11

Werfen Sie einen Blick auf diese https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Media_queries.

Eine andere Möglichkeit besteht darin, das resize-Ereignis mit einem Stück "switch code" zu verknüpfen.

Etwas wie folgt aus: http://jsfiddle.net/s5dvb/

HTML

<div id="body" class="limit400"> 
    <h1>Hey :D</h1> 
</div> 

CSS

.limit400 h1 { font-size:10px; } 
.limit1200 h1 { font-size:50px; } 

JS

$(window).on('resize', function() { 
    if($(window).height() > 400) { 
     $('#body').addClass('limit1200'); 
     $('#body').removeClass('limit400'); 
    }else{ 
     $('#body').addClass('limit400'); 
     $('#body').removeClass('limit1200'); 
    } 
}) 

Über den Rahmen, versuchen http://purecss.io/ oder http://getbootstrap.com/

Ich hoffe, es hilft.

+0

Danke für die Code-Schnipsel! Ich kratze nur am Kopf und versuche herauszufinden, wie die meisten Leute so etwas tun. Ich schaue Bootstrap an, und sie haben bereits eine Menge Medienabfragen, um das Layout zu verwalten. Scheint, als ob ich entweder mehrere Steuerelemente erstellen und/oder basierend auf der Größe verstecken oder Javascript ausführen muss. Da ich nicht viel mit CSS zu tun habe, denke ich, ich hatte gehofft, es gäbe einen anderen Weg;) – FatFingers

25

CSS Media Queries sind definitiv der Weg zu gehen.

Sie können einfach Ihre CSS auf die Browsergröße basierend trennen, Pixeldichte usw.

Hier ist eine Liste von Beispielen aus CSS-Tricks ist.

/* Smartphones (portrait and landscape) ----------- */ 
@media only screen 
and (min-device-width : 320px) 
and (max-device-width : 480px) { 
    /* Styles */ 
} 

/* Smartphones (landscape) ----------- */ 
@media only screen 
and (min-width : 321px) { 
    /* Styles */ 
} 

/* Smartphones (portrait) ----------- */ 
@media only screen 
and (max-width : 320px) { 
    /* Styles */ 
} 

/* iPads (portrait and landscape) ----------- */ 
@media only screen 
and (min-device-width : 768px) 
and (max-device-width : 1024px) { 
    /* Styles */ 
} 

/* iPads (landscape) ----------- */ 
@media only screen 
and (min-device-width : 768px) 
and (max-device-width : 1024px) 
and (orientation : landscape) { 
    /* Styles */ 
} 

/* iPads (portrait) ----------- */ 
@media only screen 
and (min-device-width : 768px) 
and (max-device-width : 1024px) 
and (orientation : portrait) { 
    /* Styles */ 
} 

/* Desktops and laptops ----------- */ 
@media only screen 
and (min-width : 1224px) { 
    /* Styles */ 
} 

/* Large screens ----------- */ 
@media only screen 
and (min-width : 1824px) { 
    /* Styles */ 
} 

/* iPhone 4 ----------- */ 
@media 
only screen and (-webkit-min-device-pixel-ratio : 1.5), 
only screen and (min-device-pixel-ratio : 1.5) { 
    /* Styles */ 
} 
Verwandte Themen