2013-08-27 169 views
15

CSS諾布在這裏...根據屏幕尺寸切換CSS類

我正在尋找一個響應式框架和想象我將如何完成不同的任務。

根據屏幕的大小,他們紛紛加入到body標籤類,如:

.PhoneVisible,.DesktopVisible等..

他們也有類,可以鏈接到按鈕:

.btn,小按鈕,MED-按鈕,大按鈕

我對你將如何去改變你的CSS不解。 I.E.例如:

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

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

您是否必須單獨設置不同的選項?

即.PhoneVisible .MyButtonOptions {height:30px; } ???

所有建議表示讚賞!

+0

有CSS的框架,這是CSS和JavaScript的混合來實現它,我使用Twitter Bootstrap,但還有更多。只是谷歌它。 – VsMaX

+0

爲什麼不只是使用媒體查詢? – Prisoner

+0

看看這個問題:http://stackoverflow.com/questions/13015719/optional-javascript-execution-based-on-media-queries – frenchie

回答

11

看看這個https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Media_queries

另一種方法是將resize事件添加一些「切換代碼」。

事情是這樣的: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'); 
    } 
}) 

關於框架,嘗試http://purecss.io/http://getbootstrap.com/

希望它有幫助。

+0

感謝您的代碼片段!試圖弄清楚大多數人是如何做這種事情的。我正在尋找bootstrap,他們已經有一大堆媒體查詢來管理佈局。似乎我要麼做出多個控件,並根據大小隱藏/顯示,或者做一些JavaScript。由於我對css沒有太多的瞭解,我猜想我希望有另一種方式;) – FatFingers

25

CSS媒體查詢是定義的方法。

您可以輕鬆地分離基於瀏覽器的大小,像素密度等

你的CSS下面是從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 */ 
}