CSS3新增的语法(四)

news2024/11/19 17:31:42

CSS3新增的语法(四)【布局】

    • 14. 多列布局
    • 15.伸缩盒模型
      • 1. 伸缩盒模型简介
      • 2. 伸缩容器、伸缩项目
      • 3. 主轴与侧轴
      • 4. 主轴方向
      • 5. 主轴换行方式
      • 6. flex-flow
      • 7. 主轴对齐方式
      • 8. 侧轴对齐方式
        • 8.1 一行的情况
        • 8.2 多行的情况
      • 9.flex 实现水平垂直居中
      • 10. 伸缩性
        • 1. flex-basis
        • 2. flex-grow(伸)
        • 3. flex-shrink(缩)
      • 11. flex复合属性
      • 12. 项目排序
      • 13. 单独对齐
    • 16. 响应式布局(媒体查询)
      • 1.1 媒体类型
      • 1.2 媒体特性
      • 1.3 运算符
      • 1.4 常用阈值
      • 1.5 结合外部样式的用法
    • 17. BFC
      • 1. 什么是BFC
      • 2. 开启了BFC能解决什么问题
      • 3. 如何开启BFC

14. 多列布局

  • 作用:专门用于实现类似于报纸的布局。
  • 例如:

在这里插入图片描述

  • 常用属性如下:
    • column-count :指定列数,值是数字。
    • column-width :指定列宽,值是长度。(图片的width:100%;依据列宽)
    • columns :同时指定列宽和列数,复合属性;值没有数量和顺序要求。
    • column-gap :设置列边距,值是长度。
    • column-rule-style :设置列与列之间边框的风格,值与border-style 一致。
    • column-rule-width :设置列与列之间边框的宽度,值是长度。
    • column-rule-color :设置列与列之间边框的颜色。
    • coumn-rule :设置列边框,复合属性。
    • ------以上属性加在父元素身上------
    • column-span 指定是否跨列;值: none,all。(加在需要横跨列的元素身上,例如文章标题)
  • 应用场景
    • 文章
    • 瀑布流布局

15.伸缩盒模型

1. 伸缩盒模型简介

  • 2009 年,W3C 提出了一种新的盒子模型 —— Flexible Box (伸缩盒模型,又称:弹性盒 子)。
  • 它可以轻松的控制:元素分布方式、元素对齐方式、元素视觉顺序 …
  • 截止目前,除了在部分IE浏览器不支持,其他浏览器均已全部支持。
  • 伸缩盒模型的出现,逐渐演变出了一套新的布局方案 —— flex 布局。
  1. 传统布局是指:基于传统盒状模型,主要靠: display 属性 + position 属性 + float 属性。
  2. flex 布局目前在移动端应用比较广泛,因为传统布局不能很好的呈现在移动设备上。

2. 伸缩容器、伸缩项目

  • 伸缩容器: 开启了 flex 的元素,就是:伸缩容器。
    1. 给元素设置:display:flex 或 display:inline-flex ,该元素就变为了伸缩容器。
    2. display:inline-flex 很少使用,因为可以给多个伸缩容器的父容器,也设置为伸缩容器。(不独占一行)
    3. 一个元素可以同时是:伸缩容器、伸缩项目。
  • 伸缩项目:伸缩容器所有子元素自动成为了:伸缩项目。
    1. 仅伸缩容器的子元素成为了伸缩项目,孙子元素、重孙子元素等后代,不是伸缩项目。
    2. 无论原来是哪种元素(块、行内块、行内),一旦成为了伸缩项目,全都会“块状化”。

3. 主轴与侧轴

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

4. 主轴方向

  • 属性名:flex-direction
  • 常用值如下
    1. row :主轴方向水平从左到右 —— 默认
    2. row-reverse :主轴方向水平从右到左。
    3. column :主轴方向垂直从上到下。
    4. column-reverse :主轴方向垂直从下到上。
      在这里插入图片描述

!!!注意:改变了主轴的方向,侧轴方向也随之改变。

5. 主轴换行方式

  • 属性名:flex-wrap
  • 常用值如下:
    1. nowrap :默认值,不换行。
      在这里插入图片描述
    2. wrap :自动换行,伸缩容器不够自动换行。
      在这里插入图片描述
    3. wrap-reverse :反向换行。
      在这里插入图片描述

