2013-08-27 126 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 */ 
}