【CSS动效实战(纯CSS与JS动效)】02 flex 布局实战(仿 JD 及 gitCode 布局)及 media 自适应初探 下

二、flex 仿 gitCode 布局 及 自适应

首先查看我们的页面:
在这里插入图片描述
这个时候直接顶部一个块,下面分为左中右三个块,然后就解决了,是不是很简单?相比刚刚那么这个简单多了。那就来做吧。

2.1 基本布局

首先给一个 style 价格 flex,一样的开头:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>gitcode flex demo</title><style>.flex{display: flex;}</style>
</head>
<body></body>
</html>

接着 给予 body flex 样式,并且由于当前 flex 是竖着的,那么给予一个 cloumn 样式确定方向还有对应的背景色、边距等,这些都不存在什么疑问吧?学过上一小节的都看得懂吧,代码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>gitcode flex demo</title><style>* {margin: 0;}body {height: 100vh;}div {background-color: white;margin: 4px}.flex{display: flex;}.column{flex-direction: column;}.bgcolor {background-color: rgb(230, 230, 230);}</style>
</head>
<body class="flex column bgcolor"></body>
</html>

那么接下来咱们就在 body 里面新建两个 div:

<body class="flex column bgcolor"><!--头--><div style="height: 60px;"></div><!--内容--><div style="flex:1"></div>
</body>

此时页面效果如下:
在这里插入图片描述
一点问题没有,那么接下来在内容的div 里新建 3 个 div 分别是左中右:

<body class="flex column bgcolor"><!--头--><div style="height: 60px;"></div><!--内容--><div style="flex:1"><!--左--><div></div><!--中--><div></div><!--右--><div></div></div>
</body>

一看这 3 个 div 不用占满行,那么肯定,给予这个 内容 div 一个 flex ,并且给予内部元素不大于 1 的比例即可,还有一定要给予灰色背景,不然全白了看不见:

<!--内容-->
<div class="flex bgcolor" style="flex:1"><!--左--><div style="flex:0.2"></div><!--中--><div style="flex:0.4"></div><!--右--><div style="flex:0.2"></div>
</div>

那么既然不占满行,那么肯定需要对应的居中,给予居中样式:

<style>
.center {justify-content: center;
}
</style>

调用后页面如下:
在这里插入图片描述

2.2 左侧元素内部排列

接着左侧一看就是竖着的:
在这里插入图片描述
那么给予一个样式 column 以及 flex:

<!--左-->
<div style="flex:0.2" class="column"></div>

接着往内部添加 3 个 div 以及对应高度,若想看见这 3 个 div,你还需要给予这个 左 的 div 背景色:

<!--左-->
<div style="flex:0.2" class="column flex bgcolor"><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div>
</div>

效果如下:
在这里插入图片描述

2.3 右侧元素内部排列

右侧也一样,直接给予多个 div 并且设置对应的 flex 样式即可:

<!--右-->
<div style="flex:0.2" class="column flex bgcolor"><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div>
</div>

效果如下:

在这里插入图片描述
那么中间有点特殊,因为内容很多,那么这个时候我们填充内容会使顶部的内容发生挤压,那么需要一个 flex-shrink: 0; 使其内容不压缩,我们直接给予 头部 这个属性即可:

<!--头-->
<div style="height: 60px;flex-shrink: 0;"></div>

接着给予中部巨多 div 内容,并且设置对应的高度:

<!--中-->
<div style="flex:0.4" class="column flex bgcolor"><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div>
</div>

div过多超出页面后我们可以滚动查看底部 div:
在这里插入图片描述
但是在原本的 gitcode 页面中顶部是一直都存在的,不会拖动内容后顶部栏就消失,那么怎么做呢?

我们直接给予内容的 div 一个 属性 overflow 即可:

<!--内容-->
<div class="flex bgcolor center" style="flex:1;overflow: auto;">

overflow auto 会给予超出内容一个滚动条,此时滑动再多,当前页面的头部也将会一直显示:
在这里插入图片描述
此部分完整代码如下:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>gitcode flex demo</title><style>* {margin: 0;}body {height: 100vh;}div {background-color: white;margin: 4px}.flex {display: flex;}.column {flex-direction: column;}.bgcolor {background-color: rgb(230, 230, 230);}.center {justify-content: center;}</style>
</head><body class="flex column bgcolor"><!--头--><div style="height: 60px;flex-shrink: 0;"></div><!--内容--><div class="flex bgcolor center" style="flex:1;overflow: auto;"><!--左--><div style="flex:0.2" class="column flex bgcolor"><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div></div><!--中--><div style="flex:0.4;" class="column flex bgcolor"><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div></div><!--右--><div style="flex:0.2" class="column flex bgcolor"><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div></div></div>
</body></html>

