CSS nob here ...
我正在寻找一个响应式框架,并想象我将如何完成不同的任务。
根据屏幕大小,他们将类添加到body标签中,例如:
.PhoneVisible,.DesktopVisible等...
他们也有类来链接到按钮:
.btn,小按钮,中按按钮,大按钮
我对你如何改变你的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 :(得分:40)
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 */
}
答案 1 :(得分: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/
希望它有所帮助。
答案 2 :(得分:0)
就像 Nej Kutcharian 发布的那样,您可以使用上述方法并将其与课堂场景联系起来。您无需切换类,而是使用相同的类并根据屏幕大小更改其应用的样式。
如下所示,任何具有“adjust-me-based-on-size”类的元素都会有一个 margin-left 和 margin-right ,它们的值取决于媒体大小,所以默认值为 15% 但如果屏幕在 800 到 1200 (px) 之间,它将改为 10%,而小于 800px 将没有右边距,左边距为 5%。
.adjust-me-based-on-size{
margin-left: 15%;
margin-right: 15%;
}
@media only screen and (min-width: 800) and (max-width: 1200) {
.adjust-me-based-on-size {
margin-left: 10%;
margin-right: 10%;
}
}
@media only screen and (max-width: 800px) {
.adjust-me-based-on-size {
margin-left: 5%;
margin-right: 0%;
}
}