CSS移动响应式设计实例:适应屏幕宽度

2,234 阅读5分钟

当你设计一个网站时,你的内容在所有的屏幕尺寸上看起来都很好,这一点真的很重要。

在这篇文章中,我将谈论如何使用响应式设计和媒体查询来实现这一目标。我还将提供使用最大和最小屏幕宽度的媒体查询的代码示例。

什么是响应式设计?

响应式设计是确保你的内容在所有的屏幕尺寸上看起来都很好的做法。网站中的一切,包括布局、字体和图像都应该自动适应用户的设备。

在21世纪初,开发人员专注于确保他们的网站在较大的屏幕尺寸上看起来不错,如笔记本电脑和台式电脑。在今天的世界里,你必须考虑像手机、平板电脑,甚至是手表这样的设备。

响应式设计的一个重要组成部分是媒体查询。

什么是媒体查询?

在CSS中,媒体查询是用来根据浏览器的特性(包括宽度、高度或屏幕分辨率)应用一组样式的。

你可以在freeCodeCamp学习页面上看到一个媒体查询的例子。

对于像台式机这样的大屏幕尺寸,我们可以在左上角看到一个搜索菜单。

但是在移动设备上,没有搜索菜单,我们只有菜单选项和登录按钮。

媒体查询的基本语法

下面是CSS中媒体查询的基本语法。

@media media-type (media-feature){
/*Styles go here*/
}

我们来分析一下这个语法的含义。

@media 是CSS中的一种At-rule 。这些规则将根据某些条件来决定CSS的外观。

媒体类型指的是设备的媒体类别。不同的媒体类型包括all,print,screenspeech

  • all - 适用于所有设备
  • 打印 - 适用于媒体处于打印预览模式的设备
  • 屏幕--适用于有屏幕的设备
  • 语音--适用于屏幕阅读器等设备,这些设备会向用户大声朗读内容。

根据文档

除了使用notonly 逻辑运算符时,媒体类型是可选的,all 类型是隐含的。

你可以选择省略媒体类型并使用这种语法来代替。

@media (media-feature){
/*Styles go here*/
}

媒体特征指的是浏览器的特性,包括视口的高度和宽度、方向或纵横比。关于可能的媒体特征的完整列表,请访问MDN文档

在这篇文章中,我们将专注于宽度媒体特性。

如果你想创建更复杂的媒体查询,那么你可以使用逻辑运算符。

  • and - 这个运算符用于连接多个媒体特征。如果所有的媒体特征都是真的,那么大括号内的样式将被应用到页面上。
  • not - 这个运算符将真查询逆转为假,将假查询逆转为真。
  • , (逗号) - 这个操作符将用逗号分隔多个媒体特征,如果其中一个条件为真,则应用大括号内的样式。

媒体查询实例

让我们来看看几个例子,看看如何在CSS中使用媒体查询。

在第一个例子中,我们希望当设备的宽度为600px或更小时,背景颜色变为蓝色。

在CSS中,我们要为媒体查询添加一个(max-width: 600px) ,告诉计算机以屏幕宽度为600px及以下的设备为目标。

在媒体查询中,我们把主体的背景样式改为background-color: #87ceeb;

这里是完整的媒体查询。

@media (max-width: 600px) {
  body {
    background-color: #87ceeb;
  }
}

这里是CodePen的例子。如果你点击右上角的Edit on CodePen,你可以在Codepen上测试一下。

在这第二个例子中,如果设备的宽度在600到768px之间,我们想把背景颜色从蓝色改为红色。我们可以使用and 操作符来完成这个任务。

@media (min-width: 600px) and (max-width: 768px) {
  body {
    background-color: #de3163;
  }
}

这里是完整的CodePen例子供你尝试。

当你测试时,你应该看到,如果屏幕宽度低于600px或高于768px,背景色就是蓝色。

你应该为市场上的每一个设备都写单独的媒体查询吗?

这个问题的简短答案是不。

市场上有太多的设备,不能为每个设备都写一个媒体查询。技术一直在变化,这意味着新的设备将一直出现。

更重要的是,你要使用媒体查询针对一系列的设备。在Cem Eygi的freeCodeCamp文章中,他列出了一些用于媒体查询的常见断点。

  • 320px - 480px。移动设备
  • 481px - 768px:iPad、平板电脑
  • 769px - 1024px。小屏幕、笔记本电脑
  • 1025px - 1200px。台式机、大屏幕
  • 1201px及以上 - 超大屏幕、电视

结论

响应式设计是确保你的内容在所有屏幕尺寸上看起来都很好的做法。网站中的一切,包括布局、字体和图像都应该自动适应用户的设备。

在CSS中,媒体查询被用来根据浏览器的特性(包括宽度、高度或屏幕分辨率)来应用一组样式。

下面是CSS中媒体查询的基本语法。

@media media-type (media-feature){
/*Styles go here*/
}

媒体类型是可选的,除非你使用notonly 逻辑运算符。如果省略了媒体类型,那么媒体查询将针对所有设备。

我希望这篇文章对你有帮助,祝你在CSS的道路上好运。