2.4 自适应

有时候内容不复杂时,咱们使用自适应将会很方便,当设备是手机访问时,屏幕大小将会改变,原有 PC
页面显示有问题,那么只需要使用 media 即可解决,此时我们先创建一个 空的类样式:.

<style>
.content{}
</style>

接着,给这个 content 样式给予到内容样式之中:

<!--内容-->
<div class="content flex bgcolor center" style="flex:1;overflow: auto;">

随后使用 media:

<style>
@media ( max-width:600px) {.content {flex-direction: column;}
}
</style>

media 表示当 max-width:600px 当前屏幕最大宽度为 600px 时,那么就是移动端设备,直接给予 content 属性为 flex-direction: column;,那么内容就会垂直显示,那么就不会并排,那么就很好的适配了手机:在这里插入图片描述
大家可以拿代码去试试,自己拖动自己的屏幕可以看得到这个效果,完整代码如下:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>gitcode flex demo</title><style>* {margin: 0;}body {height: 100vh;}div {background-color: white;margin: 4px}.flex {display: flex;}.column {flex-direction: column;}.bgcolor {background-color: rgb(230, 230, 230);}.center {justify-content: center;}.content {}@media ( max-width:600px) {.content {flex-direction: column;}}</style>
</head><body class="flex column bgcolor"><!--头--><div style="height: 60px;flex-shrink: 0;"></div><!--内容--><div class="content flex bgcolor center" style="flex:1;overflow: auto;"><!--左--><div style="flex:0.2" class="column flex bgcolor"><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div></div><!--中--><div style="flex:0.4;" class="column flex bgcolor"><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div><div style="height: 150px;flex-shrink: 0;"></div></div><!--右--><div style="flex:0.2" class="column flex bgcolor"><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div><div style="height: 150px;"></div></div></div>
</body></html>

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

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

相关文章

C语言按行和列求平均成绩代码(指针,二维数组)