6. flex-flow

  • flex-flow 是一个复合属性,复合了 flex-direction 和 flex-wrap 两个属性。 值没有顺序要求。

flex-flow: row wrap;

7. 主轴对齐方式

  • 属性名:justify-content
  • 常用值如下:
    1. flex-start :主轴起点对齐。—— 默认值
    2. flex-end :主轴终点对齐。
    3. center :居中对齐
    4. space-between :均匀分布,两端对齐(最常用)。
    5. space-around :均匀分布,两端距离是中间距离的一半。
    6. space-evenly :均匀分布,两端距离与中间距离一致。
      在这里插入图片描述

8. 侧轴对齐方式

8.1 一行的情况
  • 所需属性:align-items
  • 常用值如下:
    1. stretch :如果伸缩项目未设置高度,将占满整个容器的高度。—— (默认值)
    2. flex-start :侧轴的起点对齐
    3. flex-end :侧轴的终点对齐。
    4. center :侧轴的中点对齐。
    5. baseline : 伸缩项目的第一行文字的基线对齐。
      在这里插入图片描述
8.2 多行的情况
  • 所需属性:align-content
  • 常用值如下:
    1. stretch :stretch :占满整个侧轴(未设置高度)。—— 默认值
      在这里插入图片描述

    2. flex-start :与侧轴的起点对齐。
      在这里插入图片描述

    3. flex-end :与侧轴的终点对齐。
      在这里插入图片描述

    4. center :与侧轴的中点对齐。
      在这里插入图片描述

    5. space-between :与侧轴两端对齐,中间平均分布。
      在这里插入图片描述

    6. space-around :伸缩项目间的距离相等,比距边缘大一倍。
      在这里插入图片描述
      在这里插入图片描述

    7. space-evenly : 在侧轴上完全平分。
      在这里插入图片描述

9.flex 实现水平垂直居中

  • 方法一:父容器开启flex 布局,随后使用 justify-content 和align-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;
}

10. 伸缩性

1. flex-basis
  • 概念:flex-basis 设置的是主轴方向的基准长度,会让宽度或高度失效。

-备注:主轴横向:宽度失效;主轴纵向:高度失效

  • 作用:浏览器根据这个属性设置的值,计算主轴上是否有多余空间,默认值auto,即:伸缩项目的宽或高。
2. flex-grow(伸)
  • 概念:flex-grow 定义伸缩项目的放大比例,默认为0,即:auto ,即:伸缩项目纵使主轴存在剩余空间,也不拉伸(放大)。
  • 规则:
    1. 若所有伸缩项目的flex-grow 值都为1,则:它们将等分剩余空间(如果有空间的话)。
    2. 若三个伸缩项目的flex-grow 值分别为:1、2、3,则:分别瓜分到:1/6 、2/6、3/6。
3. flex-shrink(缩)
  • 概念:flex-shrink 定义了项目的压缩比例,默认为1,即:如果空间不足,该项目将会缩小。

改为0,则不会被挤压

11. flex复合属性

flex 是复合属性,复合了: flex-grow 、 flex-shrink 、flex-basis 三个属性,默认值为 0 1 auto。

1. 如果写 flex:1 1 auto ,则可简写为: flex:auto
2. 如果写 flex:1 1 0 ,则可简写为: flex:1
3. 如果写 flex:0 0 auto ,则可简写为:flex:none
4. 如果写 flex:0 1 auto ,则可简写为: flex:0 auto —— 即 flex 初始值。

12. 项目排序

  • order属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。

13. 单独对齐

  • 通过align-self 属性,可以单独调整某个伸缩项目的对齐方式
  • 默认值为 auto,表示继承父元素的 align-items 属性。

16. 响应式布局(媒体查询)

1.1 媒体类型

在这里插入图片描述
完整列表请参考: https://developer.mozilla.org/zh-CN/docs/Web/CSS/@media

1.2 媒体特性

在这里插入图片描述

1.3 运算符

在这里插入图片描述

1.4 常用阈值

在实际开发中,会将屏幕划分成几个区间,例如:

在这里插入图片描述

1.5 结合外部样式的用法

