Web前端一套全部清晰 ⑨ day5 CSS.4 标准流、浮动、Flex布局

我走我的路,有人拦也走,没人陪也走

                                                —— 24.5.24

一、标准流

        标准流也叫文档流,指的是标签在页面中默认的排布规则,例如:块元素独占一行,行内元素可以一行显示多个。

二、浮动

作用:

块级元素水平排列。

属性名:float

属性值

        left:左对齐

        right:右对齐

特点

        浮动后的盒子顶对齐
        浮动后的盒子具备行内块特点
        浮动后的盒子脱标,不占用标准流的位置

三、浮动 —— 产品布局

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动-产品布局</title>
    <style>
        *{
            /* 清除默认样式 */
            margin: 0;
            padding: 0;
        }

        li{
            /* 清除默认样式 */
            list-style: none;
        }

        .product{
            /* 盒子模型数据放上面 */
            margin: 50px auto;
            /* 宽度和高度 */
            width: 1226px;
            height: 628px;
            background-color: pink;   
        }

        .left{
            /* 浮动属性 */
            float: left;
            width: 234px;
            height: 628px;
            background-color: skyblue;
        }

        .right{
            /* 浮动属性 */
            float: right;
            width: 978px;
            height: 628px;
            background-color: darkred;
        }

        .right li{
            /* 浮动属性 */
            float: left;
            margin-right: 14px;
            margin-bottom: 14px;
            width: 234px;
            height: 300px;
            background-color: orange;
        }

        /* 每一行最右边的li清除浮动 */
            .right li:nth-child(4n){
            margin-right: 0;
        }

        /* 如果父级宽度不够,浮动的盒子会掉下来 */
    </style>
</head>
<body>
    <!-- 版心:左右结构,右边:8个产品 8个li -->
    <div class="product">
        <div class="left"></div>
        <div class="right">
            <ul>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
            </ul>
        </div>
    </div>
</body>
</html>

浮动——总结

浮动属性 floatleft 表示浮动,right 表示浮动

特点

浮动后的盒子对齐
浮动后的盒子具备行内块特点
父级宽度不够,浮动的子级换行
浮动后的盒子会脱标

清除浮动:

子级浮动,父级没有高度,子级无法撑开父级高度,影响布局效果
① 双伪元素法

拓展:浮动本质作用是实现图文混排效果

四、Flex布局

Flex-认识

        Flex布局也叫弹性布局,是浏览器提倡的布局模型,非常适合结构化布局,提供了强大的空间分布和对齐能力
        Flex 模型不会产生浮动布局中脱标现象,布局网页更简单、更灵活

Flex-组成

设置方式:

        给父元素设置display: flex元素可以自动挤压或拉伸

组成部分:

        弹性容器
        弹性盒子
        主轴:默认在水平方向

        侧轴/交叉轴:默认在垂直方向

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>flex布局-组成</title>
    <style>
        /* 弹性容器 */
        .box{
            display: flex;

            height: 300px;
            border: 1px solid #000;
        }

        /* 弹性盒子:沿着主轴方向排列 */
        .box div{
            width: 200px;
            height: 100px;
            background-color: pink;
        }
    </style>
</head>
<body>
    <!-- 弹性盒子自动挤压,当自己宽度宽,父级宽度低时 -->
    <div class="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
        <div>4</div>
        <div>5</div>
        <div>6</div>
    </div>
</body>
</html>

主轴对齐方式 justify-content

属性名 

        justify-content

        后四个常用 前两个不常用

示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>flex布局 主轴对齐方式</title>
    <style>
        .box{
            display: flex;
            /* 主轴对齐方式 不常用 */
            justify-content: flex-end; 

            /* 居中效果 */
            /* justify-content: center; */

            /* 在盒子之间产生空白边距 盒子在两边 自动计算父级剩余尺寸分配成间距 */
            /* justify-content: space-between; */

            /* 间距出现在盒子两侧,视觉效果:弹性盒子之间的 间距 是 两边间距 的两倍 */
            /* justify-content: space-around; */

            /* 间距均匀分布在盒子之间,各个间距都相等 */
            justify-content: space-evenly;
            height: 300px;
            border: 1px solid #000;
        }

        .box div{
            width: 200px;
            height: 100px;
            background-color: pink;
        }
    </style>
