前端 | ( 十三)CSS3简介及基本语法(下)| 伸缩盒模型 | 尚硅谷前端html+css零基础教程2023最新

学习来源:尚硅谷前端html+css零基础教程,2023最新前端开发html5+css3视频


系列笔记

  • 【HTML4】(一)前端简介
  • 【HTML4】(二)各种各样的常用标签
  • 【HTML4】(三)表单及HTML4收尾
  • 【CSS2】(四)CSS基础及CSS选择器
  • 【CSS2】(五)CSS三大特性及常用属性
  • 【CSS2】(六)CSS盒子模型
  • 【CSS2】(七)浮动
  • 【CSS2】( 八)定位与布局
  • 【实操】( 九)尚品汇实操练习
  • 【HTML5】( 十)HTML5简介及相关新增属性
  • 【CSS3】( 十一)CSS3简介及基本语法(上)| 相关新增属性
  • 【CSS3】( 十二)CSS3简介及基本语法(中)| 变换、过渡与动画
  • 【CSS3】 (十三)CSS3简介及基本语法(下)| 伸缩盒模型

文章目录

  • 📚伸缩盒模型
    • 🐇伸缩盒模型简介
    • 🐇伸缩容器、伸缩项目
    • 🐇主轴方向
    • 🐇主轴换行方式
    • 🐇flex-flow
    • 🐇主轴对齐方式
    • 🐇侧轴对齐方式
    • 🐇flex实现水平垂直居中
    • 🐇伸缩性
    • 🐇flex复合属性
    • 🐇项目排序和单独对齐(了解)
    • 🐇案例
  • 📚相应式布局
  • 📚BFC

⭐️前文回顾:前端 | ( 十二)CSS3简介及基本语法(中)| 变换、过渡与动画 | 尚硅谷前端html+css零基础教程2023最新
⭐️前文对应p178-p183,本文对应p183-p200
⭐️补充网站:W3school,MDN

📚伸缩盒模型

🐇伸缩盒模型简介

在这里插入图片描述

🐇伸缩容器、伸缩项目

在这里插入图片描述


  • 主轴: 伸缩项目沿着主轴排列,主轴默认是水平的,默认方向是:从左到右(左边是起点,右边是终点)。
  • 侧轴: 与主轴垂直的就是侧轴,侧轴默认是垂直的,默认方向是:从上到下(上边是起点,下边是终点)。

🐇主轴方向

在这里插入图片描述

🐇主轴换行方式

在这里插入图片描述

🐇flex-flow

在这里插入图片描述

🐇主轴对齐方式

在这里插入图片描述
在这里插入图片描述

🐇侧轴对齐方式

  • 一行的情况
    在这里插入图片描述
    在这里插入图片描述

  • 多行的情况
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

🐇flex实现水平垂直居中

方法一:父容器开启 flex 布局,随后使用 justify-contentalign-items 实现水平垂直居中

.outer {width: 400px;height: 400px;background-color: #888;display: flex;justify-content: center;align-items: center;
}
.inner {width: 100px;height: 100px;background-color: orange;
}

方法二:父容器开启 flex 布局,随后子元素 margin: auto