用法一:

<link rel="stylesheet" media="具体的媒体查询" href="mystylesheet.css">

用法二:

@media screen and (max-width:768px) {
 	/*CSS-Code;*/
 }
@media screen and (min-width:768px) and (max-width:1200px) {
 	/*CSS-Code;*/
 }

17. BFC

1. 什么是BFC

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

2. 开启了BFC能解决什么问题

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

3. 如何开启BFC

  • 根元素
  • 浮动元素
  • 绝对定位、固定定位的元素
  • 行内块元素
  • 表格单元格:table 、thead 、tbody 、tfoot 、th 、td、tr、caption
  • overflow 的值不为 visible 的块元素
  • 伸缩项目
  • 多列容器
  • column-span 为 all 的元素(即使该元素没有包裹在多列容器中)
  • display 的值,设置为flow-root(会变成块级元素)

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

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

相关文章

【opencv】教程代码 —Histograms_Matching(1)反向投影:在给定图像中寻找特定的颜色或颜色分布...

1. calcBackProject_Demo1.cpp 反向投影函数的使用 /*** file BackProject_Demo1.cpp* brief 示例代码&#xff0c;演示反向投影函数的使用* author OpenCV团队*/#include "opencv2/imgproc.hpp" // 包括图像处理相关功能的头文件 #include "opencv2/imgcodecs…

VMware创建Ubuntu虚拟机详细教程

下载ISO映像文件 进入官网下载&#xff1a;Download Ubuntu Desktop | Download | Ubuntu 下面是一些其他的下载路径&#xff1a; 中国官网 https://cn.ubuntu.com/ 中科大源 Index of /ubuntu-releases/ (ustc.edu.cn) 阿里云开源镜像站 ubuntu-releases安装包下载_开源镜像…

使用 BeeWare 构建 Python GUI 应用程序

点击下方卡片&#xff0c;关注“小白玩转Python”公众号 本文探讨使用 BeeWare 套件通过 Python 构建应用程序的基础知识&#xff0c;详细介绍其功能、优点以及与其他流行框架的比较。 由于 Python 语言的简单性和多功能性&#xff0c;用它构建应用程序变得越来越流行。在 Pyth…

Centos7安装单机版Kafka

下载 链接&#xff1a;https://pan.baidu.com/s/1W8lVEF6Y-xlg6zr3l9QAbg?pwdhbkt 提取码&#xff1a;hbkt 上传到服务器/opt目录 安装 # kafka安装目录为 /opt/kafka cd /opt; mkdir kafka; mv kafka_2.13-2.7.0.tgz ./kafka;cd kafka; #解压 tar -zxvf kafka_2.13-2.7.0…

边缘计算盒子与云计算:谁更适合您的业务需求?

边缘计算盒子和云计算&#xff0c;这两个概念听起来可能有点复杂&#xff0c;但其实它们就是两种不同的数据处理方式。那谁更适合您的业务需求呢&#xff1f;咱们来详细说说。 边缘计算盒子&#xff0c;就像是个小型的数据处理中心&#xff0c;放在离你业务现场比较近的地方。它…

STM32 TIM DMA burst 输出变频 PWM 波形

1. 问题背景 客户需要 MCU 输出一组变频的 PWM 波形来控制外围器件&#xff0c;并且不同频率脉冲的个数也不同。STM32U5 芯片拥有 TIM1/TIM8 高级定时器&#xff0c;还有通用定时器TIM2/TIM3/TIM4/TIM5 以及 TIM15/TIM16/TIM17。TIM 模块中&#xff0c;可通过修改 ARR 寄存器的…

OWASP API 安全风险,有哪些安全措施

随着互联网的快速发展&#xff0c;Web应用已成为人们日常生活和工作中不可或缺的一部分。然而&#xff0c;Web应用的安全问题也日益凸显&#xff0c;给企业和个人带来了极大的风险。 对于一些安全行业的用户来说&#xff0c;不少都听过关于OWASP这个词&#xff0c;很多用户想要…

redis---位图Bitmap和位域 Bitfield

