html - 样式标签中 CSS 的顺序

标签 html css responsive-design media-queries

<分区>

我参加了一个 html/css 类(class)的测验,要求我使用媒体查询根据屏幕尺寸重新组织一些 div。他们提供的我应该添加的代码是这样的:

<style type="text/css">
  /*
  These are the responsive styles. Throw some breakpoints in here!
  */
  .container {
    display: flex;
    flex-wrap: wrap;
  }

  .box {
    width: 100%;
  }

  @media screen and (max-width: 400px) {
    .dark_blue {
      color: blue;
    }
  }
</style>

还有很多,但这是相关的部分。我想到了这个:

<style type="text/css">
  /*
  These are the responsive styles. Throw some breakpoints in here!
  */
  @media screen and (min-width: 450px) {
   .light_blue, .green {
    width: 50%;
    }
  }
  @media screen and (min-width: 550px) {
    .red {
      width: 33.3%;
    }
    .orange {
      width: 66.6%;
    }
  }
  @media screen and (min-width: 800px) {
    .container {
      width: 800px;
      margin-left: auto;
      margin-right: auto;
    }
  }

  .container {
    display: flex;
    flex-wrap: wrap;
  }

  .box {
    width: 100%;
  }

  @media screen and (max-width: 400px) {
    .dark_blue {
      color: blue;
    }
  }
</style>

但它实际上什么也没做。页面完全没有变化。我最终放弃了,看了看答案,他们写的 CSS 和我写的完全一样,只是顺序不同:

<style type="text/css">
  /*
  These are the responsive styles. Throw some breakpoints in here!
  */
  .container {
    display: flex;
    flex-wrap: wrap;
  }

  .box {
    width: 100%;
  }

  @media screen and (min-width: 450px) {
   .light_blue, .green {
    width: 50%;
    }
  }
  @media screen and (min-width: 550px) {
    .red {
      width: 33.3%;
    }
    .orange {
      width: 66.6%;
    }
  }
  @media screen and (min-width: 800px) {
    .container {
      width: 800px;
      margin-left: auto;
      margin-right: auto;
    }
  }

  @media screen and (max-width: 400px) {
    .dark_blue {
      color: blue;
    }
  }
</style>

所以我的问题是,这里是如何应用订单的,为什么我的代码什么也没做?

最佳答案

CSS代表级联样式表,所以规则会被解释成级联的,所以如果你有

.blue { color: blue; }

然后在同一个 CSS 文件中放置

.blue { color: pink; }

它会将 .bluecolor 覆盖为 pink

对于媒体查询,您希望先添加默认样式,然后再添加媒体查询,因为它会先检测媒体查询,然后只使用这些规则而不是默认样式。

因为浏览器将能够检测到(例如)您的设备 min-width800px,所以它会选择这些样式而不会费心去覆盖它们当文件在您的默认样式中被进一步解释时

很难解释。希望这样可以解决问题

关于html - 样式标签中 CSS 的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37495657/

相关文章:

javascript - 如何在超过特定窗口宽度后从对象中删除类

javascript - 两个 <div> 之间的 CSS 翻转过渡

css - Mac 浏览器的兼容性问题

javascript - 在 HTML 电子邮件 Listserv 中滚动点击事件

css - 对不同的元素或不同的宽度进行多个媒体查询更好吗?

html - 当窗口宽度较高时,使视口(viewport)认为最大宽度为 1200px

javascript - 如何使用cookies构建登录页面?

css - Aptana Studio 3.0.7 - CSS 自动完成仅来自 2. 行

javascript - 如何使 dhtmlx 布局响应?

javascript - 如何让 div 在点击时加载而不是在页面加载时加载?