CSS-6

响应式网页

如何实现响应式网页?
解决方案:
	方法1. 通过媒体查询的方法
		@media (条件) {
			html {
				background-color: green;
			}
		}
	
	方法2. 使用 Bootstrap 框架

方法一

基本使用

<style>
    /* 屏幕宽度小于等于768,网页背景色是粉色 --- 小于等于 <==> max-width */
    @media (max-width: 768px) {
        body {
            background-color: pink;
        }
    }
    /* 屏幕宽度大于等于1200,网页背景色是绿色 --- 大于等于 <==> min-width */
    @media (min-width: 1200px) {
        body {
            background-color: green;
        }
    }
</style>
以上是媒体查询的基本使用

书写顺序

<style>
    /* 网页默认背景色是灰色 */
    body {
        background-color: #ccc;
    }

    /* 屏幕宽度 大于等于 768px,网页背景色是粉色 */
    @media (min-width: 768px) {
        body {
            background-color: pink;
        }
    }

    /* 屏幕宽度 大于等于 992px,网页背景色是绿色 */
    @media (min-width: 992px) {
        body {
            background-color: green;
        }
    }

    /* 屏幕宽度 大于等于 1200px,网页背景色是skyblue */
    @media (min-width: 1200px) {
        body {
            background-color: skyblue;
        }
    }
</style>
书写顺序:
	min-width(从小到大)
	max-width(从大到小)

左侧隐藏案例

<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 {
            /* 当视口宽度小于等于768时,隐藏左侧 */
            display: none;
        }
    }
</style>

<body>
    <div class="box">
        <div class="left">left</div>
        <div class="main">main</div>
    </div>
</body>

完整写法(了解)

语法


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

关键词

关键词 / 逻辑操作符
	1. and
	2. only
	3. not

媒体类型

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

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

媒体特性

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

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

媒体查询之引入外部CSS

    <!-- 视口宽度小于等于768px时,网页背景色是粉色 -->
    <link rel="stylesheet" media="(max-width: 768px)" href="./css/pink.css">

    <!-- 视口宽度大于等于1200px时,网页背景色是绿色 -->
    <link rel="stylesheet" media="(min-width: 1200px)" href="./css/green.css">
全面的模板:
	<link rel="stylesheet" media="逻辑符 媒体类型 and (媒体特性)" href="xxx.css">

开发中常用:
    <link rel="stylesheet" media="(媒体特性)" href="xx.css">

方法二

Bootstrap 简介

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

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

使用步骤

  1. 下载:Bootstrap V5 中文文档 >>> 进入中文文档 >>> 下载 >>> 下载 Bootstrap 生产文件
  2. 将下载好的文件进行解压 >>> 找到 bootstrap.min.css 文件 >>> 放入项目中
  3. 引入 Bootstrap CSS 文件 <link rel="stylesheet" href="./Bootstrap/css/bootstrap.min.css">
  4. 调用类名:container 可以实现响应式布局版心 <div class="container">Test</div>

栅格系统

专门用于响应式布局效果

<body>
    <!-- 
        要求实现:
            视口宽度大于等于576px时,一行排1个盒子(即:每个盒子占12个栅格)
            视口宽度大于等于768px时,一行排2个盒子(即:每个盒子占6个栅格)
            视口宽度大于等于1200px时,一行排4个盒子(即:每个盒子占3个栅格)
     -->

     <!-- 
        常见的bootstrap类:
            1.响应式版心类:container
            2.flex布局类:row
      -->
    <div class="container">
        <div class="row">
            <div class="col-sm-12 col-md-6 col-xl-3">1</div>
            <div class="col-sm-12 col-md-6 col-xl-3">1</div>
            <div class="col-sm-12 col-md-6 col-xl-3">1</div>
            <div class="col-sm-12 col-md-6 col-xl-3">1</div>
        </div>
    </div>
</body>
栅格化:将整个网页的宽度分成12等份,每个盒子占用对应的份数

例如:
	如果需要一行排4个盒子,则每个盒子占3份即可 ( 12 / 4 = 3 )
BreakpointClass infixDimensions
Extra smallNone<576px
Smallsm≥576px
Mediummd≥768px
Largelg≥992px
Extra largexl≥1200px
Extra extra largexxl≥1400px
Class infixNonesmmdlgxlxxl
Class prefix.col-.col-sm-.col-md-.col-lg-.col-xl-.col-xxl-
补充:
	在VS Code中写关于Bootstrap的代码时,默认是没有代码提示
	需要自己安装一个VS Code 插件 —— IntelliSense for CSS class names in HTML

全局样式

button 类

官网查询:https://v5.bootcss.com/docs/components/buttons/

    <div>
        <button class="btn btn-success btn-sm">按钮1</button>
        <button class="btn btn-warning btn-lg">按钮2</button>
    </div>
btn: 默认样式

btn-success: 成功
btn-warning: 警告
......

按钮尺寸:
	btn-lg
	btn-sm

table 类

官网查询:https://v5.bootcss.com/docs/content/tables/

<body>
    <table class="table table-striped">
        <tr class="table-success">
            <th>姓名</th>
            <th>年龄</th>
            <th>性别</th>
        </tr>
        <tr>
            <td>张三</td>
            <td>18</td>
            <td></td>
        </tr>
        <tr>
            <td>李四</td>
            <td>25</td>
            <td></td>
        </tr>
        <tr class="table-danger">
            <td>王五</td>
            <td>19</td>
            <td></td>
        </tr>
        <tr>
            <td>赵六</td>
            <td>32</td>
            <td></td>
        </tr>
    </table>
</body>
table: 默认样式
table-striped: 隔行变色
table-success: 表格颜色
......

组件(Components)

1. 引入css样式表
2. 引入js文件(需要结合实际情况,看看网页是否有动态功能,从而决定是否引入)
3. 复制代码,修改内容

组件举例

要求:通过"复制+粘贴"快速实现一个轮播图效果

轮播图官网地址:https://v5.bootcss.com/docs/components/carousel/

<style>
    .box {
        margin: 0 auto;
        width: 600px;
        height: 320px;
    }
</style>

<body>
    <div class="container">
        <div class="box">
            <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/img2.png" class="d-block w-100" alt="...">
                  </div>
                  <div class="carousel-item">
                    <img src="./images/img3.png" class="d-block w-100" alt="...">
                  </div>
                  <div class="carousel-item">
                    <img src="./images/img2.png" class="d-block w-100" alt="...">
                  </div>
                  <div class="carousel-item">
                    <img src="./images/img3.png" 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>
        </div>
    </div>

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

字体图标

  1. 前往官网下载:https://icons.bootcss.com/
  2. 复制 fonts 文件夹到项目目录
  3. 网页引入 bootstrap-icons.css 文件
  4. 调用 CSS 类名(图标对应的类名)
<head>
    <meta charset="UTF-8">
    <!-- 引入bootstrap-icons.css 文件 -->
    <link rel="stylesheet" href="./Bootstrap/font/bootstrap-icons.css">
</head>
<style>
    .bi-android2 {
        font-size: 100px;
        color: green;
    }
</style>

<body>
    <span class="bi-android2"></span>
</body>