</head>
<body>
    <div class="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>
</body>
</html>

侧轴对齐方式 align-items

属性名

        align-items:当前弹性容器内所有弹性盒子的侧轴对齐方式(给弹性容器设置)

        align-self:单独控制某个弹性盒子的侧轴对齐方式(给弹性盒子设置)

        前两个常用,后两个不常用

修改主轴方向 flex-direction

主轴默认在水平方向,侧轴默认在垂直方向

属性名

        flex-direction

属性值

示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>flex布局-修改主轴方向</title>
    <style>
        .box{
            /* flex标签 */
            display: flex;

            /* 修改主轴方向 主轴方向变换垂直方向,侧轴自动变换 */
            flex-direction: column;

            /* 主轴在垂直方向,视觉效果:垂直居中 */
            justify-content: center;

            /* align-items:当前弹性容器内所有弹性盒子的侧轴对齐方式 */
            /* 侧轴在水平方向,视觉效果:水平居中 */
            align-items: center;

            width: 150px;
            height: 120px;
            background-color: pink;
        }

        img{
            width: 32px;
            height: 32px;
        }
    </style>
</head>
<body>
    <div class="box">
        <img src="#" alt="">
        <span>媒体</span>
    </div>
</body>
</html>

弹性伸缩比 flex

作用:

        控制弹性盒子的主轴方向的尺寸,水平方向控制宽度竖直方向控制高度

属性名:

       

属性值:

        整数数字,表示占用父级剩余尺寸的份数

示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>flex布局-弹性伸缩比</title>
    <style>
        /* 在默认情况下,主轴(水平)方向上的尺寸靠内容撑开,侧轴(垂直方向)默认拉伸效果 */
        /* 父集 */
        .box{
            display: flex;
            /* flex-direction,修改主轴方向,主轴在哪个方向,控制就是哪个方向 */
            /* 修改主轴方向为竖直方向 */
            flex-direction: column;

            /* 高度 */
            height: 300px;
            /* 描边 */
            border: 1px solid #000;
        }

        /* 第一个子集 */
        .box div{
            /* 高度 */
            height: 100px;
            /* 背景色 */
            background-color: pink;
        }

        /* 结构伪类选择器 nth-child */
        .box div:nth-child(1){
            /* 宽度 */
            width: 200px;
        }

        /* 占父级剩余空间份数中的几份 */
        .box div:nth-child(2){
            flex:1
        }

        /* 占父级剩余空间份数中的几份 */
        .box div:nth-child(3){
            flex: 3;
        }
    </style>
</head>
<body>
    <div class="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>
</body>
</html>

主轴在水平方向,控制盒子的宽,主轴在竖直方向,控制盒子的高

弹性盒子换行 flex-wrap

弹性盒子可以自动挤压或拉伸,默认情况下,所有弹性盒子都在一行显示
属性名:flex-wrap
属性值
        wrap:换行
        nowrap:不换行(默认)

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>flex布局-弹性换行</title>
    <style>
        .box{
            /* 将盒子变成flex布局模型,弹性盒子自动挤压或压伸 */
            display: flex;

            /* 弹性换行属性 */
            flex-wrap: wrap; /* 允许弹性盒子自动换行 */

            /* 不换行
                flex-wrap: nowrap;  不允许弹性盒子自动换行 */
        
            height: 300px;
            border: 1px solid #000;
        }

        .box div{
            width: 200px;
            height: 100px;
            background-color: pink;
        }
    </style>
</head>
<body>
    <div class="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
        <div>4</div>
        <div>5</div>
        <div>6</div>
        <div>7</div>
        <div>8</div>
        <div>9</div>
        <div>10</div>
        <div>11</div>
    </div>
</body>
</html>

行对齐方式 align-content

属性名:align-content

属性值

和主轴对齐方式justify-content的属性值一样

