使用 css3 的响应式设计

Posted

技术标签:

【中文标题】使用 css3 的响应式设计【英文标题】:responsive design using css3 【发布时间】:2017-12-05 01:21:58 【问题描述】:

我正在尝试使用媒体查询。我在脑海中包含了 meta name="viewport" content="width=device-width, initial-scale=1"> 和 @media (min-width: 768px) 背景颜色:红色; 在我的 CSS 中。有什么我错过的,因为这不起作用。

【问题讨论】:

【参考方案1】:

您的媒体查询没问题,但您的背景颜色只是一个 CSS 属性,您必须指定关注哪个元素:

@media (min-width: 768px) 
    html, body 
        background-color: red;
    

【讨论】:

【参考方案2】:

您将此标记为使用 SASS 以及响应式设计,因此我认为提供更详细、面向 SASS 的答案是合适的,以防其他人将来有相关问题。

首先,@migli 所说的一切都是正确的——你必须确保你的目标是一个特定的 DOM 元素以在你的 CSS 中设置样式。使用 SASS 的主要好处之一是它允许您保持代码 DRY,并且创建断点使编写媒体查询变得超级简单。

为此,请设置一个 @mixin 来确定您的特定断点阈值(例如,这是 Tim Knight 的 easy-to-follow general-purpose example:

@mixin breakpoint($class) 
  @if $class == xs 
    @media (max-width: 767px)  @content; 
  

  @else if $class == sm 
    @media (min-width: 768px)  @content; 
  

  @else if $class == md 
    @media (min-width: 992px)  @content; 
  

  @else if $class == lg 
    @media (min-width: 1200px)  @content; 
  
  

现在,当您编辑 SASS 文件时,您可以划分代码以保持 DRY。例如,下面的 SASS:

body 
  height: 100%;
  width: 100%;
  font-size: 1.8em;
  @include breakpoint(md) 
    font-size: 1.5em;
  
  

输出

body 
  height: 100%;
  width: 100%;
  font-size: 1.8em;
  

@media (min-width: 992px) 
  body 
    font-size: 1.5em;
    

这是一个小例子,但随着项目规模和范围的扩大,节省击键次数和提高可读性将大大提高您的工作效率(和理智!)。

【讨论】:

以上是关于使用 css3 的响应式设计的主要内容,如果未能解决你的问题,请参考以下文章

01《响应式Web设计:HTML5和CSS3实战》

电子书:响应式Web设计:HTML5和CSS3实战

“使用 html5 和 css3 的响应式网页设计”中的 inline 和 inline-block 区别

HTML5+CSS3的响应式网页设计:自动适应屏幕宽度

笔记丨Web丨CSS3丨(十四)终篇:补缺+响应式网页设计

用3个步骤实现响应式网页设计....