位图是字符串类型的拓展&#xff0c;可以使用一个string类型来模拟一个Bit数组。数组的下标就是偏移量&#xff0c;值只有0和1&#xff0c;也支持一些位运算&#xff0c;比如与或非&#xff0c;异或等等&#xff0c;它们的应用场景非常广泛比如可以用来记录用户的签到情况&…

【Java核心能力】饿了么一面:Redis 面试连环炮

欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术的推送&#xff01; 在我后台回复 「资料」 可领取编程高频电子书&#xff01; 在我后台回复「面试」可领取硬核面试笔记&#xff01; 文章导读地址…

flink1.18源码本地调试环境

01 源码本地调试环境搭建 1. 从github拉取源码创建本地项⽬ https://github.com/apache/flink.git 可以拉取github上官⽅代码 https://github.com/apache/flink.git GitHub - apache/flink: Apache Flink 2. 配置编译环境 ctrlaltshifts &#xff08;或菜单&#xff09;打…

zabbix 7.0 新增功能亮点(一)——T参数

概要&#xff1a; T参数是zabbix7.0新增的一项功能&#xff0c;它支持对配置文件进行可用性验证&#xff0c;即zabbix程序(server/proxy/agent等)修改配置文件后&#xff0c;支持-T或–test-config参数验证配置参数可用性。 T参数主要包含以下三个方面的应用场景&#xff1a; …

SQL语句生成器,支持MSSQL/MYSQL/SQLITE/ACCESS/EXCEL

经过7个月的艰苦开发&#xff0c;SQL语句生成器终于和各位见面了&#xff0c;因为工程量浩大&#xff0c;一度做到崩溃&#xff0c;差点烂尾&#xff0c;好在经过N次激烈思想斗争后还是坚持了下来累累累累累累累 本软件能够自动生成SQL语句及对应的易语言代码&#xff0c;还有相…

如何在Java中,使用jackson实现json缩进美化

导入的maven依赖 <!--json--> <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.10.0</version> </dependency>示例代码 json要是String类型 public…

HarmonyOS NEXT应用开发之MVVM模式

应用通过状态去渲染更新UI是程序设计中相对复杂&#xff0c;但又十分重要的&#xff0c;往往决定了应用程序的性能。程序的状态数据通常包含了数组、对象&#xff0c;或者是嵌套对象组合而成。在这些情况下&#xff0c;ArkUI采取MVVM Model View ViewModel模式&#xff0c;其…

Linux TUN设备实现Tunnel性能分析

一、TUN/TAP设备原理&#xff1a; Linux的TUN/TAP设备是一种可以使得应用层与TCP/IP协议栈交互的驱动模块&#xff0c;通常用于组建虚拟局域网中的点对点隧道&#xff08;Tunnel&#xff09;&#xff0c;可以工作于2层&#xff08;TAP设备&#xff09;和3层&#xff08;TUN设备…

下载与安装Latex(windows简洁板)

总共要安装两个软件&#xff1a;TeX Live与TeX Studio 下载与安装TeX Live 下载 下载地址&#xff1a; https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/ 点击&#xff1a; texlive2024.iso 文件很大&#xff0c;可能会慢点 2. 安装 下载好了iso文件&…

redis事务(redis features)

redis支持事务&#xff0c;也就是可以在一次请求中执行多个命令。redis中的事务主要是通过MULTI和EXEC这两个命令来实现的。 MULTI命令用来开启一个事务&#xff0c;事务开启之后&#xff0c;所有的命令就都会被放入到一个队列中&#xff0c;最后通过一个EXEC命令来执行事务中…

【项目新功能开发篇】开发编码

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过大学刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0…

C++ //练习 11.9 定义一个map,将单词与一个行号的list关联,list中保存的是单词所出现的行号。

C Primer&#xff08;第5版&#xff09; 练习 11.9 练习 11.9 定义一个map&#xff0c;将单词与一个行号的list关联&#xff0c;list中保存的是单词所出现的行号。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块 /***********…

c++20协程详解(三)

前言 前面两节我们已经能够实现一个可用的协程框架了。但我们一定还想更深入的了解协程&#xff0c;于是我们就想尝试下能不能co_await一个协程。下面会涉及到部分模板编程的知识&#xff0c;主要包括&#xff08;模板偏特化&#xff0c;模板参数列表传值&#xff0c;模板函数…