SASS 中 @media 指令的作用是什么?
SCSS 中有多个规则可用,每个规则提供不同的功能。SCSS 的"@media"规则与我们用于实现响应式设计的 CSS 媒体规则几乎相同。
在普通 CSS 中,我们将 CSS 规则编写在媒体规则中,但在 SCSS 中,我们可以将媒体规则编写在 CSS 规则中。因此,我们可以为每个元素定义不同的媒体规则。
在本教程中,我们将学习如何在 SASS 中使用 @media 指令。
语法
用户可以按照以下语法在 SASS 中使用 @media 指令。
selector {
/* 常规 CSS 代码 */
@media screen and (condtion) {
/* CSS 代码 */
}
在上述语法中,"selector"是一个用于选择 HTML 元素的 CSS 选择器。每当 @media 指令的"条件"为真时,它会将相关的 CSS 应用于 HTML 元素,而不是常规 CSS。
示例 1
在下面的示例中,我们在 index.html 文件中添加了带有"element"类名的 div 元素,并在 <head> 标签中包含了样式表路径。
文件名 - index.html
<html>
<head>
<link rel = "stylesheet" href = "css/style.css">
</head>
<body>
<h2> Using the <i> @media directive </i> in SASS </h2>
<div class = "element">
Div element text.
</div>
</body>
</html>
文件名 – style.scss
在下面的文件中,我们通过类名访问了 div 元素,并在 CSS 规则中使用了 @media 指令。在这里,我们使用 @media 指令更改文本的颜色。当屏幕尺寸大于 768px 时,文本颜色变为蓝色。如果屏幕尺寸在 768px 到 480px 之间,文本颜色变为红色。否则,文本变为绿色。
.element {
color: blue;
font-size: 3rem;
@media screen and (max-width: 768px) {
color: red;
}
@media screen and (max-width: 480px) {
color: green;
}
}
执行时,上述 SCSS 代码将生成以下 CSS 代码 -
.element {
color: blue;
font-size: 3rem;
}
@media screen and (max-width: 768px) {
.element {
color: red;
}
}
@media screen and (max-width: 480px) {
.element {
color: green;
}
}
示例
<html>
<head>
<style>
.element {
color: blue;
font-size: 3rem;
}
@media screen and (max-width: 768px) {
.element {
color: red;
}
}
@media screen and (max-width: 480px) {
.element {
color: green;
}
}
</style>
</head>
<body>
<h2>Using the <i> @media directive </i> in SASS</h2>
<div class = "element">
Div element text.
</div>
</body>
</html>
编译 scss 文件代码后,用户可以在 style.css 文件中观察到以下输出。SASS 的 @media 指令转换为 CSS 的"media"规则,使网页具有响应式布局。此外,用户还可以根据屏幕宽度观察到文本的红色。
示例 2
在下面的示例中,我们使用 SASS 中的 @media 指令根据设备的屏幕尺寸更改图像的尺寸。图像的一般宽度为 50%。如果屏幕宽度在 480 到 768 像素之间,则图像宽度为 80%;如果屏幕尺寸小于 480 像素,则图像宽度为 95%。
文件名 - index.html
<html> <head> <link rel = "stylesheet" href = "css/style.css"> </head> <body> <h2>Using the <i> @media directive </i> in SASS.</h2> <img src = "https://cdn.pixabay.com/photo/2015/12/01/20/28/road-1072821__480.jpg" alt = "Nature Image"> </body> </html>
文件名 – style.scss
img {
width: 50%;
height: auto;
margin: 0 auto;
display: flex;
@media screen and (max-width: 768px) {
width: 70%;
}
@media screen and (max-width: 480px) {
width: 95%;
}
}
img {
width: 50%;
height: auto;
margin: 0 auto;
display: flex;
}
@media screen and (max-width: 768px) {
img {
width: 70%;
}
}
@media screen and (max-width: 480px) {
img {
width: 95%;
}
}
示例
<html>
<head>
<style>
img {
width: 50%;
height: auto;
margin: 0 auto;
display: flex;
}
@media screen and (max-width: 768px) {
img {
width: 70%;
}
}
@media screen and (max-width: 480px) {
img {
width: 95%;
}
}
</style>
</head>
<body>
<h2>Using the <i> @media directive </i> in SASS</h2>
<img src = "https://cdn.pixabay.com/photo/2015/12/01/20/28/road-1072821__480.jpg" alt = "Nature Image">
</body>
</html>
在输出中,用户可以观察到图像宽度为 80%,因为屏幕尺寸为 716px。
用户学习了在 SASS 中使用 @media 指令。它用于创建响应式设计。相对于 CSS 的媒体规则,@media 指令的主要优势在于,我们可以将其添加到 CSS 规则集中,并为每个元素定义不同的断点。
相关文章
有用资源
css 参考教程 - 该教程包含有关 css 的更多信息:https://www.cainiaomax.com/css/