.outer {width: 400px;height: 400px;background-color: #888;display: flex;
}
.inner {width: 100px;height: 100px;background-color: orange;margin: auto;
}
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>元素水平垂直居中</title><style>.outer {width: 400px;height: 400px;background-color: #888;display: flex;/* 方案一 *//* justify-content: center; *//* align-items: center; */}.inner {width: 100px;height: 100px;background-color: orange;/* 方案二 */margin: auto;}</style>
</head>
<body><div class="outer"><div class="inner"></div></div>
</body>
</html>

在这里插入图片描述

🐇伸缩性

在这里插入图片描述

.inner {/* 设置伸缩项目在主轴上的基准长度,若主轴是横向的宽失效,若主轴是纵向的高失效 */flex-basis: 300px;
}

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>伸缩项目_伸</title><style>.outer {width: 1000px;height: 900px;background-color: #888;margin: 0 auto;/* 伸缩盒模型相关属性-start *//* 将该元素变为了伸缩容器(开启了flex布局) */display: flex;/* 调整主轴方向,水平从左到右,默认 */flex-direction: row;/* 主轴换行方式,换行 */flex-wrap: wrap;/* 主轴的对齐方式,主轴的起始位置 */justify-content: flex-start;}.inner {width: 200px;height: 200px;background-color: skyblue;border: 1px solid black;box-sizing: border-box;flex-grow: 0;}/* 瓜分比例:1/6 */.inner1 {flex-grow: 1;}/* 1/3 */.inner2 {flex-grow: 2;width: 300px;}/* 1/2 */.inner3 {flex-grow: 3;}</style>
</head>
<body><div class="outer"><div class="inner inner1">1</div><div class="inner inner2">2</div><div class="inner inner3">3</div></div>
</body>
</html>

在这里插入图片描述


这里是引用

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>伸缩项目_缩</title><style>.outer {width: 400px;height: 900px;background-color: #888;margin: 0 auto;/* 伸缩盒模型相关属性-start *//* 将该元素变为了伸缩容器(开启了flex布局) */display: flex;/* 调整主轴方向,水平从左到右,默认 */flex-direction: row;/* 主轴换行方式,换行 *//* 想缩就别说这玩意,不然直接就换行处理了 *//* flex-wrap: wrap; *//* 主轴的对齐方式,主轴的起始位置 */justify-content: flex-start;/* 侧轴的对齐方式 */align-content: flex-start;}.inner {width: 200px;height: 200px;background-color: skyblue;/* border: 1px solid black; *//* box-sizing: border-box; */flex-grow: 1;}.inner1 {flex-shrink: 1;}.inner2 {flex-shrink: 2;width: 300px;}.inner3 {flex-shrink: 3;}</style>
</head>
<body><div class="outer"><div class="inner inner1"><!-- 缩的下限就是保证内容的呈现 --><div style="width: 50px;height:50px;background-color: green;">1</div></div><div class="inner inner2">2</div><div class="inner inner3">3</div></div>
</body>
</html>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

带上边框,浏览器计算的时候会有一些误差。实际应用shrink默认就是1,就不写了。简化!

🐇flex复合属性

在这里插入图片描述

🐇项目排序和单独对齐(了解)

  • order 属性定义项目的排列顺序。数值越小,排列越靠前,默认为 0 。
  • 通过 align-self 属性,可以单独调整某个伸缩项目的对齐方式
  • 默认值为 auto ,表示继承父元素的align-items属性。
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>项目排序与单独对齐</title><style>.outer {width: 600px;height: 900px;background-color: #888;margin: 0 auto;/* 伸缩盒模型相关属性-start *//* 将该元素变为了伸缩容器(开启了flex布局) */display: flex;/* 调整主轴方向,水平从左到右,默认 */flex-direction: row;/* 主轴换行方式,换行 *//* flex-wrap: wrap; *//* 主轴的对齐方式,主轴的起始位置 */justify-content: flex-start;/* 侧轴的对齐方式 */align-content: flex-start;}.inner {width: 200px;height: 200px;background-color: skyblue;border: 1px solid black;box-sizing: border-box;/* 可以拉伸 可以压缩 设置基准长度为0,可简写为:flex:1 */flex: 1 1 0;}.inner1 {order: 3;}.inner2 {order: 2;}.inner3 {order: 1;}.inner2 {align-self: center;}</style>
</head>
<body><div class="outer"><div class="inner inner1">1</div><div class="inner inner2">2</div><div class="inner inner3">3</div></div>
</body>
</html>

在这里插入图片描述

🐇案例

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>尚硅谷官网</title><style>* { font-family: Arial; font-size: 14px; margin: 0; padding: 0; border: none; }a { text-decoration: none; }ul { list-style: none; }html,body {width: 100%;height: 100%;}body {/* 背景铺满 */background-image: url('../images/bg.jpg');/* 背景图不重复 */background-repeat: no-repeat;/* 当图片和背景不适配时的最优解 */background-size: cover;}.page-header {height: 70px;/* 需要设置透明度 */background-color: rgba(0, 0, 0, 0.7);/* 设置伸缩盒子 */display: flex;/* 主轴两边定格 */justify-content: space-between;/* 侧轴对齐方式 */align-items: center;padding: 0 20px;}.header-nav {display: flex;}.header-nav li a {color: white;font-size: 20px;border: 1px solid white;/* 圆角8px */border-radius: 8px;padding: 10px;margin-right: 20px;}.header-nav li:last-child a {margin-right: 0;}.page-content {display: flex;/* calc进行数值计算 */height: calc(100vh - 70px);}.content-nav {width: 1000px;height: 300px;/* 垂直居中 */margin: auto;display: flex;/* 主轴对齐方式:均分 */justify-content: space-evenly;/* 侧轴 */align-items: center;}.content-nav .item {width: 180px;height: 200px;background-color: orange;display: flex;/* 转换主轴 */flex-direction: column;/* 侧轴 */align-items: center;/* 主轴均分 */justify-content: space-evenly;transition: 0.2s linear;cursor: pointer;}.content-nav .item:hover {/* 边框阴影 */box-shadow: 0px 0px 20px black;}.content-nav .item span {font-size: 20px;color: white;}.content-nav .item:nth-child(1) {background-color:#595CA8;}.content-nav .item:nth-child(2) {background-color:#FF9D2E;}.content-nav .item:nth-child(3) {background-color:#01A6DE;}.content-nav .item:nth-child(4) {background-color:#015E91;}.content-nav .item:nth-child(5) {background-color:#1DC128;}</style>
</head>
<body><!-- 头部 --><header class="page-header"><a href="#"><img src="../images/logo.png" alt="logo"></a><ul class="header-nav"><li><a href="#">国内校区</a></li><li><a href="#">澳洲校区</a></li><li><a href="#">英国校区</a></li><li><a href="#">美国校区</a></li></ul></header><!-- 内容区 --><div class="page-content"><div class="content-nav"><div class="item"><img src="../images/item1.png" alt=""><span>我的邮箱</span></div><div class="item"><img src="../images/item2.png" alt=""><span>云服务</span></div><div class="item"><img src="../images/item3.png" alt=""><span>手机课堂</span></div><div class="item"><img src="../images/item4.png" alt=""><span>微信服务</span></div><div class="item"><img src="../images/item5.png" alt=""><span>在线客服</span></div></div></div>
</body>
</html>

在这里插入图片描述

📚相应式布局

在这里插入图片描述

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>01_媒体查询_媒体类型</title><style>h1 {width: 600px;height: 400px;line-height: 400px;background-image: linear-gradient(30deg,red,yellow,green);margin: 0 auto;text-align: center;font-size: 100px;color: white;text-shadow: 0 0 10px black;}/* 只有在打印机或打印预览才应用的样式 */@media print {h1 {background: transparent;}}/* 只有在屏幕上才应用的样式 */@media screen {h1 {font-family: "翩翩体-简";}}/* 一直都应用的样式 */@media all {h1 {color: red;}}</style>
</head>
<body><h1>新年快乐</h1>
</body>
</html>

在这里插入图片描述

打印视图在这里插入图片描述


在这里插入图片描述
完整列表参考

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>媒体查询_媒体特性</title><style>* {margin: 0;padding: 0;}h1 {height: 200px;background-color: gray;text-align: center;line-height: 200px;font-size: 100px;}/* 检测到视口的宽度为800px时,应用如下样式 */@media (width:800px) {h1 {background-color: green;}}/* 检测到视口的宽度小于等于700px时,应用如下样式 */@media (max-width:700px) {h1 {background-color: orange;}}/* 检测到视口的宽度大于等于900px时,应用如下样式 */@media (min-width:900px) {h1 {background-color: deepskyblue;}}</style>
</head>
<body><h1>你好啊</h1>
</body>
</html>

这里是引用

📚BFC

在这里插入图片描述


更加通俗的理解:

  1. BFCBlock Formatting Context (块级格式上下文),可以理解成元素的一个“特异功能”。
  2. 该 “特异功能”,在默认的情况下处于关闭状态;当元素满足了某些条件后,该“特异功能”被激活
  3. 所谓激活“特异功能”,专业点说就是:该元素创建了 BFC (又称:开启了 BFC )。
    在这里插入图片描述

  1. 元素开启 BFC 后,其子元素不会再产生 margin 塌陷问题
  2. 元素开启 BFC 后,自己不会被其他浮动元素所覆盖
  3. 元素开启 BFC 后,就算其子元素浮动,元素自身高度也不会塌陷

在这里插入图片描述

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

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

相关文章

Go 语言 值类型和引用类型

Go 语言 值类型和引用类型 值类型&#xff1a; 概述&#xff1a; 值类型的人变量直接存储其值&#xff0c;他们通常在栈上分配内存。当把一个值类型的变量赋值给另外一个变量、作为函数参数传递或从函数返回时&#xff0c;进行值的复制。因此每个变量都有自己独立的存储&…

Flutter 自定义 虚线 分割线

学习使用Flutter 进行 虚线 自定义控件 练习 // 自定义虚线 &#xff08;默认是垂直方向&#xff09; class DashedLind extends StatelessWidget {final Axis axis; // 虚线方向final double dashedWidth; // 根据虚线的方向确定自己虚线的宽度final double dashedHeight; //…

实训笔记7.24

实训笔记7.24 7.24笔记一、Hadoop中MapReduce框架的使用原理和流程1.1 涉及到一些框架核心组件1.1.1 InputFotmat1.1.2 MapTask1.1. 3Partitioner1.1.4 WritableComparable1.1.5 Combiner&#xff08;可选&#xff09;1.1.6 WritableComparator(GroupingComparator)1.1.7 Reduc…

c++ 之 dynamic_pointer_cast

/* * dynamic_pointer_cast */ 描述 (Description) 它返回一个正确类型的sp副本&#xff0c;其存储的指针从U *动态地转换为T *。 声明 (Declaration) 以下是std :: dynamic_pointer_cast的声明。 template <class T, class U> shar…

微服务保护——Sentinel【实战篇二】

一、线程隔离 &#x1f349; 线程隔离有两种方式实现&#xff1a; 线程池隔离信号量隔离&#xff08;Sentinel默认采用&#xff09; 线程隔离&#xff08;舱壁模式&#xff09;&#x1f95d; 在添加限流规则时&#xff0c;可以选择两种阈值类型&#xff1a; QPS&#xff1a;…

SpringBoot-4

Spring Boot 使用 slf4j 日志 在开发中经常使用 System.out.println()来打印一些信息&#xff0c;但是这样不好&#xff0c;因为大量的使用 System.out 会增加资源的消耗。实际项目中使用的是 slf4j 的 logback 来输出日志&#xff0c;效率挺高的&#xff0c;Spring Boot 提供…

NLP 中的pad/padding操作代码分析

今天分析一下NLP中的pad操作代码&#xff1a; 该方法的作用是将输入的序列列表seqs进行填充操作&#xff0c;使其具有相同的长度&#xff0c;以便进行批处理。填充使用指定的pad_token进行&#xff0c;并生成一个对应的mask标志列表&#xff0c;用于标记哪些部分是填充内容&am…

如何用3D格式转换工具HOOPS Exchange读取颜色和材料信息?

作为应用程序开发人员&#xff0c;非常希望导入部件的图形表示与它们在创作软件中的外观尽可能接近。外观可以在每个B-Rep面的基础上指定&#xff0c;而且&#xff0c;通过装配层次结构的特定路径可以在视觉外观上赋予父/子覆盖。HOOPS ExchangeHOOPS Exchange可捕获有关来自各…

新零售数字化商业模式如何建立?新零售数字化营销怎么做?

随着零售行业增速放缓、用户消费结构升级&#xff0c;企业需要需求新的价值增长点进行转型升级&#xff0c;从而为消费者提供更为多元化的消费需求、提升自己的消费体验。在大数据、物联网、5G及区块链等技术兴起的背景下&#xff0c;数字化新零售系统应运而生。 开利网络认为&…

让GPT人工智能变身常用工具-上

1.密码生成器:GPT为您创建安全密码 想象GPT作为您的个人密码生成器,负责从头到尾为您创建复杂且安全的密码。您只需要告诉他您的密码需求,比如密码的长度,是否包含大写字母、小写字母、数字或特殊字符,他会立即为您生成一个复杂但经过深度设计的密码。 例子: 我希望您…

数学学习总结

最近在准备一场考试&#xff0c;通过这几个月的学习发现数学思维还是有待建立&#xff0c;逻辑性、熟练度、思维想象力还是不足&#xff0c;本身数学基础不扎实&#xff0c;要通过这场考试&#xff0c;需要更进一步努力&#xff0c;复习一轮后&#xff0c;看视频、看老师讲解都…

Python 单继承、多继承、@property、异常、文件操作、线程与进程、进程间通信、TCP框架 7.24

单继承 class luban:def __init__(self, name):self.name nameself.skill "摸鱼飞弹"self.damageLevel 20def attack(self):print("{} 使用了技能{} &#xff0c;给敌方带来了极大的困扰\n""并有{}% 的机会造成一击必杀的效果".format(self.…

Docker介绍以及实战教程

Docker简介 Docker为什么出现 从事软件开发的朋友&#xff0c;可能经常会碰到以下场景&#xff1a;运维&#xff1a;你这程序有Bug啊&#xff0c;怎么跑不起来啊&#xff01;开发&#xff1a;我机子上能跑啊&#xff0c;你会不会用啊究其原因还是开发环境与生产环境不同造成的…

【java安全】RMI

文章目录 【java安全】RMI前言RMI的组成RMI实现Server0x01 编写一个远程接口0x02 实现该远程接口0x03 Registry注册远程对象 Client 小疑问RMI攻击 【java安全】RMI 前言 RMI全称为&#xff1a;Remote Method Invocation 远程方法调用&#xff0c;是java独立的一种机制。 RM…

SoapUI、Jmeter、Postman三种接口测试工具的比较分析

前段时间忙于接口测试&#xff0c;也看了几款接口测试工具&#xff0c;简单从几个角度做了个比较&#xff0c;拿出来与诸位分享一下。本文从多个方面对接口测试的三款常用工具进行比较分析&#xff0c;以便于在特定的情况下选择最合适的工具&#xff0c;或者使用自己编写的工具…

CentOS 7.9 安装 MySQL Redis

CentOS 7.9 安装 MySQL Redis 安装包网上有 MySQL 使用远程连接工具连接 CentOS 服务器&#xff0c;将 MySQL 压缩包上传到服务器上。 根目录创建 app 文件夹&#xff0c;把JDK压缩包通过xftp传到目标服务器 cd /app #进入根目录 tar -xvf mysql-5.7.24-linux-glibc2.12-x…

12.(开发工具篇vscode+git)vscode 不能识别npm命令

1&#xff1a;vscode 不能识别npm命令 问题描述&#xff1a; 解决方式&#xff1a; &#xff08;1&#xff09;右击VSCode图标&#xff0c;选择以管理员身份运行&#xff1b; &#xff08;2&#xff09;在终端中执行get-ExecutionPolicy&#xff0c;显示Restricted&#xff…

展锐5G模块: NCM 多路网卡测试

本文档基于移远 Rx500U 模组 1&#xff09;AT指令查询和设置 a) 设置atqcfg"multiusbnet",2,0 产生2路网卡&#xff0c;网卡1对应PDP contex 1 , 网卡2对应PDP contex 2 rootubuntu:/home/# ls /dev/ttyUSB* /dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 /dev/ttyUSB3 …

【主成分分析(PCA)】

主成分分析&#xff08;PCA&#xff09; 摘要 在现代数据科学中&#xff0c;维度灾难常常是数据处理与分析的一大难题。主成分分析&#xff08;PCA&#xff09;是一种广泛使用的数据降维技术&#xff0c;它通过将原始数据转换为新的低维空间&#xff0c;保留最重要的信息&…

centos python3 安装psycopg2 模块

安装异常 Collecting psycopg2Using cached psycopg2-2.8.6.tar.gz (383 kB)ERROR: Command errored out with exit status 1:command: /usr/local/python3/bin/python3.8 -c import sys, setuptools, tokenize; sys.argv[0] ""/tmp/pip-install-cccqzv8r/psycopg2…