Day14:响应式网页

通过媒体查询、Bootstrap 框架完成腾讯全端网页响应式布局。


一、响应式布局方案

1、什么是响应式布局

它的主要特点是能够使网页根据不同的设备屏幕尺寸(如桌面电脑、平板电脑、手机等)和分辨率自动调整布局和显示效果,以提供最佳的用户体验。

  • 适应不同屏幕宽度:确保页面元素在各种屏幕大小下都能合理显示,不会出现内容溢出或布局混乱的情况。
  • 保持可读性和可用性:文字大小、按钮间距等元素会自动适配,方便用户操作和阅读。
  • 优化图片显示:图片会根据屏幕尺寸进行缩放,避免浪费带宽和加载时间。

这里以腾讯全端为例,当网页尺寸变化时,页面布局也跟着变化。

在这里插入图片描述

2、怎么实现响应式布局
  1. 媒体查询
@media (条件) {html {height: 300px;background-color: green;}
}
  1. Boostrap 框架

Bootstrap 是由 Twitter 公司开发维护的前端 UI 框架,它提供了大量编写好的 CSS 样式,允许开发者结合一定 HTML 结构及 JavaScript,快速编写功能完善的网页及常见交互效果。


二、媒体查询

1、媒体查询完整写法(了解)

这里先讲一下媒体查询的完整写法:

@media 媒体类型 关键词 (媒体特性) {选择器 {样式}
}
  • 媒体类型

媒体类型是用来区分设备类型的,如:屏幕设备、打印设备等,其中手机、平板、电脑都属于屏幕设备。

类型名称描述
屏幕screen带屏幕的设备
打印预览print打印预览模式
阅读器speech屏幕阅读模式
不区分类型all默认值,包括以上3中情况
  • 关键词/逻辑操作符

(1)and
(2)only
(3)not

  • 媒体特性

媒体特性主要用来描述媒体类型的具体特征,如当前屏幕的宽高、分辨率、横屏或竖屏等。

特性名称属性
视口的宽高width、height数值
视口的最大宽或高max-width、max-height数值
视口的最小宽或高min-width、min-height数值
屏幕方向orientationportrait: 竖屏
landscape: 横屏

媒体查询完整的写法了解就可以了,因为实际开发中,我们经常使用的是简写的写法,即:

@media (媒体特性) {选择器 {样式}
}
2、min-width 和 max-width
  • min-width:最小宽度,作为媒体特性的条件时,表示最小宽度等于 某个px 值时,即 当视口宽度 大于等于 某个px 值 时,媒体查询生效。

  • max-width:最大宽度,作为媒体特性的条件时,表示最大宽度等于 某个px 值时,即 当视口宽度 小于等于某个px 值 时,媒体查询生效。

3、书写顺序

当媒体特性是 max-width 和 min-width 时,书写顺序很重要,如果顺序错了,可能导致效果无法实现,因为 css 具有层叠性。

  • min-width:从小到大的书写顺序
  • max-width:从大到小的书写顺序

拿 min-width 举例,如果不按这个顺序写,比如先写 min-width:1200px,再写 min-width: 992px,当视口宽度大于 1200px 时,也满足大于 992px,因为 css 具有层叠性, min-widht: 992px 里面的代码会覆盖 min-width: 1200px里面的代码,导致当屏幕大于 1200px 时,无法显示 min-width: 1200px 里面的代码。所以要按照顺序,不能打乱顺序书写。