如下所示成绩表,如何按行(每个人)或按列(每门课)的平均成绩? 结果: 文章目录 1. 自定义行平均函数2. 自定义列平均函数3. main()函数调用平均函数1. 自定义行平均函数 float save(float **PA,int M,int

架构师必须知道的架构设计原则

目录 一、前言 二、软件设计原则 GRASP通用职责分配软件模式 1. 信息专家(Information Expert) 2. 创建者(Creator) 3. 低耦合(Low Coupling) 4. 高内聚(High Cohesion) 5.控制器(Controller) 6. 多态(Polymorphism) 7. 纯虚构(Pure Fabrication) 8. 间接(Indirectio…

百度:病种类贴吧全面停止商业合作

新浪科技讯 1月12日上午消息&#xff0c; 百度今日就热门疾病被出卖一事向新浪科技发布对外公告&#xff1a;病种类贴吧全面停止商业合作 只对权威公益组织开放。百度方面在公告中表示&#xff0c;为了规范具有明显商业属性贴吧的运营管理&#xff0c;并提升贴吧的内容质量和用…

【CSS动效实战(纯CSS与JS动效)】02 flex 布局实战(仿 JD 及 gitCode 布局)及 media 自适应初探

一、flex 仿 JD 布局 首先&#xff0c;我们在编辑器中&#xff0c;写上基础代码&#xff0c;当然要在 style 中加上一个 flex 类&#xff0c;用于 flex 布局的定义&#xff0c;这个是必然需要的&#xff0c;在此一定得加上。 <!DOCTYPE html> <html lang"en&qu…

C语言sin()函数绘制正弦曲线代码(0-2π)

本文实现y=sin(x)正弦曲线在0-2π范围内的曲线图形,如下图所示: 完整C语言代码: #include<stdio.h> #include<math.h> main() {double y; int x,m,i; printf

MAUI模板项目闪退问题

MAUI模板项目闪退问题在MAUI最初发布的时候就曾创建过几个模板项目进行体验过&#xff0c;没遇到什么坑。由于最近需要开发针对餐饮行业的收银机&#xff08;安卓系统&#xff09;开发一款应用&#xff0c;这种收银机一般配置不咋滴&#xff0c;系统版本和性能也肯定比不上我们…

真正CSDN博客文章一键转载插件(含源码)

插件地址&#xff1a;https://greasyfork.org/zh-CN/scripts/381053-csdn%E5%8D%9A%E5%AE%A2%E6%96%87%E7%AB%A0%E8%BD%AC%E8%BD%BD%E6%8F%92%E4%BB%B6 插件安装使用说明请参阅&#xff1a;https://greasyfork.org/zh-CN 文章阅读界面 文章发布页面 源代码 // UserScript //…

微软欲闭源VS Code的C#扩展惹众怒

VS Code 是一个非常棒的代码编辑器&#xff0c;轻量&#xff0c;免费&#xff0c;跨平台。并且凭其丰富且强大的扩展功能受到众多开发者的青睐&#xff0c;你可以在上面愉快的进行各种语言的开发工作。就在前两天&#xff0c;微软的 .NET 和 Visual Studio 的项目经理 Tim Heue…

Python3.6学习笔记(三)

面向对象编程 面向对象编程 Object Oriented Programming 简称 OOP&#xff0c;是一种程序设计思想。OOP把对象作为程序的基本单元&#xff0c;一个对象包含了数据和操作数据的函数。 面向过程的程序设计把计算机程序视为一系列的命令集合&#xff0c;即一组函数的顺序执行。为…

EnumMap

什么是EnumMap Map接口的实现&#xff0c;其key-value映射中的key是Enum类型&#xff1b; 补充说明 其原理就是一个对象数组&#xff0c;数组的下标索引就是根据Map中的key直接获取&#xff0c;即枚举中的ordinal值&#xff1b; 效率比HashMap高&#xff0c;可以直接获取数组下…

【CSS动效实战(纯CSS与JS动效)】03 精美手风琴侧边栏完整示例教程 示例1

本节示例演示&#xff1a; 一、基本布局 一般来说&#xff0c;侧边栏的位置是在左侧&#xff0c;咱们为了更好的展现侧边栏的效果&#xff0c;并且在本节中不涉及过多的内容&#xff0c;我们只需要直接给一个 div 宽度为 15即可&#xff0c;接着再到这个 div 中编写对应的侧…

Windows 服务 同时启动多个服务

Windows 服务 同时启动多个服务独立观察员 2019.02.26最近需要开发 Windows Service 程序&#xff0c;之前没有接触过&#xff0c;所以把了解到的一些东西记录下来。Windows 服务程序可以简单理解为需要长时间在后台运行&#xff0c; 而又不需要界面显示的程序&#xff0c;在计…

一、基本remix环境及HelloWord contract《2022 solidity8.+ 版本教程到实战》

这个系列是 solidity8.版本的教程&#xff0c;既然学习了 solidity 就应该明白智能合约是啥&#xff0c;在此系列文章中将不赘述基础概念&#xff0c;只讲解对应的语法&#xff0c;希望读者理解。 环境 solidity 版本&#xff1a;8.(2022年9月8日 最新版本) IDE&#xff1a;h…

遥感空间尺度转换技术(升尺度和降尺度)

遥感图像的一个基本特征是空间分辨率。目前已经可以有效获取大量不同空间分辨率遥感数据。 尺度和尺度转换已经成为遥感的核心问题之一,人们已经从不同角度提出了这一问题。尺度转换分为两种: 升尺度:从高分辨率到低分辨率的转换;降尺度:从低分辨率到高分辨率的转换。文章…

three.js插件实现立体动感视频播放效果

2019独角兽企业重金招聘Python工程师标准>>> three.js插件实现立体动感视频播放效果 效果描述&#xff1a; 立体式视频播放效果 大家使用的时候可得注意了&#xff0c;它并不支持低版本浏览器 使用方法&#xff1a; 1、将body中的代码部分拷贝到你需要的地方,将视频…

Python3.6学习笔记(五)

网络编程 网络程序出现的比互联网要早很多&#xff0c;实现方式主要依靠网络上不同主机间进程的通信&#xff0c;通信协议最重要的是TCP/IP协议。在这两个协议基础上还有很多更高级的协议&#xff0c;包括HTTP、SMTP等。要进行两个主机间的网络通信&#xff0c;必须四个元素&a…

ArcGIS实验教程——实验三十三:ArcScan自动矢量化完整案例教程

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据)》 文章目录 1 ArcScan 简介2. ArcScan使用前提及注意事项3. ArcGIS自动矢量化案例1 ArcScan 简介 ArcScan是ArcGIS Desktop的打展模块,是栅格数据矢量化的套工具集, 用这些工具,可以创建要素,将…

抢先体验全新标签页!Windows 11 必备小工具下载

面向 Dev 频道的 Windows 预览体验成员&#xff0c;微软近日推送了 Windows 11 新预览版&#xff0c;为文件资源管理器带来了全新标签页功能。Windows 11 文件资源管理器全新标签页介绍在 Windows 11 预览版中&#xff0c;新功能分别向 A 和 B 两组用户的电脑推送测试。A 用户的…

二、基本类型及函数使用《2022 solidity8.+ 版本教程到实战》

一、基本变量类型 solidity 中的基本变量类型与一般编程中类似&#xff1a; // SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.0; contract Hello{string public say"Hello 1_bit";int public ival-1;uint public uval1;address public aval0xd9145CCE52…

Markdown编辑器模板

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…