前端布局flex从入门到入土
前端布局flex从入门到入土
作为一个后端,谈不上多会前端,但是一些常见的布局都可以做到,例如flex布局。推荐菜鸟教程的布局:https://www.runoob.com/w3cnote/flex-grammar.html
例如某网站布局:

场景一
左中右布局,并且要求上下页铺满

<body>
<div style="position: absolute;top: 0;bottom: 0;">
<div style="display: flex;flex-direction: row;height: 100%;width: 100vw;">
<div style="width: 29%;background-color: red;">
左
</div>
<div style="width: 40%;margin: 0 1px;">
中
</div>
<div style="width: 29%;background-color: green;">
右
</div>
</div>
</div>
</body>
使用绝对定位让上下占满
看起来不错,但是当内容超出后就跟尴尬了:

这时我们可以在中间的div设置overflow达到让内容不超出视图,并且能够用鼠标滚动
<div style="width: 40%;margin: 0 1px;overflow-y: auto;overflow-x: hidden;">
overflow-y: auto;overflow-x: hidden;
效果:

奈斯~
场景二
列布局要求,例如商品中要求展示上面图片下面价格名称描述,这时用列布局

基于上面第一个布局的代码,使用行和列的布局组合实现
<!-- 中 -->
<div style="width: 40%;margin: 0 1px;">
<!-- 列布局 -->
<div style="display: flex;flex-direction: column;width: 45%;">
<div style="background-color: #333;width: 90%;height: 80px;text-align: center;line-height: 80px;color: white;">
我是图片
</div>
<!-- 行布局 -->
<div style="display: flex;flex-direction: row;">
<span style="font-size: 14;color: red;">6RMB</span>
<span style="font-size: 14;margin-left: 12px;">cf会员</span>
</div>
<span style="font-size: 12px;">描述:充会员找我</span>
</div>
</div>
这时又有要求了,会有多个商品,我们直接copy就会变成这样:

这时你想使用场景一中的行布局,将中间的div改成这样:<div style="width: 40%;margin: 0 1px;display: flex;flex-direction: row;">,发现成了这样:

这显然不是我想要的,哪咋办啊?这时就用到了flex中的flex-wrap,他会自动换行

主要在中间的div添加了display: flex;flex-wrap: wrap;overflow-x: hidden;overflow-y: auto;
<!-- 中 -->
<div style="width: 40%;margin: 0 1px;display: flex;flex-wrap: wrap;overflow-x: hidden;overflow-y: auto;">
<!-- 列布局 -->
<div style="display: flex;flex-direction: column;width: 45%;height: 130px;">
<div style="background-color: #333;width: 90%;height: 80px;text-align: center;line-height: 80px;color: white;">
我是图片
</div>
<!-- 行布局 -->
<div style="display: flex;flex-direction: row;">
<span style="font-size: 14;color: red;">6RMB</span>
<span style="font-size: 14;margin-left: 12px;">cf会员</span>
</div>
<span style="font-size: 12px;">描述:充会员找我</span>
</div>
// ...省略更多
</div>
实现了上面的场景是不是和某些免费网站一样呢?左边是渣渣辉砍一刀广告,右边是美女秘书养成游戏,中间就是无修xx。
依稀记得刚毕业在外包驻场工作,当时负责后端,经常加班,技术还可以,任务分分钟搞定下班。大家都在加班,就我跑下班。后来把老成员熬走我就成了主程。半年后,搞前后端分离,想去开发前端vue,上级不同意,挺遗憾的。
现在我还是觉的前端开发挺容易的,不像后端又是java又是服务器k8s容器普罗米修斯监控,一套下来人都傻了。面试还要JVM,源码,又不是看不懂源码。我为啥要记那么多呢?我还是比较喜欢啥都学一些,深入一下就行了,无法深耕某一领域了。
追加更新>>加快入土
追加更新与2022年3月2日
细节场景
这时又遇到经典的左右浮动环节,记得在大学上的第一课网络设计入门,老师叫高雪妮是一个主任,教html设计,当时用的最多的是float,啥也不会先学着吧。不过现在使用flex布局再混合float就很难调节div布局了,所以还是用flex实现类似浮动的效果。

新手这样写:
<!-- 中 -->
<div style="width: 40%;margin: 0 1px;">
<div style="width: 100%;">
<h style="float: left;">每日更新列表</h>
<a style="float: right;">更多</a>
</div>
</div>
虽然能达到效果,但不适合flex混合,例如uniapp等不推荐用浮动
老手会这样写:
<!-- 中 -->
<div style="width: 40%;margin: 0 1px;">
<div style="width: 100%;display: flex;flex-direction: row;">
<div style="flex: 1;background-color: aqua;">每日更新列表</div>
<div>更多</div>
</div>
</div>

要学会用flex:1撑开div很有用,别忘了父标签的行布局:display: flex;flex-direction: row;
还能这样写
<!-- 中 -->
<div style="width: 40%;margin: 0 1px;">
<div style="width: 100%;display: flex;flex-direction: row;">
<div>每日更新列表</div>
<!-- 中间用flex:1 撑开 -->
<div style="flex: 1;background-color: green;"></div>
<div>更多</div>
</div>
</div>
要学会用flex:1撑开div很有用,别忘了父标签的行布局:display: flex;flex-direction: row;

例如削微杂点的行列撑开效果:

<!-- 中 -->
<div style="width: 40%;margin: 0 1px;">
<div
style="width: 100%;display: flex;flex-direction: column;height: 230px;background-color: bisque;">
<h3 style="text-align: center;">回乡偶书</h3>
<small style="text-align: center;">贺知章</small>
<p>
少小离家老大回,乡音无改鬓毛衰。
<br>
儿童相见不相识,笑问客从何处来。
</p>
<!-- 上下撑开 -->
<div style="flex: 1;"></div>
<div style="display: flex;flex-direction: row;padding: 10px 10px;">
<!-- 左右撑开 -->
<div style="flex: 1;"></div>
<span>2022年3月2日</span>
</div>
</div>
</div>
前端布局flex从入门到入土的更多相关文章
- 温馨小程序前端布局Flex
伸缩容器支持的属性有: 1,display 2,flex-direction 3,flex-wrap 4,flex-flow 5,justify-content 6,align-items 7,ali ...
- 前端入门5-CSS弹性布局flex
本篇文章已授权微信公众号 dasu_Android(大苏)独家发布 声明 本系列文章内容全部梳理自以下四个来源: <HTML5权威指南> <JavaScript权威指南> MD ...
- 前端布局之Flex语法
前端布局一直是CSS的一个重点应用,然而基于盒子模型的传统布局方案,依赖display + position + float 属性,对于某些特殊的布局非常不方便,比如:垂直居中就不容易实现.针对这一情 ...
- 前端布局神器 display:flex
前端布局神器display:flex 一直使用flex布局,屡试不爽,但是总是记不住一些属性,这里写来记录一下. 2009年,W3C提出了一种新的方案--Flex布局,可以简便.完整.响应式地实现 ...
- css3弹性盒模型flex快速入门与上手(align-content与align-items)
接着上文css3弹性盒模型flex快速入门与上手1继续,上文还剩下两个父容器的属性align-items和align-content. 一.align-content:多行的副轴对齐方式 含义 多行的 ...
- 常用前端布局,CSS技巧介绍
常用前端布局,CSS技巧介绍 对前端常用布局的整理总结,并对其性能优劣,兼容等情况进行介绍 css常用技巧之可变大小正方形的绘制 1:若通过设置width为百分比的方式,则高度不能通过百分比来控制. ...
- Hexo结合Stun静态博客搭建从入门到入土
摘要 安装npm,安装hexo相关依赖,安装主题stun 修改hexo配置,修改stun配置,部署到github,gitee实现静态访问 给博客加上全局搜索,访问量统计 hexo博客编写模板 tips ...
- 要web开发精品教程吗?免费无广告一百期连讲的那种-逐浪CMS前端开发100期入门教程全面开放
要web开发精品教程吗?免费无广告一百期连讲的那种-逐浪CMS前端开发100期入门教程全面开放 大师主讲 经验难得 由逐浪CMS首席架构师发哥老师,亲自主理讲解. 历时一年精心打造, 汇聚了互联网诞生 ...
- (转)前端构建工具gulp入门教程
前端构建工具gulp入门教程 老婆婆 1.8k 2013年12月30日 发布 推荐 10 推荐 收藏 83 收藏,20k 浏览 本文假设你之前没有用过任何任务脚本(task runner)和命令行工具 ...
- 弹性伸缩布局-flex
弹性伸缩布局-flex 引言:本文主要参照阮一峰的网络日志 .郭锦荣的博客总结完成. 正文: 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性 ...
随机推荐
- strimzi实战之一:简介和准备
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于strimzi strimzi是一个开源项目,已加 ...
- Llama2-Chinese项目:2.3-预训练使用QA还是Text数据集?
Llama2-Chinese项目给出pretrain的data为QA数据格式,可能会有疑问pretrain不应该是Text数据格式吗?而在Chinese-LLaMA-Alpaca-2和open-l ...
- How to Install Bugzilla on Ubuntu 20.04
In this blog post, we are going to explain in step-by-step detail on how to install Bugzilla on Ubun ...
- How to Install Python on Linux
Summary Hostmonster uses the preinstalled version of Python that ships with CentOS. Because of this ...
- Treap树学习笔记
等我写完. 普通fhq treap: enum { Maxn = 1000005 }; struct FHQTreap { int lson[Maxn], rson[Maxn], data[Maxn] ...
- 数字逻辑笔记 全加器全减器8421BCD转余3
二进制全加器 全减器 十进制加法 8421BCD转余3码
- 邮差之死--python源代码
"""sth imported""" import time import os '''2 flags''' flag = 0 tmp = ...
- 基于C# Socket实现的简单的Redis客户端
前言 Redis是一款强大的高性能键值存储数据库,也是目前NOSQL中最流行比较流行的一款数据库,它在广泛的应用场景中扮演着至关重要的角色,包括但不限于缓存.消息队列.会话存储等.在本文中,我们将介绍 ...
- Vue3 第三章
Vite目录 public 下面的不会被编译 可以存放静态资源 assets 下面可以存放可编译的静态资源 components 下面用来存放我们的组件 App.vue 是全局组件 main ts 全 ...
- 【uniapp】【外包杯】学习笔记day08 | 初具雏形+后期任务
总的来说就是BBQ了,基本上前后端都有了阶段性成果,但是问题在于是否符合我们题目的要求,所以也需要进行很详细的改动,其次就是小程序的支付功能以及登录功能1还有具体配置还是不太行. 然后下载的sprin ...