<head><title>书写顺序</title><style>/* 网页默认背景色是灰色 */body {background-color: #ccc;}/*如果不按这个顺序写,比如先写 min-width:1200,再写 min-width: 992当视口宽度大于1200,也满足大于 992,min-widht: 992 里面的代码会覆盖 min-width: 1200 里面的代码。所以要按照顺序,不能打乱顺序书写。min-width:大于等于某个px值才生效, 想象屏幕逐渐变大, 后面的媒体查询想要生效,只能px值越大,越往后面写,才能生效,书写顺序从小到大max-width:小于等于某个px值才生效, 想象屏幕逐渐变下, 后面的媒体查询想要生效,只能px值越小,越往后面写,才能生效,书写顺序从大到小*//* 屏幕宽度 大于等于 768px,网页背景色是粉色 min */@media (min-width: 768px) {body {background-color: pink;}}/* 屏幕宽度 大于等于 992px,网页背景色是绿色 min */@media (min-width:992px) {body {background-color: green;}}/* 屏幕宽度 大于等于 1200px,网页背景色是 skyblue  min */@media (min-width: 1200px) {body {background-color: skyblue;}}</style>
</head>
4、媒体查询-外部CSS

在实际开发项目中,如果使用媒体查询的次数或代码很少时,可以将代码写在内部样式表中,如果媒体查询用到的次数或代码很多,可以在使用link标签在引入外部CSS时进行媒体查询,满足媒体查询时 html 才加载 CSS 文件,当不满足媒体查询时,html 移除这个 CSS 文件,CSS 文件中就不需要在写媒体查询了,只需要正常写 CSS 代码就行。

  • 完整写法 (了解)
<link rel="stylesheet" media="媒体类型 逻辑操作符 (媒体查询)" href="xx.css">
// 当视口宽度小于等于 768px 时,引入 pink.css 这个文件
<link rel="stylesheet" media="screen and (max-width: 768px)" href="./pink.css">
  • 简写写法(常用)
<link rel="stylesheet" media=" (媒体查询)" href="xx.css">
// 当视口宽度大于等于 1200px 时,引入 green.css 这个文件
<link rel="stylesheet" media="(min-width: 1200px)" href="./green.css">

这种写法是动态加载 CSS,只有满足媒体查询时,html 才加载 CSS 文件,当不满足的时候,html 就移除这个 CSS 文件,并不是满足时加载之后,就一直加载了,不满足时还会移除这个 CSS 文件。


三、Bootstrap

1、Bootstrap 简介

Bootstrap 是由 Twitter 公司开发维护的前端 UI 框架,它提供了大量编写好的 CSS 样式,允许开发者结合一定 HTML 结构及 JavaScript,快速编写功能完善的网页及常见交互效果。

2、Bootstrap 下载
  • 下载步骤:Bootstrap 中文文档 → 下载 → Bootstrap 生产文件

在这里插入图片描述

3、Bootstrap 使用

这里只简单的讲解一下 Bootstrap 的使用,这个框架功能很多,如果要全部讲解,能够专门开一个专栏讲解了。网上也有很多讲解这个框架怎么使用的博客是视频,感兴趣的同学可以自行去找。

  1. 将下载解压好的文件拖入到工程。

  2. 引入 Bootstraps CSS 文件

<link rel="stylesheet" href="./Bootstrap/css/bootstrap.min.css">
  1. 调用类名:container:响应式布局版心居中类。
<div class="container">版心居中</div>
4、Bootstrap 栅格系统

栅格化是指将整个网页视口宽度分成12等份,每个盒子占用的对应的分数。

例如:一行排 4 个盒子,则每个盒子占 3 份,即(12 / 4 = 3)。

在这里插入图片描述

在这里插入图片描述

使用栅格布局,要使用类名为 row 的元素作为父级,子级才能使用栅格系统布局。

栅格系统布局以 col-*-* 的格式作为类名,如:col-xl-3 表示当视口宽度大于等于 1200px 时,该元素占了 3 份,即该元素宽度占视口宽度的 1/4 。

估计这对于新接触这个框架的同学有很多疑问,为什么这么写类名、为什么这么写就能实现这些功能等等,但是这些类名的命名和写法是框架开发者规定的,必须这么写,我们只能通过多写多练,将这些常用的类名记住,没有其他捷径。

下面通过一个例子,帮助大家理解:

<head><title>栅格系统</title><link rel="stylesheet" href="./Bootstrap/css/bootstrap.min.css">
</head><body><!-- 视口宽度大于等于1200px,一个盒子占3份, 即一行排4个视口宽度大于等于768px,一个盒子占6份, 即一行排2个视口宽度大于等于576px,一个盒子占12分, 即一行排1个...没有书写顺序的要求--><!-- 版心 → row → 子级 --><div class="container"><div class="row"><div class="col-sm-12 col-md-6 col-xl-3" style="background-color: red;">1</div><div class="col-sm-12 col-md-6 col-xl-3" style="background-color: yellow;">2</div><div class="col-sm-12 col-md-6 col-xl-3" style="background-color: green;">3</div><div class="col-sm-12 col-md-6 col-xl-3" style="background-color: pink;">4</div></div></div>
</body>

在这里插入图片描述

5、Bootstrap Button 类

Bootstrap 提供了很多 Button 类 的样式,也不用刻意去背,使用的时候知道在哪里找就可以了。

在这里插入图片描述

6、Bootstrap 表格类

Bootstrap 提供了很多 表格类 的样式,感兴趣的同学可以去看一看。

在这里插入图片描述

此外,Bootstrap 还提供了现成的组件字体图标等等,感兴趣的同学可以了解下。


四、综合案例-腾讯全端

接下来通过今日所学的媒体查询和 Bootstrap 框架,模仿腾讯全端实现下面的响应式布局效果。

在这里插入图片描述

想要完整代码的,点击这里获取Day14综合案例完整代码。完全免费,仅供学习参考使用。



在这里插入图片描述

乾坤未定,你我皆是黑马


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/24157.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python的plt.axis()、plt.xlim() 和 plt.ylim()函数

坐标轴相关设置1、plt.axis():坐标轴设置 函数 plt.axis(*v, **kwargs) 主要用于设置坐标轴的属性,返回值为当前的坐标轴范围 [xmin, xmax, ymin, ymax],几种调用方式如下: 调用方式 说明 axis() 返回当前的坐标轴范围 [xmin, xmax, ymi…

pytorch构建模型训练数据集

pytorch构建模型训练数据集 pytorch构建模型训练数据集1.AlexNet:1.1.导入必要的库&#xff1a;1.2.数据预处理和增强&#xff1a;1.3.加载数据集&#xff1a;1.4.划分测试集和训练集&#xff1a;1.5.创建数据加载器&#xff1a;1.6.加载AlexNet模型&#xff1a;1.7.修改模型以…

帝国cms接入腾讯云人脸识别认证代码

利用帝国cms在做一些会员系统的时候&#xff0c;需要做人脸识别认证&#xff0c;之前接入了某api接口&#xff0c;发现身份证识别率真的低&#xff0c;还好充值的少&#xff0c;否则要出问题&#xff0c;后来发现会员注册率降低了不少&#xff0c;最终还是决定使用腾讯云的人脸…

三十五篇:数字化转型的引擎:赋能企业的ERP系统全景

数字化转型的引擎&#xff1a;赋能企业的ERP系统全景 1. 引言 在这个快速变化的数字时代&#xff0c;现代企业面临着前所未有的挑战和机遇。企业资源计划&#xff08;ERP&#xff09;系统&#xff0c;作为数字化转型的核心&#xff0c;扮演着至关重要的角色。它不仅是企业运营…

NFT Insider #133:苏富比将拍卖BAYC系列NFT,Taiko创世NFT系列已上线

引言&#xff1a;NFT Insider由NFT收藏组织WHALE Members &#xff08;https://twitter.com/WHALEMembers&#xff09;、BeepCrypto &#xff08;https://twitter.com/beep_crypto&#xff09;联合出品&#xff0c;浓缩每周NFT新闻&#xff0c;为大家带来关于NFT最全面、最新鲜…

立创·天空星开发板-GD32F407VE-EXTI

本文以 立创天空星开发板-GD32F407VET6-青春版 作为学习的板子&#xff0c;记录学习笔记。 立创天空星开发板-GD32F407VE-EXTI 中断硬件触发中断示例软件触发中断示例 中断 中断分为内部中断和外部中断 外部中断是由外部设备&#xff08;如按键、传感器、通信接口等&#xff09…

rollup.js(入门篇)

前沿 Rollup 是一个用于 JavaScript 的模块打包工具&#xff0c;它将小的代码片段编译成更大、更复杂的代码&#xff0c;例如库或应用程序。它使用 JavaScript 的 ES6 版本中包含的新标准化代码模块格式&#xff0c;而不是以前的 CommonJS 和 AMD 等特殊解决方案。ES 模块允许…

一文读懂AI时代GPU的内存新宠-HBM

一文读懂GPU最强辅助&#xff1a;HBM HBM&#xff0c;即高带宽内存&#xff0c;是一项领先的3D堆叠DRAM技术&#xff0c;专为高性能计算和图形处理单元&#xff08;GPU&#xff09;设计&#xff0c;满足其对内存带宽和容量的极致需求。该技术由AMD与海力士携手研发&#xff0c;…

Apache安装教程

目录 一、Apache知识点 Apache服务简介 Apache下载网址 Apache的主要特点 二、Apache服务的搭建 1. 关闭防火墙 2. 安装依赖环境以及编译工具 3. 将apache安装包拖入xshell内 4. 解压压缩包 5. 进入httpd主包 6. 指定安装路径&#xff0c;启用字符集支持等 7. 优化执…

重庆工商大学社会工作专业试题及答案,分享几个实用搜题和学习工具 #媒体#学习方法#知识分享

搜题软件一般都是通过识别题目内容搜索出问题的答案&#xff0c;当识别内容不正确或搜索不到答案时&#xff0c;又得重新到其他软件进行重复的操作&#xff0c;很是麻烦。所以我们可以使用专业的识别工具&#xff0c;对题目内容进行识别&#xff0c;然后把提取出来的内容单独保…

流量录制学习

AREX Cloud | AREX (arextest.com) 流量录制学习&#xff0c;比vivo的moonbox要好用

【数据结构】平衡二叉树左旋右旋与红黑树

平衡二叉树左旋右旋与红黑树 平衡二叉树 定义 平衡二叉树是二叉搜索树的一种特殊形式。二叉搜索树&#xff08;Binary Search Tree&#xff0c;BST&#xff09;是一种具有以下性质的二叉树&#xff1a; 对于树中的每个节点&#xff0c;其左子树中的所有节点都小于该节点的值…

【vector模拟实现】附加代码讲解

vector模拟实现 一、看源代码简单实现1. push_backcapacity&#xff08;容量&#xff09;sizereserve&#xff08;扩容&#xff09;operator[ ] &#xff08;元素访问&#xff09; 2. pop_back3. itorator&#xff08;迭代器&#xff09;4.insert & erase &#xff08;头插…

哈夫曼树的创建

要了解哈夫曼树&#xff0c;可以先了解一下哈夫曼编码&#xff0c;假设我们有几个字母&#xff0c;他们的出现频率是A: 1 B: 2 C: 3 D: 4 E: 5 F: 6 G: 7。那么如果想要压缩数据的同时让访问更加快捷&#xff0c;就要让频率高的字母离根节点比较进&#xff0c;容易访问&#xf…

立创·天空星开发板-GD32F407VE-GPIO

本文以 立创天空星开发板-GD32F407VET6-青春版 作为学习的板子&#xff0c;记录学习笔记。 立创天空星开发板-GD32F407VE-GPIO 基础概念三极管MOS管 GPIO输出模式输出线与GPIO输入模式GPIO点灯 基础概念 GPIO&#xff0c;全称为“通用输入/输出”&#xff08;General Purpose …

算法金 | 这次终于能把张量(Tensor)搞清楚了!

大侠幸会&#xff0c;在下全网同名[算法金] 0 基础转 AI 上岸&#xff0c;多个算法赛 Top [日更万日&#xff0c;让更多人享受智能乐趣] 1. 张量&#xff08;Tensor&#xff09;基础概念 1.1 张量的定义与重要性 张量是深度学习中用于表示数据的核心结构&#xff0c;它可以视…

《帝国时代 III:决定版》秘籍 怎么在苹果电脑上玩《帝国时代 III:决定版》

《帝国时代 III&#xff1a;决定版》是一款让玩家沉浸于历史长河体验从大航海时代到工业革命时期的游戏。下面我们来看看《帝国时代 III&#xff1a;决定版》是什么类型的游戏&#xff0c;《帝国时代 III&#xff1a;决定版》Mac安装教程的相关内容。 一、《帝国时代 III&…

【BOM02】本地存储

一&#xff1a;什么是本地存储 数据存储在用户浏览器中&#xff0c;用户设置、读取方便&#xff0c;同时页面刷新时不会丢失数据。存储在浏览器中数据约5M&#xff0c;分为sessionStorage和localStorage两种存储方式 二&#xff1a;localStorage存储 作用 将数据永久存储在…

opencv实战小结-银行卡号识别

实战1-银行卡号识别 项目来源&#xff1a;opencv入门 项目目的&#xff1a;识别传入的银行卡照片中的卡号 难点&#xff1a;银行卡上会有一些干扰项&#xff0c;如何排除这些干扰项&#xff0c;并且打印正确的号码是一个问题 最终效果如上图 实现这样的功能需要以下几个步骤…

算法导论实战(三)(算法导论习题第二十四章)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;算法启示录 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 前言 第二十四章 24.1-3 24.1-4 2…