示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=, initial-scale=1.0">
    <title>flex布局-行对齐方式</title>
    <style>
        .box{
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between; /* 两端对齐 */

            /* 调整行对齐方式 */
            align-content: flex-start; /* 行对齐方式为顶端对齐 */
            align-content: flex-end; /* 行对齐方式为底端对齐 */
            align-content: center; /* 行对齐方式为居中对齐 对单行的弹性盒子效果不生效 */
            align-content: space-around; /* 行对齐方式为平均分布 */
            align-content: space-between; /* 行对齐方式为两端对齐 */

            height: 400px;
            border: 1px solid #000;
        }

        .box div{
            width: 200px;
            height: 100px;
            background-color: pink;
    </style>
</head>
<body>
    <div class="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
        <div>4</div>
        <div>5</div>
        <div>6</div>
        <div>7</div>
        <div>8</div>
    </div>
</body>
</html>

五、综合案例 - 抖音解决方案

标签结构
div ——> ul ——> li*4
ul样式

        1.flex 布局

        2.弹性换行 flex-wrap:wrap

        3.主轴对齐方式:space-between

        4.行对齐方式:space-between

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>抖音解决方案</title>
    <style>
        /* 全局属性 */
        *{
            /* 清除默认属性 */
            margin: 0;
            padding: 0;
            /* 盒子内减属性 */
            box-sizing: border-box;
        }

        li{
            /* 清除默认属性 */
            list-style: none;
        }

        /* 盒子的属性 */
        .box{
            /* 移动盒子位置 */
            /* 设置距离顶部的长度 */
            margin:81px auto;
            /* 设置宽度 */
            width: 1200px;
            /* 设置高度 */
            height: 418px;
            /* 设置边框 */
            border: 1px solid #e1e0e3;
           
            /* 圆角效果 */
            border-radius: 10px;
        }

        /* 列表布局区域 */
        .box ul{
            /* 设置flex弹性布局属性 */
            display: flex;
            /* 弹性盒子换行 */
            flex-wrap: wrap;
            /* 设置主轴对齐方式 */
            justify-content: space-between;
            /* 设置行对齐方式 实现两行之间有区域间隔 */
            align-content: space-between;
            /* 设置位置 */
            padding: 91px 41px 90px 59px;
            /* 设置高度 */
            height: 418px;
        }

        /* 列表项 */
        .box li{
            /* flex弹性布局属性 */
            display: flex;
            /* 设置宽度 */
            width: 500px;
            height: 88px;
            /* background-color: pink; */
        }

        /* 列表项图片 */
        .box pic{
            /* 设置字图距离 */
            margin-right: 16px;
        }

        /* 列表项文字 */
        .box .text h4{
            /* 设置行高 */
            line-height: 41px;
            /* 设置字体大小 */
            font-size: 20px;
            /* 设置字体颜色 */
            color: #363636;
        }

        .box .text p{
            /* 设置字体大小 */
            font-size: 13px;
            color:#7b7b7b
    </style>
</head>
<body>
    <div class="box">
        <ul>
            <li>
                <div class="pic">
                    <img src="./images/1.svg" alt="">
                </div>
                <div class="text">
                    <h4>一键发布多端</h4>
                    <p>发布视频到抖音短视频、西瓜视频及今日头条</p> 
                </div>   
            </li>         
            <li>
                <div class="pic">
                    <img src="./images/2.svg" alt="">
                </div>
                <div class="text">
                    <h4>发布携带组件</h4>
                    <p>支持分享内容携带小程序、地理位置信息等组件,扩展内容及突出地域性</p> 
                </div>   
            </li>            
            <li>
                <div class="pic">
                    <img src="./images/3.svg" alt="">
                </div>
                <div class="text">
                    <h4>一键发布多端</h4>
                    <p>支持修改已发布稿件状态和实时查询视频审核状态</p> 
                </div>   
            </li>
            <li>
                <div class="pic">
                    <img src="./images/4.svg" alt="">
                </div>
                <div class="text">
                    <h4>数据评估分析</h4>
                    <p>获取视频在对应产品内的数据表现、获取抖音热点,及时进行表
现评估</p> 
                </div>   
            </li>
        </ul>
    </div>
</body>
</html>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

瑞米派Ubuntu系统移植指南-米尔RemiPi

1.概述 Linux系统平台上有许多开源的系统构建框架&#xff0c;这些框架方便了开发者进行嵌入式系统的构建和定制化开发&#xff0c;目前比较常见的有Buildroot, Yocto, OpenEmbedded等等。 同时更多的传统的桌面系统也加入到嵌入式环境体系中&#xff0c;如Ubuntu&#xff0c…

启动docker报错:Failed to listen on Docker Socket for the API.

说明&#xff1a; 1、安装部署docker完成后&#xff0c;启动docker报错&#xff1a;Failed to listen on Docker Socket for the API&#xff0c;如下图所示&#xff1a; 2、将SocketGroupdocker更改成&#xff1a;SocketGrouproot即可 一、解决方法&#xff1a; 1、执行命令…

用智能插件(Fitten Code: Faster and Better AI Assistant)修改好了可以持久保存的vue3留言板

天际 第一修改是选项式&#xff1a; <!-- 模板结构 --> <template><div><textarea placeholder"请输入备注内容" v-model"newItem"></textarea><button click"addItem">添加</button><hr><…

Redis 主从复制、哨兵与集群

一、Redis 主从复制 1. 主从复制的介绍 主从复制&#xff0c;是指将一台Redis服务器的数据&#xff0c;复制到其他的Redis服务器。前者称为主节点(Master)&#xff0c;后者称为从节点(Slave)&#xff1b;数据的复制是单向的&#xff0c;只能由主节点到从节点。 默认情况下&a…

【MySQL精通之路】InnoDB(6)-磁盘结构(2)-索引

主博客&#xff1a; 【MySQL精通之路】InnoDB(6)-磁盘上的InnoDB结构-CSDN博客 上一篇&#xff1a; 下一篇&#xff1a; 【MySQL精通之路】磁盘上的InnoDB结构-表空间-CSDN博客 目录 1.聚集索引和二级索引 1.1 Innodb 如何建立聚集索引 1.2 聚集索引如何加快查询速度 1…

大语言模型的工程技巧(一)——GPU计算

相关说明 这篇文章的大部分内容参考自我的新书《解构大语言模型&#xff1a;从线性回归到通用人工智能》&#xff0c;欢迎有兴趣的读者多多支持。 本文涉及到的代码链接如下&#xff1a;regression2chatgpt/ch07_autograd/gpu.ipynb 本文将讨论如何利用PyTorch实现GPU计算。本…

第十一节 SpringBoot Starter 面试题

一、面试题 很多同学的简历都写着熟悉 SpringBoot&#xff0c; 而 Starter 的实现原理被当作的考题的的情况越来越多。 来源牛客网关于 starter 的一些面试题 情景一、路虎一面 情景二、蔚来 情景三、同花顺 Starter 频频出现&#xff0c;因此在面试准备时&#xff0c;这道题…

Qt_电脑wifi相关操作

项目描述: 在做项目时用到了获取wifi的操作。在网上查找了好久资料,这里做一些总结。 这里有显示当前电脑wifi连接状态,列出wifi列表,连接断开wifi等函数。欢迎大家留言添加文章内容。 使用范围: windows电脑(中文的环境) 使用技术:windows的cmd命令。和对字符串的解析…

概念解析 | 3D Referring Expression Comprehension (3D-REC):让计算机“听懂“人类的3D语言指令

注1:本文系"概念解析"系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:3D Referring Expression Comprehension (3D-REC)。 概念解析 | 3D Referring Expression Comprehension (3D-REC):让计算机"听懂"人类的3D语言指令 PDF]…

FIFO-Diffusion,一个无需额外训练即可生成长视频的框架。通过确保每个帧引用足够多的先前帧来生成高质量、一致的长视频。

简单来讲&#xff0c;FIFO-Diffusion先通过一些模型如VideoCraft2、zeroscope、Opem-Sora Plan等与FIFO-Diffusion的组合生成短视频&#xff0c;然后取结尾的帧&#xff08;也可以取多帧&#xff09;&#xff0c;再用这一帧的图片生成另一段短视频&#xff0c;然后拼接起来。FI…

工大智信智能听诊器:开启个人健康管理的全新模式

工大智信智能听诊器&#xff1a;开启个人健康管理的全新模式 在快节奏的现代生活中&#xff0c;健康管理已成为人们关注的焦点。工大智信智能听诊器&#xff0c;作为一款创新的医疗设备&#xff0c;不仅提供高级数据管理功能&#xff0c;而且成为了个人健康管理的得力助手。 这…

6款网站登录页(附带源码)

6款网站登录页 效果图及部分源码123456 领取源码下期更新预报 效果图及部分源码 1 部分源码 <style>* {margin: 0;padding: 0;}html {height: 100%;}body {height: 100%;}.container {height: 100%;background-image: linear-gradient(to right, #fbc2eb, #a6c1ee);}.l…

Application Development using Large Language Models笔记

诸神缄默不语-个人CSDN博文目录 这是2023年NeurIPS Andrew Ng和Isa Fulford做的tutorial&#xff0c;关于如何用LLM来开发新产品的技术和思路&#xff1a;NeurIPS Tutorial Application Development using Large Language Models 文章目录 1. LLM基础2. 提示工程技巧3. 微调4.…

图片、视频画质增强变清晰工具分享(免费)

生活中可能会修一下模糊图片那么这就有一款用来修图片的管理工具&#xff0c;也有可能会修一下模糊的视频&#xff0c;在吾爱上有大佬开发了这么一款工具&#xff0c;免费的&#xff0c;不需要开任何VIP&#xff0c;我试了一下&#xff0c;好用&#xff0c;分享出来&#xff0c…

linux 上除了shell、python脚本以外,还有什么脚本语言用得比较多?

在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「 Linux的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;说到在 Linux下的编程&#xf…

TypeScript-泛型

泛型(Generics) 指在定义接口&#xff0c;函数等类型的时候&#xff0c;不预先指定具体的类型&#xff0c;而在使用的时候再指定类型的一种特性&#xff0c;使用泛型可以复用类型并且让类型更加灵活 泛型接口-interface 语法&#xff1a;在 interface 接口类型的名称后面使用…

如何使用Unity XR Interaction Toolkit

使用环境&#xff1a; Unity2021.3.21f XR Interaction Toolkit v3.0.0 各类函数可用的&#xff1a; 简单项目配置&#xff1a; 第一步&#xff0c;导包&#xff08;samples可以不用导这么多&#xff0c;两个就够了&#xff09;&#xff1a; 第二步&#xff0c;构建场景&a…

基于STM32实现智能空气质量监测系统

目录 文章主题环境准备智能空气质量监测系统基础代码示例&#xff1a;实现智能空气质量监测系统 配置传感器并读取数据数据处理与显示数据存储与传输应用场景&#xff1a;室内环境监测与空气质量控制问题解决方案与优化收尾与总结 1. 文章主题 文章主题 本教程将详细介绍如何…

Xline社区会议Call Up|在 CURP 算法中实现联合共识的安全性

为了更全面地向大家介绍Xline的进展&#xff0c;同时促进Xline社区的发展&#xff0c;我们将于2024年5月31日北京时间11:00 p.m.召开Xline社区会议。 欢迎您届时登陆zoom观看直播&#xff0c;或点击“阅读原文”链接加入会议&#xff1a; 会议号: 832 1086 6737 密码: 41125…

【人工智能】模型性能评估

模型性能衡量介绍 混淆矩阵 混淆矩阵(Confusion Matrix&#xff09; TP(真阳性)&#xff1a;预测为阳性&#xff0c;且预测正确。 TN(真阴性)&#xff1a;预测为阴性&#xff0c;且预测正确。 FP(伪阳性)&#xff1a;预测为阳性&#xff0c;但预测错误&#xff0c;又称型一误…