CodeGym/课程/Frontend SELF ZH/媒体查询中的变量

媒体查询中的变量

可用

4.1 基本概念

CSS 变量和媒体查询是创建自适应网页设计的强大工具,可以自动适应不同屏幕尺寸和设备。变量允许集中管理样式,而媒体查询允许根据条件(如屏幕宽度)更改这些样式。

基本概念

  • CSS 变量:允许设置可以在整个 CSS 代码中重复使用的值。它们可以在不同的上下文中(如媒体查询中)更改,这使得它们对响应式设计特别有用。
  • 媒体查询:允许根据设备的特性(如屏幕宽度或高度)应用 CSS 样式。这允许根据不同设备调整网页的外观和行为。

在媒体查询中使用变量

可以在媒体查询中使用 CSS 变量来根据条件更改样式值。这允许创建更加灵活且易于维护的自适应设计。

媒体查询中使用变量的示例:

CSS
:root {
  --main-bg-color: #f0f0f0;
  --main-text-color: #333;
  --primary-color: #3498db;
  --font-size: 16px;
}

body {
  background-color: var(--main-bg-color);
  color: var(--main-text-color);
  font-size: var(--font-size);
}

a {
  color: var(--primary-color);
}

@media (max-width: 600px) {
  :root {
    --main-bg-color: #e0e0e0;
    --font-size: 14px;
  }
}

@media (min-width: 601px) and (max-width: 1200px) {
  :root {
    --main-bg-color: #d0d0d0;
    --font-size: 15px;
  }
}

@media (min-width: 1201px) {
  :root {
    --main-bg-color: #f0f0f0;
    --font-size: 16px;
  }
}
HTML
<body>
  <p>This is a paragraph with a link to <a href="#">Example.com</a>.</p>
</body>

解释:

在这个例子中,变量的值根据屏幕宽度变化:

  • 对于宽度不超过600px的屏幕,背景颜色变为更深的阴影,字体大小减小。
  • 对于宽度在601px到1200px之间的屏幕,背景变为中间色调,字体大小略增大。
  • 对于宽度超过1200px的屏幕,应用原始变量值。

4.2 媒体查询中变量的例子

例子 1: 响应式的内边距和字体大小

CSS
:root {
  --padding: 20px;
  --font-size: 16px;
}

.container {
  padding: var(--padding);
  font-size: var(--font-size);
}

@media (max-width: 600px) {
  :root {
    --padding: 10px;
    --font-size: 14px;
  }
}

@media (min-width: 601px) and (max-width: 1200px) {
  :root {
    --padding: 15px;
    --font-size: 15px;
  }
}

@media (min-width: 1201px) {
  :root {
    --padding: 20px;
    --font-size: 16px;
  }
}
HTML
<div class="container">
  <p>This is a responsive container with adaptive padding and font size.</p>
</div>

解释:

  • 在这个例子中,.container 的内边距和字体大小根据屏幕宽度变化

例子 2: 使用变量和媒体查询进行网站主题化

CSS
:root {
  --bg-color: #ffffff;
  --text-color: #000000;
  --link-color: #3498db;
}

body {
  background-color: var(--bg-color);
  color: var(--text-color);
}

a {
  color: var(--link-color);
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg-color: #000000;
    --text-color: #ffffff;
    --link-color: #9b59b6;
  }
}
HTML
<body>
  <p>This text and link will adapt to the user's preferred color scheme. Visit <a href="#">Example.com</a>.</p>
</body>

解释:

  • 在这个例子中,网站的颜色方案根据用户的偏好更改(prefers-color-scheme: dark)。 当切换明暗主题时,背景颜色、文本和链接颜色会自动变化。

4.3 响应式网格

使用变量和媒体查询创建响应式网格的例子:

CSS
:root {
  --columns: 1fr;
  --gap: 10px;
}

.grid-container {
  display: grid;
  grid-template-columns: var(--columns);
  gap: var(--gap);
}

@media (min-width: 600px) {
  :root {
    --columns: 1fr 1fr;
  }
}

@media (min-width: 900px) {
  :root {
    --columns: 1fr 1fr 1fr;
  }
}
HTML
<div class="grid-container">
  <div>Item 1</div>
  <div>Item 2</div>
  <div>Item 3</div>
  <div>Item 4</div>
</div>

解释:

  • 在这个例子中,使用的是响应式网格,根据屏幕宽度改变列数。 窄屏(600px 以下)有一列,中屏(600px 到 900px 之间)有两列, 宽屏(900px 以上)有三列
1
任务
Frontend SELF ZH,  第 31 级课程 3
已锁定
色彩方案和偏好
色彩方案和偏好
评论
  • 受欢迎
你必须先登录才能发表评论
此页面还没有任何评论