Web前端—移动Web第五天(媒体查询、Bootstrap、综合案例-alloyTeam)

版本说明

当前版本号[20231122]。

版本修改说明
20231122初版

目录

文章目录

  • 版本说明
  • 目录
  • 移动 Web 第五天
    • 01-媒体查询
      • 基本写法
      • 书写顺序
      • 案例-左侧隐藏
      • 媒体查询-完整写法
        • 关键词 / 逻辑操作符
        • 媒体类型
        • 媒体特性
      • 媒体查询-外部CSS
    • 02-Bootstrap
      • 简介
      • 使用步骤
        • 下载
        • 使用
      • 栅格系统
      • 全局样式
        • 按钮
        • 表格
      • 组件
      • 字体图标
        • 下载
        • 使用
    • 03-综合案例-alloyTeam
      • 准备工作
      • 头部导航
      • 轮播图图片
      • 轮播图响应式
      • 开源项目响应式
      • 开源项目内容布局

移动 Web 第五天

响应式布局方案

  • 媒体查询
  • Bootstrap框架

01-媒体查询

基本写法

1682667975274

  • max-width:最大宽度(小于等于)
  • min-width:最小宽度(大于等于)

书写顺序

  • min-width(从
  • max-width(从

如果不按顺序去写,按css的特性来说,后面的css就会重叠前面的css样式,致使前面的无法生效。

案例-左侧隐藏

需求:网页宽度小于等于768px则隐藏左侧区域

1682668088236

  • HTML 结构
<div class="box"><div class="left">left</div><div class="main">响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果</div>
</div>
  • CSS 样式
.box {display: flex;
}.left {width: 300px;height: 500px;background-color: pink;
}.main {flex: 1;height: 500px;background-color: skyblue;
}@media (max-width: 768px) {.left {display: none;}
}

1、先建立初步的模型,同时放了一段800字左右的文章作为测试。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>媒体查询</title><style>*{margin: 0;padding: 0;}</style>
</head>
<body><div class="box"><div class="left">left</div><div class="main">余华,中国当代著名作家,代表作品有《活着》、《许三观卖血记》等。以下是一段来自余华的《活着》的原文段落:那天,我去看福贵。他正在田里干活,看到我,就放下手里的锄头,走过来跟我打招呼。他的脸上挂着笑容,那是一种发自内心的笑容,让我想起了我们小时候一起玩耍的日子。福贵告诉我,他现在的生活虽然艰苦,但他已经很满足了。他说:“我现在有地种,有饭吃,还有老婆孩子陪着我,这就够了。”我看着他那张布满皱纹的脸,心里不禁感叹:这个曾经的富家子弟,如今已经变成了一个勤劳朴实的农民。我们一起走在乡间的小路上,福贵一边走,一边给我讲述着他的故事。他说,自从他的父亲去世后,他就开始了艰难的生活。他先是卖掉了家里的地和房子,后来又把妻子和孩子送到了城里去打工。他自己则留在了乡下,靠种地为生。福贵说:“那时候,我真的觉得活着没有什么意义。每天辛辛苦苦地干活,却换来的只是一碗稀饭。可是,我不能死,我要活下去,为了我的家人。”他的话让我想起了那些年我们在城里的日子,那时候我们总是抱怨生活的艰辛,却从未想过要放弃。我们走到了一片麦田前,福贵指着那片金黄的麦子说:“你看,这就是我现在的生活。虽然辛苦,但我觉得很幸福。因为我知道,这片麦子是我辛勤劳动的结果,它们会让我的家人吃饱穿暖。”我看着他那充满自信的眼神,心里不禁为他感到骄傲。夕阳西下,我们站在田埂上,看着远处的山峦和田野。福贵说:“你知道吗?我觉得我现在过得比那些有钱人还要幸福。因为他们虽然有钱,但他们失去了生活的意义。而我呢?虽然穷,但我活得充实。”我听着他的话,心里不禁为他的豁达和乐观感到敬佩。临别时,福贵紧紧地握住我的手,说:“谢谢你来看我,希望我们以后还能常常见面。”我点点头,心里默默地祝愿他的生活越来越好。那天,我从福贵那里学到了很多。他让我明白了生活的真谛不在于物质的丰富,而在于心灵的满足。只要我们用心去感受生活的美好,那么,无论我们身处何地,都能找到幸福的源泉。</div></div>
</body>
</html>

image-20231121190838694

2、加入左侧栏区域。

.left{width: 300px;height: 500px;background-color: pink;}

image-20231121190924602

3、给文字区域添加高,并定好这个元素作为弹性容器,其子元素将按照弹性布局进行排列。

 .box{display: flex;}.main{height: 500px;background-color: skyblue;}

image-20231121191149167

4、给予固定宽高,让flex为1,把left的宽度满足后,剩下的区域均由main来占据。

.main{flex: 1;height: 500px;background-color: skyblue;}

image-20231121191336699

5、实现了当网页宽度小于等于768px,就隐藏左侧区域。

 @media (max-width : 768px) {.left{display: none;}}

image-20231121191725728

image-20231121191747090

媒体查询-完整写法

1682668186585

关键词 / 逻辑操作符
  • and
  • only
  • not
媒体类型

媒体类型用来区分设备类型

  • screen:屏幕设备
  • 打印预览:print
  • 阅读器:speech
  • 不区分类型:all
媒体特性
  • 视口宽高:width / height
  • 视口最大宽高:max-width ;max-height
  • 视口最小宽高:min-width;min-height
  • 屏幕方向:orientation
    • protrait:竖屏
    • landscape:横屏

媒体查询-外部CSS

1682668446411

02-Bootstrap

简介

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

中文官网: https://www.bootcss.com/

想查看更多配置可点击Bootstrap中文文档:[Bootstrap中文文档](Bootstrap 入门 · Bootstrap v5 中文文档 v5.3 | Bootstrap 中文网 (bootcss.com))

嫌上面中文少的可以点这个:Bootstrap中文网

使用步骤

下载

下载:Bootstrap V5中文文档 → 进入中文文档 → 下载 →下载 Bootstrap 生产文件

1682668529209

使用
  1. 引入 Bootstrap CSS 文件

    注:记得是:/Bootstrap/css/bootstrap.min.css!!!不要一下子tab就选了/Bootstrap/css/bootstrap-grid.min.css.

<link rel="stylesheet" href="./Bootstrap/css/bootstrap.min.css">
  1. 调用类名: container 响应式布局版心类
<div class="container">测试</div>

1、做个案例来侧试 Bootstrap 的使用方法。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>bootstrap使用</title><link rel="stylesheet" href="/Bootstrap/css/bootstrap.min.css"><style>div{height: 50px;background-color: pink;}</style>
</head>
<body><div class="container">1</div>
</body>
</html>

image-20231121195151964

2、且还是响应式,根据不同的宽度,div盒子也能呈现不同的形状:

image-20231121195334605

image-20231121195353405

栅格系统

作用:响应式布局

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

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

1682668611644

  • row 类:行,可以让内容在一行排(flex布局)

完整网格示例如下:

image-20231121200812778

在不同的视口区间,版心宽度要不同,才能做到不同的响应效果。子集排列方式也要不一样,调用类名就能实现。

全局样式

按钮

1682668666364

image-20231121201353604

类名

  • btn:默认样式
  • btn-success:成功
  • btn-warning:警告
  • ……
  • 按钮尺寸:btn-lg / btn-sm
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><link rel="stylesheet" href="../Bootstrap/css/bootstrap.min.css">
</head>
<body><button class="btn btn-danger">按钮1</button><button class="btn btn-success">按钮2</button>
</body>
</html>

image-20231121204433633

表格

1682668706851

表格类:

  • table:默认样式
  • table-striped:隔行变色
  • table-success:表格颜色
  • ……

组件

1.引入样式表

2.引入 js 文件

3.复制结构,修改内容

字体图标

下载

导航 / Extend:图标库 → 安装 → 下载安装包 → bootstrap-icons-1.X.X.zip

使用
  1. 复制 fonts 文件夹到项目目录
  2. 网页引入 bootstrap-icons.css 文件
  3. 调用 CSS 类名(图标对应的类名)
  4. 前面加上“ bi- ”。
<i class="bi-android2"></i>

image-20231121211229935

03-综合案例-alloyTeam

image-20231121233516051

准备工作

1682668919871

  • HTML 结构

    注:这里引用的css顺序不得调换位置!先是bootstrap.min.css,再是bootstrap-icons.css ,最后才是index.css.

<title>腾讯全端</title>
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<!-- 层叠性:咱们的css 要 层叠 框架的,所以要先列框架的css -->
<link rel="stylesheet" href="./Bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="./Bootstrap/font/bootstrap-icons.css">
<link rel="stylesheet" href="./css/index.css"><!-- 为实现动态效果而引入的JS -->
<script src="./Bootstrap/js/bootstrap.min.js"></script>
  • less 样式
// out: ../css/

头部导航

  • HTML 结构
<!-- 导航 -->
<nav class="navbar navbar-expand-lg bg-body-tertiary fixed-top"><div class="container"><a class="navbar-brand" href="#"><img src="./assets/images/logo.png" alt=""></a><button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button><div class="collapse navbar-collapse" id="navbarNav"><ul class="navbar-nav"><li class="nav-item"><a class="nav-link active" aria-current="page" href="#">首页</a></li><li class="nav-item"><a class="nav-link" href="#">博客</a></li><li class="nav-item"><a class="nav-link" href="#">Github</a></li><li class="nav-item"><a class="nav-link" href="#">TWeb Conf</a></li><li class="nav-item"><a class="nav-link" href="#">SuperStar</a></li><li class="nav-item"><a class="nav-link" href="#">Web前端导航</a></li><li class="nav-item"><a class="nav-link" href="#">关于</a></li></ul></div></div>
</nav>
  • less 样式
// 导航
.bg-body-tertiary {background-color: transparent !important;.navbar-collapse {flex-grow: 0;}
}

1、引入导航栏,修改背景颜色。

.bg-light{background-color: pink !important;
}

image-20231121234941259

image-20231121235844837

轮播图图片

  • HTML 结构
<!-- 轮播图 -->
<div id="carouselExampleIndicators" class="carousel slide"><div class="carousel-indicators"><button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button><button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="1" aria-label="Slide 2"></button><button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="2" aria-label="Slide 3"></button><button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="3" aria-label="Slide 4"></button></div><div class="carousel-inner"><div class="carousel-item active"></div><div class="carousel-item"></div><div class="carousel-item"></div><div class="carousel-item"></div></div><button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="prev"><span class="carousel-control-prev-icon" aria-hidden="true"></span><span class="visually-hidden">Previous</span></button><button class="carousel-control-next" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="next"><span class="carousel-control-next-icon" aria-hidden="true"></span><span class="visually-hidden">Next</span></button>
</div>
  • less 样式
.carousel {.carousel-item {height: 500px;background-size: cover;background-position: center 0;}.carousel-item:nth-child(1) {background-image: url(../assets/uploads/banner_1.jpg);}.carousel-item:nth-child(2) {background-image: url(../assets/uploads/banner_2.jpg);}.carousel-item:nth-child(3) {background-image: url(../assets/uploads/banner_3.jpg);}.carousel-item:nth-child(4) {background-image: url(../assets/uploads/banner_4.jpg);}
}

1、插入轮播图所需图片。

 <div class="carousel-item active"></div><div class="carousel-item"></div><div class="carousel-item"></div>
// 轮播图
.carousel{.carousel-item{height: 500px;background-image: url(../assets/uploads/banner_1.jpg);}
}

image-20231122000915563

2、将四张照片均放进去,并把下面的轮播按钮设为四个。

<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button><button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="1" aria-label="Slide 2"></button><button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="2" aria-label="Slide 3"></button><button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="3" aria-label="Slide 4"></button></div><div class="carousel-inner"><div class="carousel-item active"></div><div class="carousel-item"></div><div class="carousel-item"></div><div class="carousel-item"></div>
// 轮播图
.carousel{.carousel-item{height: 500px;}.carousel-item:nth-child(1){background-image: url(../assets/uploads/banner_1.jpg);}.carousel-item:nth-child(2){background-image: url(../assets/uploads/banner_2.jpg);}.carousel-item:nth-child(3){background-image: url(../assets/uploads/banner_3.jpg);}.carousel-item:nth-child(4){background-image: url(../assets/uploads/banner_4.jpg);}
}

image-20231122001445302

3、图片太大,要记得缩放。

.carousel-item{height: 500px;background-size: cover;background-position: center 0;}

image-20231122001702106

轮播图响应式

  • less 样式
// 轮播图: 小于768图片高度250 max;大于等于768图片高度400 min;大于等于992图片高度500
.carousel {// 响应式 → 媒体查询@media (max-width: 768px) {.carousel-item {height: 250px;}}@media (min-width: 768px) {.carousel-item {height: 400px;}}@media (min-width: 992px) {.carousel-item {height: 500px;}}.carousel-item {// height: 500px;background-size: cover;background-position: center 0;}
}

开源项目响应式

  • HTML 结构
<!-- 开源项目 -->
<div class="project container"><div class="title"><h2>OpenSource / 开源项目</h2><p>种类众多的开源项目,让你爱不释手</p></div><div class="content"><div class="row"><div class="col-lg-3 col-md-6">1</div><div class="col-lg-3 col-md-6">2</div><div class="col-lg-3 col-md-6">3</div><div class="col-lg-3 col-md-6">4</div></div></div>
</div>
  • less 样式
// 开源项目
// 视口宽度大于992;一行排4个盒子  col-lg-3
// 视口宽度大于768;一行排2个盒子  col-md-6
.project {margin-top: 60px;text-align: center;
}

1、设置中间文字。

    <!-- 开源项目 --><div class="project container"><div class="title"><h2>OpenSource / 开源项目</h2><p>种类众多的开源项目,让你爱不释手</p></div></div>
// 开源项目
.project{margin-top: 60px;text-align: center;
}

image-20231122002916134

2、进一步修改细节。

<div class="content"><div class="row"><div class="col-lg-3 col-md-6">1</div><div class="col-lg-3 col-md-6">2</div><div class="col-lg-3 col-md-6">3</div><div class="col-lg-3 col-md-6">4</div></div></div>

开源项目内容布局

  • HTML 结构
<!-- 开源项目 -->
<div class="project container"><div class="title"><h2>OpenSource / 开源项目</h2><p>种类众多的开源项目,让你爱不释手</p></div><div class="content"><div class="row"><div class="col-lg-3 col-md-6"><a href="#">1</a></div><div class="col-lg-3 col-md-6"><a href="#">1</a></div><div class="col-lg-3 col-md-6"><a href="#">1</a></div><div class="col-lg-3 col-md-6"><a href="#">1</a></div></div></div>
</div>
  • less 样式
.project {margin-top: 60px;text-align: center;.row {div {margin-bottom: 10px;height: 200px;// background-color: pink;a {// 块级的宽度和父级一样大display: block;height: 200px;background-color: green;border-radius: 4px;}&:nth-child(1) a {background-color: #70c3ff;}&:nth-child(2) a {background-color: #fd6a7f;}&:nth-child(3) a {background-color: #7f8ea0;}&:nth-child(4) a {background-color: #89d04f;}}}
}

1、分为四个部分,后续只需要把图片上传完即可。

// 开源项目
.project{margin-top: 60px;text-align: center;.row {div {margin-bottom: 10px;height: 200px;// background-color: pink;a {// 块级的宽度和父级一样大display: block;height: 200px;background-color: green;border-radius: 4px;}}}
}

image-20231122003649366

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

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

相关文章

Android WorldWind加载shapefile格式文件形成三维效果

目录 1 前言2 实现思路3 绘制Polygons4 读取shapefile文件5 加载立体模型6 问题1 前言 在项目中有时会加载shapefile格式的数据,要形成三维立体效果。但是查看worldwind NASA官网,在worldwind android的使用教程中并没用加载shapefile格式的教程,然后源码中也没有开发加载s…

数据库基础入门 — SQL运算符

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 本…

深入浅出理解libevent——2万字总结

概述 libevent,libev,libuv都是c实现的异步事件库&#xff0c;注册异步事件&#xff0c;检测异步事件&#xff0c;根据事件的触发先后顺序&#xff0c;调用相对应回调函数处理事件。处理的事件包括&#xff1a;网络 io 事件、定时事件以及信号事件。这三个事件驱动着服务器的运…

Py之arxiv:arxiv的简介、安装、使用方法之详细攻略

Py之arxiv&#xff1a;arxiv的简介、安装、使用方法之详细攻略 目录 arxiv的简介 arxiv的安装 arxiv的使用方法 1、对arXiv数据库的文章搜索和获取 arxiv的简介 arXiv是由康奈尔大学图书馆推出的项目&#xff0c;为物理学、数学、计算机科学、数量生物学、数量金融和统计学…

el-table表格排序(需要后端判别),el-table导出功能(向后端发送请求)

&#xff08;1&#xff09;表格排序 &#xff08;2&#xff09;简单的table导出功能&#xff08;需要后台支撑&#xff09;必须要有iframe &#xff08;3&#xff09;页面所有代码&#xff1a; <template><div class"mainContainer"><el-form:model&…

【STM32外设系列】GPS定位模块(ATGM336H)

&#x1f380; 文章作者&#xff1a;二土电子 &#x1f338; 关注公众号获取更多资料&#xff01; &#x1f438; 期待大家一起学习交流&#xff01; 文章目录 一、GPS模块简介二、使用方法2.1 引脚介绍2.2 数据帧介绍2.3 关于不同的启动方式 三、前置知识3.1 strstr函数3.2…

Jenkins+Maven+Gitlab+Tomcat 自动化构建打包、部署

JenkinsMavenGitlabTomcat 自动化构建打包、部署 1、环境需求 本帖针对的是Linux环境&#xff0c;Windows或其他系统也可借鉴。具体只讲述Jenkins配置以及整个流程的实现。 1.JDK&#xff08;或JRE&#xff09;及Java环境变量配置&#xff0c;我用的是JDK1.8.0_144&#xff0…

4.22每日一题(累次积分的计算:交换次序)

注&#xff1a;因为 是积不出的函数&#xff0c;所以先不用算&#xff0c;最后发现&#xff0c;出现dx与dy可以相互抵消&#xff0c;即可算出答案

23. 深度学习 - 多维向量自动求导

Hi, 你好。我是茶桁。 前面几节课中&#xff0c;我们从最初的理解神经网络&#xff0c;到讲解函数&#xff0c;多层神经网络&#xff0c;拓朴排序以及自动求导。 可以说&#xff0c;最难的部分已经过去了&#xff0c;这节课到了我们来收尾的阶段&#xff0c;没错&#xff0c;生…

力扣:175. 组合两个表(Python3)

题目&#xff1a; 表: Person ---------------------- | 列名 | 类型 | ---------------------- | PersonId | int | | FirstName | varchar | | LastName | varchar | ---------------------- personId 是该表的主键&#xff08;具有唯一值的列&#…

挺扎心!好不容易有了一个offer,就因为背调出之前有仲裁记录,offer黄了,这已经是第二次了!...

仲裁记录会影响之后求职吗&#xff1f; 最近有一位程序员向我们讲述了他的遭遇&#xff1a; 大环境不好&#xff0c;好不容易有了一个offer&#xff0c;却因为背调出跟之前公司有仲裁经历&#xff0c;offer黄了&#xff0c;这已经是第二次因为这个原因黄offer了。 他说自己快抑…

【uniapp】部分图标点击事件无反应

比如&#xff1a;点击这个图标在h5都正常&#xff0c;在小程序上无反应 css&#xff1a;也设置z-index&#xff0c;padding 页面上也试过click.native.stop.prevent"changePassword()" 时而可以时而不行&#xff0c; 最后发现是手机里输入键盘的原因&#xff0c;输…