移动Web学习05

五、响应式网页

解决方案:

  1. 媒体查询

    @media (条件) {
        html {
            background-color: green;
        }
    }
    
  2. Bootstrap

1、媒体查询

@media (媒体特性) {
   选择器 {
       样式
   }
}

媒体特性:

  • max-width: 最大宽度
  • min-width: 最小宽度

示例:

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Document</title>
   <style>
       /* 屏幕宽度小于等于768,网页背景是粉色 → max-width */
       @media (max-width: 768px) {
           body {
               background-color: pink;
           }
       }
       /* 屏幕宽度大于等于1200,网页背景是绿色 → min-width */
       @media (min-width: 1200px) {
           body {
               background-color: green;
           }
       }
   </style>
</head>
<body>

</body>
</html>
书写顺序
  • min-width(从小到大)
  • max-width(从大到小)
案例
—— 左侧隐藏

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

示例:

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Document</title>
   <style>
        * {
            margin: 0;
            padding: 0;
        }
        .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;
            }
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="left">left</div>
        <div class="main">
            响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果响应式网页效果
        </div>
    </div>
</body>
</html>
完整写法 - 了解

@media 关键词 媒体类型 and (媒体特性) { CSS 代码 }

关键词 / 逻辑操作符

  • and
  • only
  • not

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

类型名称描述
屏幕screen带屏幕的设备
打印预览print打印预览模式
阅读器speech屏幕阅读模式
不区分类型all默认值,包括以上3种情形

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

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

<link rel="stylesheet" media="逻辑符 媒体类型 and (媒体特性)" href="xx.css">

示例:

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Document</title>
   <!-- 视口宽度小于等于 768px,网页背景色是粉色 -->
   <link rel="stylesheet" media="(max-width: 768px)" href="./pink.css">
   <!-- 视口宽度大于等于 1200px,网页背景色是绿色 -->
   <link rel="stylesheet" media="(min-width: 1200px)" href="./green.css">
</head>
<body>

</body>
</html>

2、Bootstrap

简介

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

下载

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

使用步骤:

  1. 下载:Bootstrap V5 中文文档 → 进入中文文档 → 下载 → 下载 Bootstrap 生产文件
  2. 使用
使用

使用步骤:

  1. 引入 Bootstrap CSS 文件
    <link rel="stylesheet" href="./Bootstrap/css/bootstrap.min.css">
  2. 调用类名:container:响应式布局版心类
    <div class="container">测试</div>
栅格系统

栅格化是指将整个王爷的宽度分成12等份,每个盒子占用的对应的份数
例如:一行排4个盒子,则每个盒子占 3份 即可(12 / 4 = 3)

BreakpointClass infixDimensions
Extra smallNone<576px
Smallsm≥576px
Mediummd≥768px
Largelg≥992px
Extra largexl≥1200px
Extra extra largexxl≥1400px
xssmmdlgxlxxl
Container max-widthNone (auto)540px720px960px1140px1320px
Class prefix-col--col-sm--col-md--col-lg--col-xl--col-xxl-

常用布局类

  • col-*-*:列(例如:col-xxl-3)
  • row:行

示例:

<!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>
   <!-- 
       视口宽度大于等于1200px,一行排4个盒子
       视口宽度大于等于768px,一行排2个盒子
       视口宽度大于等于576px,一行排1个盒子
    -->
   <!-- 版心 → row -->
   <div class="container">
       <div class="row">
           <div class="col-xl-3 col-md-6 col-sm-12">1</div>
           <div class="col-xl-3 col-md-6 col-sm-12">2</div>
           <div class="col-xl-3 col-md-6 col-sm-12">3</div>
           <div class="col-xl-3 col-md-6 col-sm-12">4</div>
       </div>
   </div>
</body>
</html>

总结:

  1. 栅格系统是将网页等分成 12 份
  2. Bootstrap 5 中,栅格系统划分了 6 个响应区间。
全局样式

Button类

  • 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-success btn-sm">按钮1</button>
    <button class="btn btn-warning btn-lg">按钮2</button>
</body>
</html>

效果:
在这里插入图片描述

表格类:

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

示例:

<!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>
    <table class="table table-striped table-hover">
        <tr class="table-success">
            <th>姓名</th>
            <th>年龄</th>
            <th>性别</th>
        </tr>
        <tr>
            <td>张三</td>
            <td>18</td>
            <td></td>
        </tr>
        <tr>
            <td>李四</td>
            <td>28</td>
            <td></td>
        </tr>
        <tr>
            <td>王五</td>
            <td>18</td>
            <td></td>
        </tr>
        <tr>
            <td>赵六</td>
            <td>28</td>
            <td></td>
        </tr>
    </table>
</body>
</html>

效果:
在这里插入图片描述

组件(Components)
  1. 引入样式表
  2. 引入 js 表
  3. 复制结构,修改内容

示例:

<!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">
   <style>
       .bg-body-tertiary {
           background-color: pink !important;
       }
   </style>
</head>
<body>
   <!-- 导航 -->
   <nav class="navbar navbar-expand-lg bg-body-tertiary">
       <div class="container-fluid">
         <a class="navbar-brand" href="#">Navbar</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="#">课程资料</a>
                   </li>
                   <li class="nav-item">
                       <a class="nav-link" href="#">视频</a>
                   </li>
               </ul>
           </div>
       </div>
   </nav>
   <!-- 轮播图 -->
   <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">
               <img src="./images/banner_1.jpg" class="d-block w-100" alt="...">
           </div>
           <div class="carousel-item">
               <img src="./images/banner_2.jpg" class="d-block w-100" alt="...">
           </div>
           <div class="carousel-item">
               <img src="./images/banner_3.jpg" class="d-block w-100" alt="...">
           </div>
           <div class="carousel-item">
               <img src="./images/banner_4.jpg" class="d-block w-100" alt="...">
           </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>

   <script src="./Bootstrap/js/bootstrap.min.js"></script>
</body>
</html>

效果:
在这里插入图片描述

字体图标

下载:
导航 / Extend:图标库 → 安装 → 下载安装包

使用:

  1. 复制 font 文件夹到项目目录
  2. 网页引入 bootstrap-icon.css 文件
  3. 调用 CSS 类名(图标对应的类名)
    <i class="bi-android2"></i>

示例:

<!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/font/bootstrap-icons.css">
   <style>
       .bi-apple {
           font-size: 100px;
           color: red;
       }
   </style>
</head>
<body>
   <sapn class="bi-apple"></sapn>
</body>
</html>

效果:
在这里插入图片描述

  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值