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

2024-05-24 22:36

本文主要是介绍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>

这篇关于Web前端一套全部清晰 ⑨ day5 CSS.4 标准流、浮动、Flex布局的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/999721

相关文章

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

HTML中meta标签的常见使用案例(示例详解)

《HTML中meta标签的常见使用案例(示例详解)》HTMLmeta标签用于提供文档元数据,涵盖字符编码、SEO优化、社交媒体集成、移动设备适配、浏览器控制及安全隐私设置,优化页面显示与搜索引擎索引... 目录html中meta标签的常见使用案例一、基础功能二、搜索引擎优化(seo)三、社交媒体集成四、移动

HTML input 标签示例详解

《HTMLinput标签示例详解》input标签主要用于接收用户的输入,随type属性值的不同,变换其具体功能,本文通过实例图文并茂的形式给大家介绍HTMLinput标签,感兴趣的朋友一... 目录通用属性输入框单行文本输入框 text密码输入框 password数字输入框 number电子邮件输入编程框

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

HTML5 中的<button>标签用法和特征

《HTML5中的<button>标签用法和特征》在HTML5中,button标签用于定义一个可点击的按钮,它是创建交互式网页的重要元素之一,本文将深入解析HTML5中的button标签,详细介绍其属... 目录引言<button> 标签的基本用法<button> 标签的属性typevaluedisabled

HTML5实现的移动端购物车自动结算功能示例代码

《HTML5实现的移动端购物车自动结算功能示例代码》本文介绍HTML5实现移动端购物车自动结算,通过WebStorage、事件监听、DOM操作等技术,确保实时更新与数据同步,优化性能及无障碍性,提升用... 目录1. 移动端购物车自动结算概述2. 数据存储与状态保存机制2.1 浏览器端的数据存储方式2.1.