CSS-6

响应式网页

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

方法一

基本使用

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

书写顺序

css 复制代码
<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(从大到小)

左侧隐藏案例

css 复制代码
<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>

完整写法(了解)

语法

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

关键词

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

媒体类型

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

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

媒体特性

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

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

媒体查询之引入外部CSS

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">
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>

栅格系统

专门用于响应式布局效果

html 复制代码
<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 )
Breakpoint Class infix Dimensions
Extra small None <576px
Small sm ≥576px
Medium md ≥768px
Large lg ≥992px
Extra large xl ≥1200px
Extra extra large xxl ≥1400px
Class infix None sm md lg xl xxl
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/

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

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

按钮尺寸:
	btn-lg
	btn-sm

table 类

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

html 复制代码
<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/

css 复制代码
<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 类名(图标对应的类名)
html 复制代码
<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>
相关推荐
vvilkim14 分钟前
Flutter 导航与路由管理:Navigator 的深入解析与实践
前端·javascript·flutter
vvilkim15 分钟前
Flutter状态管理进阶:从基础到架构设计
前端·flutter
唐人街都是苦瓜脸32 分钟前
pnpm install 和 npm install 的区别
前端·npm·node.js
戒不掉的伤怀35 分钟前
react,使用echarts过程
前端·react.js·echarts
小白探索世界欧耶!~37 分钟前
react 使用 postcss-px-to-viewport 实现 px 自动转 vw 自适应
前端·javascript·vue.js·程序人生·react.js·postcss
ryipei1 小时前
vue纯前端根据页面或者后台数据,读取本地文档模板,填充数据后并导出
前端·javascript·vue.js
Gazer_S1 小时前
【Web 应用缓存与部署优化指南】
前端·缓存
好了来看下一题2 小时前
TypeScript 项目配置
前端·javascript·typescript
江城开朗的豌豆2 小时前
Vue的双向绑定魔法:如何让数据与视图‘心有灵犀’?
前端·javascript·vue.js
江城开朗的豌豆2 小时前
Vue权限控制小妙招:动态渲染列表的优雅实现
前端·javascript·vue.js