网页的响应式布局与媒体查询

响应式布局可以看作是流式布局和自适应布局设计理念的融合。其目标是确保一个页面在所有终端上(各种尺寸的PC、手机)都能显示出令人满意的效果,搭配媒体查询技术分别为不同的屏幕分辨率定义布局,同时,在每个布局中,应用流式布局的理念,即页面元素宽度随着窗口调整而自动适配。
下面的图片中,我通过拖动浏览器窗口,演示了网页的响应式布局。
在这里插入图片描述

响应式布局依赖媒体查询,而前端枚举的媒体查询是有限的,只能适应主流的宽高,要匹配足够多的屏幕大小,UI和前端的工作量都不小;通常应用响应式布局时改变浏览器宽度,“布局”会随之变化,例如导航栏在大屏幕下是横排,在小屏幕下是竖排,在超小屏幕下隐藏为菜单,要发挥响应式布局的特长需要UI了解这种布局方式,并给出多种方案。

  • 对于前端和设计师,响应式布局的缺点是设计和布局上有难度;
  • 对于用户来说,优点是在不同的设备上都有比较好的体验;
  • 对于前后端交互来说,可能意味着PC和移动两端只出一套接口,更便于代码的维护。

在一些项目中,常常没有UI设计师,特别是后台的项目,前端会使用前端的UI框架,你会发现大部分的框架是响应式的,比如:Bootstrap,Amazium,MUI等等。我们不可能去学习每一个UI框架,只要了解了响应式布局的原理就可以很轻松的使用这些框架了。

CSS媒体查询

要实现响应式布局,前端必须能够获取设备显示器的特性(如视口宽度、屏幕比例、设备方向:横向或纵向),在不改变页面内容的情况下,根据这些特征进行相应的布局,这就是媒体查询。
媒体查询是CSS3新增的功能,可以让我们根据设备显示器的特性设定CSS样式,媒体查询由媒体类型和一个或多个检测媒体特性的条件表达式组成。

浏览器支持

在这里插入图片描述

使用媒体查询:

媒体查询写在CSS样式代码的最后,在同一特殊性下,靠后的的样式会重叠前面的样式。

语法:
@media mediatype and|not|only (media feature) {
    CSS-Code;
}

mediatype:媒体类型,我们前端就写screen,用于电脑屏幕,平板电脑,智能手机。
media feature:媒体特性,前端最常用的有两个:

  • max-width 定义输出设备中的页面最大可见区域宽度。
  • min-width 定义输出设备中的页面最小可见区域宽度。

下面是指定样式到屏幕宽度位于500px到800px之间的设备:

@media screen and (min-width: 500px) and (max-width: 800px) { ... }

关于媒体查询更加详尽的资料请见:CSS3媒体查询

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
3*self.player and 0 in diagonal: score += 100 elif np.sum(diagonal) == 2*self.player and 0 in diagonal: score += 10 elif np.sum(diagonal) == -2*self.player and 0 in diagonal媒体查询响应式布局都是用来实现响应式设计的技术,但它们具有不: score -= 10 elif np.sum(diagonal) == -3*self.player and 0 in diagonal: score -=同的作用和实现方式。 媒体查询是CSS3新增的一个功能,它可以根据设备的屏幕 100 elif np.sum(diagonal) == -4*self.player and 0 in diagonal: score -= 1000 尺寸、分辨率、方向等属性来判断设备类型,并针对不同的设备类型应用不同 elif np.sum(diagonal) == -5*self.player: score -= 10000 return score ``` 以下是使用的CSS样式。通过媒体查询,可以实现在不同设备上显示不同的网页布局和样α-β剪枝实现五子棋博弈系统的Python代码: ```python import numpy as np # 定义棋式。媒体查询只是一种CSS技术,它并不能改变网页的布局结构,只能改盘大小 BOARD_SIZE = 15 # 定义玩家 PLAYER_BLACK = 1 PLAYER_WHITE = -1 class Board变CSS样式。 响应式布局是一种网页设计的方法,它可以根据设备的屏幕尺: def __init__(self): self.board = np.zeros((BOARD_SIZE, BOARD_SIZE), dtype=int) self.current_player寸和分辨率等特性,自适应地调整网页的布局结构,以适应不同设 = PLAYER_BLACK def get_legal_moves(self): """ 获取合法走法 :return: 合法走法备的显示。响应式布局不仅可以改变CSS样式,还可以改变HTML结构和JavaScript代码,列表,每个元素为一个二元组(x, y) """ legal_moves = [] for i in range(BOARD以实现更好的用户体验。响应式布局需要在设计阶段就考虑到不同设备的_SIZE): for j in range(BOARD_SIZE): if self.board[i][j] == 0: legal_moves.append((显示效果,需要通过CSS、HTML、JavaScript等多种技术进行实现。 综上所述,媒体查询和i, j)) return legal_moves def move(self, move): """ 走一步棋 :param move响应式布局都是实现响应式设计的重要技术,但媒体查询是一种CSS技术: 二元组(x, y),表示下子的位置 """ x, y = move self.board[x][,只能改变CSS样式,而响应式布局则是一种网页设计方法,可以改变CSS、y] = self.current_player self.current_player = -self.current_player def is_game_over(self): """ 判断HTML、JavaScript等多种技术,实现自适应布局。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值