2013-08-27 23 views
15

CSS nob tutaj ...Przełączanie klas CSS na podstawie rozmiaru ekranu

Patrzę na responsywną strukturę i wyobrażam sobie, w jaki sposób wykonałbym różne zadania.

podstawie rozmiaru ekranu, mają zajęcia dodane do znacznika body, takie jak:

.PhoneVisible, .DesktopVisible, etc ...

Mają też zajęcia, aby linki do przycisków :

.btn, mały przycisk, med-przycisk, duży przycisk

Jestem zaskoczony, w jaki sposób możesz przejść o zmianie CSS. TO ZNACZY. coś w rodzaju:

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

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

Czy musisz ustawić poszczególne opcje indywidualnie?

tj. .PhoneVisible. MojeButtonOpcje {wysokość: 30 pikseli; } ???

Wszystkie porady są mile widziane!

+0

Istnieje frameworków css do tego, to mieszanka CSS i javascript do osiągnięcia tego, używam Twitter Bootstrap, ale jest ich o wiele więcej. Po prostu wyszukaj to w Google. – VsMaX

+0

dlaczego po prostu nie używać zapytań o media? – Prisoner

+0

Spójrz na to pytanie: http://stackoverflow.com/questions/13015719/optional-javascript-execution-based-on-media-queries – frenchie

Odpowiedz

11

Spójrz na to https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Media_queries.

Innym sposobem jest dołączenie zdarzenia zmiany rozmiaru do fragmentu "kodu przełącznika".

coś takiego: 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'); 
    } 
}) 

O ram, spróbuj http://purecss.io/ lub http://getbootstrap.com/

Mam nadzieję, że to pomaga.

+0

Dzięki za fragmenty kodu! Po prostu drapię się po głowie, próbując dowiedzieć się, jak większość ludzi robi takie rzeczy. Patrzę na bootstrap i już mają mnóstwo zapytań o media do zarządzania układem. Wygląda na to, że albo muszę wykonać wiele kontroli i ukryć/pokazać na podstawie rozmiaru, albo zrobić trochę javascriptu. Ponieważ nie zajmowałem się dużo w css, domyślam się, że miałem nadzieję, że był inny sposób;) – FatFingers

25

CSS Media Queries to zdecydowanie droga.

można łatwo oddzielić CSS w oparciu o wielkości przeglądarki, gęstości pikseli itp

Oto lista przykładów z CSS-Tricks.

/* 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 */ 
} 
Powiązane problemy