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

news2024/11/25 0:12:41

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

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

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

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

相关文章

LeetCode1161最大内层元素和

题目描述 给你一个二叉树的根节点 root。设根节点位于二叉树的第 1 层&#xff0c;而根节点的子节点位于第 2 层&#xff0c;依此类推。请返回层内元素之和 最大 的那几层&#xff08;可能只有一层&#xff09;的层号&#xff0c;并返回其中 最小 的那个。 解析 在上一题&…

微信小程序报错:notifyBLECharacteristicValueChange:fail:nodescriptor的解决办法

文章目录 一、发现问题二、分析问题二、解决问题 一、发现问题 微信小程序报错&#xff1a;notifyBLECharacteristicValueChange:fail:nodescriptor 二、分析问题 这个提示有点问题&#xff0c;应该是该Characteristic的Descriptor有问题&#xff0c;而不能说nodescriptor。 …

【传知代码】Modnet 人像抠图-论文复现

文章目录 概述原理介绍核心逻辑ModNet 的结构 环境配置WebUI 小结 论文地址 论文GitHub 本文涉及的源码可从Modnet 人像抠图该文章下方附件获取 概述 人像抠图技术在多个领域有着广泛的应用场景&#xff0c;包括但不限于&#xff1a; 展馆互动拍照&#xff1a;展馆中使用的抠…

二叉树的递归实现及例题

目录 遍历方式 示例 原理 前序遍历示例 二叉树的节点个数 原理 层序遍历 原理 这样做的目的是 判断完全二叉树 例题 ​编辑 思路 代码 遍历方式 二叉树的遍历方式可分为&#xff1a; 前序遍历&#xff1a;先访问根&#xff0c;访问左子树&#xff0c;在访问右子…

2024.05.24 学习记录

1、面经复习&#xff1a; js基础、知识深度、js垃圾回收 2、代码随想录刷题&#xff1a;动态规划 完全背包 all 3、rosebush 完成 Tabs、Icon、Transition组件

C++中获取int最大与最小值

不知道大家有没有遇到过这种要求&#xff1a;“返回值必须是int&#xff0c;如果整数数超过 32 位有符号整数范围 [−2^31, 2^31 − 1] &#xff0c;需要截断这个整数&#xff0c;使其保持在这个范围内。例如&#xff0c;小于 −2^31 的整数应该被固定为 −2^31 &#xff0c;大…

【Ubuntu查看硬盘和网络配置信息】解决方案

1.查看硬盘序列号 搜索系统中有应用&#xff0c;打开“磁盘”&#xff0c;因为我本人是只设置了一个分区&#xff0c;所以打开如下&#xff0c;从上面可以得到硬盘序列号 2.查看ip地址和MAC地址 ctrl alt t 打开命令行 输入ifconfig, 如下图所示&#xff0c;MAC地址即为&…

多家知名媒体到访“光子1号金融算力中心“ 交流AI与算力未来观

5月23日&#xff0c;企商在线 “光子1号金融算力中心媒体参观日”活动成功举办&#xff0c;十多家主流媒体、IT行业媒体及自媒体代表走进光子1号金融算力中心&#xff0c;深入了解企商业务发展、战略规划及“光子1号金融算力中心”等企商打造的新型数字基础设施&#xff0c;共同…

论文研读之hpn-ssh: High speed bulk data transfer using the SSH protocol

优化解决方案的策略 其中提到盲目的增加窗口大小实际上可能导致性能下降,这种下降可能由这几个因素引起:中间路由器上的缓冲区填满;路径过快饱和;过度缓冲;引入新的问题。虽然较大的缓冲区在某些情况下可能提高性能,但也有引入新的、难以诊断的问题的风险。这种复杂性使…

QtCreator,动态曲线实例

样式图&#xff1a; .ui 在sloem1.ui文件中&#xff0c;拖入一个label控件&#xff0c; 头文件.h #include "QtGui/QPainter.h" #include "QtCore/QTimer.h"protected:bool eventFilter(QObject *obj,QEvent *event);void labelPaint();public slots: /…

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…

NSS‘题目练习3

[SWPUCTF 2021 新生赛]easyupload3.0 打开题目发现要求上传.jpg文件 先上传抓包&#xff0c;尝试更改后缀 换一种形式 文件头绕过 都试过之后尝试上传.htaccess文件&#xff0c;发现上传成功 会将之后上传的文件后缀自动更名为.php 再上传.jpg文件 蚁剑连接找到flag [SWPUCTF …

【oracle的安装记录】

oracle安装记录 一、下载以后&#xff0c;解压到同一路径下面 二、双击可执行安装文件&#xff0c;等待文件加载 三、双击以后&#xff0c;弹出信息 四、提示该窗口&#xff0c;点击【是】即可 五、未填写配置安全更新信息 六、弹出小窗口&#xff0c;选择【是】 七、安装选项…

宿舍管理系统--毕业设计

毕业设计&#x1f4bc;MD5加密&#x1f512;SSM框架&#x1f3a8;Layui框架&#x1f384; 实现功能 管理员的登录与登出 管理员,班级,学生,宿舍&#xff0c;卫生&#xff0c;访客各模块增删改查 个别模块关联查询 各个模块数据导出Excel 一些截图

Log360:护航安全,远离暗网风险

暗网有时候就像是一个神秘的地下世界&#xff0c;是互联网的隐蔽角落&#xff0c;没有任何规则。这是一个被盗数据交易、网络犯罪分子策划下一步攻击的地方。但仅仅因为它黑暗&#xff0c;不意味着你要对潜在的威胁视而不见。 暗网 这就是ManageEngine Log360的用武之地&…

创新工具|AI革新内容营销:策略、工具与实施指南

探索如何利用人工智能&#xff08;AI&#xff09;提升内容营销策略&#xff0c;从SEO优化到个性化推荐。本指南详细介绍了11款顶尖AI工具&#xff0c;旨在帮助中国的中高级职场人士、创业家及创新精英高效地策划和生成引人入胜的内容&#xff0c;同时确保内容的专业性、权威性和…

佩戴安全头盔监测识别摄像机

佩戴安全头盔是重要的安全措施&#xff0c;尤其在工地、建筑工程和工业生产等领域&#xff0c;安全头盔的佩戴对于工人的生命安全至关重要。为了更好地管理和监控佩戴安全头盔的情况&#xff0c;监测识别摄像机成为了一项重要的工具。监测识别摄像机可以通过智能技术监测并记录…

每日一练2024.5.24(补2024.5.26)

题目&#xff1a; 给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[[1,2,3],[8,9,4],[7,6,5]]示例 2&#xff1a; 输入&#x…

亚马逊自养号测评:深入解析与搭建要求

在亚马逊这电商平台上&#xff0c;商品的评价对于卖家来说至关重要。为了提升商品的曝光率、排名、权重和销量&#xff0c;卖家们纷纷采用各种推广方式&#xff0c;其中&#xff0c;亚马逊自养号测评成为了越来越多卖家选择的一种有效方式。 亚马逊自养号测评&#xff0c;顾名…

《SpringBoot》系列文章目录

SpringBoot是由Pivotal团队提供的全新框架&#xff0c;旨在简化新Spring应用的初始搭建以及开发过程。以下是一些关于SpringBoot的详细介绍&#xff1a; 设计目的&#xff1a;SpringBoot通过特定的方式来进行配置&#xff0c;使得开发人员不再需要定义样板化的配置&#xff0c…