42

CSS newby在这里...

我正在研究一个响应式框架并想象我将如何完成不同的任务。

根据屏幕的大小,它们在 body 标签中添加了类,例如:

.PhoneVisible、.DesktopVisible 等...

他们也有类来制作按钮的链接:

.btn、小按钮、中按钮、大按钮

我对您将如何更改 CSS 感到困惑。IE 类似:

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

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

您是否必须单独设置不同的选项?

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

所有建议表示赞赏!

4

3 回答 3

65

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 */
}
于 2013-08-28T00:00:23.270 回答
23

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

另一种方法是将调整大小事件附加一些“切换代码”。

像这样的东西: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/

希望能帮助到你。

于 2013-08-27T23:33:41.960 回答
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%;
  }
}

于 2021-05-05T15:11:39.423 回答