如何通过高效灵活的网页设计布局,深入掌握Div元素使用与浮动布局策略?
- 内容介绍
- 文章标签
- 相关推荐
推倒重来。 哈喽小伙伴们!有没有过盯着电脑敲代码却死活摆不正页面位置的时刻?明明想让头像在左边文字在右边 后来啊一刷新不是叠在一起就是偏到天边…别慌 今天咱就来唠唠网页设计里最基础也最核心 的 —— 怎么用 Div 元素玩出灵活高效 的 布局 顺便把浮动布局那套策略也整明白 保准你下次写页面再也不抓耳挠腮~
先说说得搞清楚 Div 到底是个啥玩意儿?它是 HTML 里 “division ” 的缩写 翻译过来就是 “分割 ” 嘛 简单说就是网页里 的 “小盒子 ” —— 你可以把头部导航包一个 Div 中间内容区包一个 Div 底部版权信息再包一个 Div …相当于把整个页面拆成一个个独立 的小房间 想怎么装修 就怎么装修 超灵活有没有?
自打互联网兴起那会儿起 Div 就成了网页搭建 的 “老黄牛 ” —— 主要原因是它够中立够包容 不管你想加啥样式 它都能稳 当冤大头了。 稳接住 CSS 的指令.早年做静态页面时甚至有人戏称 “网页 = Div + CSS ” 虽然有点夸张但也说明它地位有多稳.
我服了。 那到底怎么用 Div 玩出高效 layout 呢?且听我慢慢道来~
先从最接地气 的 “块儿状堆法 ” 说起
泰酷辣! 记得我刚学 HTML 的时候 老师第一句就让记: “块级元素占一整行 ” —— Div 默认就是块级元素啊喂 !这意味着就算你给 Div 里只写俩字儿它也会撑开一整行空间.这种特性用来搞基础布局不要太方便 !
比如说想做个简单 的两栏博客页:左边放目录导航右边放文章正文.怎么做?很简单 —— 先整个大 Div当容器 把左右俩小 Div 装进去. 给 .nav 设置 width:200px; float:left; 剩下 的 .content ?不用管宽度 !主要原因是 float:left会让它自动填满 nav旁边 的剩余空间 ——完美 !是不是比想象中简单多?,放心去做...
不过新手常踩一个坑:忘了清浮动 !要是不给父容器 .page -wrapper加 clear:both;或者 overflow:hidden;等会儿别的元素 会屁颠屁颠跑上来跟 nav/content叠在一起.我当初第一次犯这错时差点把键盘砸了 ——好好 的页脚咋 “飞 ”到内容区上面去了 ?害别提多蠢了…
再进阶 : “格子阵玩法 ” ——网格系统原来是这么回事
后来做项目发现两栏不够用了 ?想搞三列产品展示或者四格图文混排 ?这时候 “网格系统 ”就该上场啦 ~,地道。
说白了网格系统就是 “用嵌套 Div搭格子 ” ——比如外面套个 .grid -container当总格子框里面再塞若干 .grid -item当小格子.关键是控制好每个小格子 的宽度和间距: 要是想做三列等宽 layout就让每个 .grid -item占 width:30%; margin-right:5%;再说说一个去掉 margin-right免得超出容器. 或者更偷懒 的办法 ?直接用 CSS 的 calc函数算宽度: width:calc; 这样就算屏幕宽窄变化格子也能跟着自适应~,一阵见血。
就这? 不过玩网格 system有个小技巧:别追求 “绝对完美对齐 ” ——留点呼吸感才高级 !曾经有次帮朋友改海报页他非让每个图片框尺寸差不到1px后来啊看起来特别拥挤反而不如稍微松快一点 的版式耐看.咱就是说审美这东西有时候 “差不多就行 ”~
Flexbox :专治各种 “对齐疑难杂症 ” 的神器
如果说前面两种是 “传统打法 ” Flexbox绝对是新时代 的 “降维打击武器 ” !记得第一次见 我怀疑... Flexbox演示时我都惊呆了 ——垂直居中这种以前要写十行代码 的操作如今三句 CSS就能搞定 ?
举个栗子 :想让一个按钮在父容器里水平垂直都居中 ? 只要给父容器加 display:flex; align-items:center; justify-content:center;就行 !是不是 simple到想哭 ?
琢磨琢磨。 更绝 的是它 的 “弹性伸缩 ”能力 ——比如移动端导航要排成一列 PC端要排成一行 ?只需改一下 flex-direction属性 : mobile端设 flex-direction:column; PC端设 flex-direction:row;瞬间切换 !当年为了适配不同屏幕大小写过上千行媒体查询代码如今只用几行 Flexbox就能搞定 ——效率差太远啦 ~
CSS Grid :二维全能选手 ,复杂布局一把梭
要是 Flexbox是 “一维侠客 ” CSS Grid绝对是 “二维王者 ” ——能一边控制行和列 ,连 操作一波... 后台管理系统那种 “左边固定导航 +上面固定表头 +中间滚动内容区 ” 的复杂 layout都能分分钟拿下 !
比如设计一个后台首页 : 第一行 : height:60px; 的顶部菜单栏 ; 第二行开始 :左边一列 width:250px; 的导航栏 +右边占剩余所有列 的内容区 ;
我们都经历过... 用 Grid实现只要三步 : 1.给父容器设 display:grid; grid-template-rows:auto 1fr; ; 2.第二行再分成两列 : grid-template-columns:250px 1fr; 3.done !是不是比切豆腐还快 ?
也许吧... 不过 Grid刚出来时争议挺大有人觉得 “太先进不好学 ”但如今浏览器兼容性早不是问题就连手机端 Safari都支持得好好の ~放心冲就完事儿 !
重点来了 !这些坑踩不得 ,否则哭唧唧
说了这么多好用 的技巧 ,可千万别忽略那些能让你 “账号注销 ” 的大坑啊喂 ~
first blood :滥用 Div会拖垮你的网站
见过有人写单页简历愣是嵌套了快200个 Div吗 ?看着结构清晰实则 browser渲染时要处理几百层节点速度慢到怀疑人生 ——用户打开页面等3秒还没加载完直接反手一关 ,更别说吸引搜索引擎青睐了.记住 :能用 semantic标签代替 Div就别用多余の Div!简洁才是王道~
second blood :不懂语义化 = SEO死刑
哦对了 !这里必须插一句很多新人问爆の问题 :「为什么百度不收录我的站点?」原因千千万但超常见の一个元凶就是「语义化缺失」!搜索引擎爬虫像只瞎眼松鼠只会爬有明确 “身份标识 ”の内容 ——你偏要用一堆无意义の Div裹住 h1标题爬虫根本分不清哪个才是重点 ;或者把正文藏在第8层嵌套の Div里爬虫嫌麻烦直接扭头走掉…这样の页面权重低到地底 ,想被收录?门儿都没有!,太暖了。
所以啊乖乖听话 :该用 h1-h6标标题就用 ,重要內容放 article标签里 另起炉灶。 ,导航永远套 nav ——这些小动作能让爬虫瞬间读懂你的页面 ,SEO分数蹭蹭涨~
third blood :忽略兼容 =白做工
闹笑话。 虽说现在大部分浏览器都支持 Flex/Grid但总有那么些倔强の老版本偏不听劝.咋办?教你俩懒人办法 : ①关键部位先用 Grid/Flex实现 ,再给老浏览器加份「备胎样式」; ②直接甩锅给前端框架 !Vueの Element UI丶Reactの Ant Design里现成の Layout组件自带兼容性处理调几个参数就能用效率拉满不说还不用秃头改bug~
再说说想说 : practice makes perfect !
唠了这么多是不是觉得「高效灵活 layout」没想象中难?本质上不过是「选对工具 +避开坑洼」而 可以。 已.Div从来不是什么高冷之物它只是我们搭建网页の一块砖 ——搭平房可以搭高楼也行全看怎么搬 ~
刚开始肯定会手残搞错 float方向或是 Grid行列参数没关系 !我当初仿小米官网首页改了得有40遍才勉强像回事 ;现在随便拿个原型图过来半小时搞定不在话下.所以啊小伙伴们别慌一步一步来多敲两行代码多仿两个界面总能摸出门道儿の ~,开搞。
等你某天写出「加载快丶样式靓丶兼容全丶SEO棒」の页面时回头看如今の困惑只会淡淡一笑 :「害当初这点小事至于愁成那样吗?」,造起来。
怎么样?这期干货够不够饱?赶紧去翻开源码试着敲一遍吧~遇到问题随时来找我唠哦!,研究研究。
推倒重来。 哈喽小伙伴们!有没有过盯着电脑敲代码却死活摆不正页面位置的时刻?明明想让头像在左边文字在右边 后来啊一刷新不是叠在一起就是偏到天边…别慌 今天咱就来唠唠网页设计里最基础也最核心 的 —— 怎么用 Div 元素玩出灵活高效 的 布局 顺便把浮动布局那套策略也整明白 保准你下次写页面再也不抓耳挠腮~
先说说得搞清楚 Div 到底是个啥玩意儿?它是 HTML 里 “division ” 的缩写 翻译过来就是 “分割 ” 嘛 简单说就是网页里 的 “小盒子 ” —— 你可以把头部导航包一个 Div 中间内容区包一个 Div 底部版权信息再包一个 Div …相当于把整个页面拆成一个个独立 的小房间 想怎么装修 就怎么装修 超灵活有没有?
自打互联网兴起那会儿起 Div 就成了网页搭建 的 “老黄牛 ” —— 主要原因是它够中立够包容 不管你想加啥样式 它都能稳 当冤大头了。 稳接住 CSS 的指令.早年做静态页面时甚至有人戏称 “网页 = Div + CSS ” 虽然有点夸张但也说明它地位有多稳.
我服了。 那到底怎么用 Div 玩出高效 layout 呢?且听我慢慢道来~
先从最接地气 的 “块儿状堆法 ” 说起
泰酷辣! 记得我刚学 HTML 的时候 老师第一句就让记: “块级元素占一整行 ” —— Div 默认就是块级元素啊喂 !这意味着就算你给 Div 里只写俩字儿它也会撑开一整行空间.这种特性用来搞基础布局不要太方便 !
比如说想做个简单 的两栏博客页:左边放目录导航右边放文章正文.怎么做?很简单 —— 先整个大 Div当容器 把左右俩小 Div 装进去. 给 .nav 设置 width:200px; float:left; 剩下 的 .content ?不用管宽度 !主要原因是 float:left会让它自动填满 nav旁边 的剩余空间 ——完美 !是不是比想象中简单多?,放心去做...
不过新手常踩一个坑:忘了清浮动 !要是不给父容器 .page -wrapper加 clear:both;或者 overflow:hidden;等会儿别的元素 会屁颠屁颠跑上来跟 nav/content叠在一起.我当初第一次犯这错时差点把键盘砸了 ——好好 的页脚咋 “飞 ”到内容区上面去了 ?害别提多蠢了…
再进阶 : “格子阵玩法 ” ——网格系统原来是这么回事
后来做项目发现两栏不够用了 ?想搞三列产品展示或者四格图文混排 ?这时候 “网格系统 ”就该上场啦 ~,地道。
说白了网格系统就是 “用嵌套 Div搭格子 ” ——比如外面套个 .grid -container当总格子框里面再塞若干 .grid -item当小格子.关键是控制好每个小格子 的宽度和间距: 要是想做三列等宽 layout就让每个 .grid -item占 width:30%; margin-right:5%;再说说一个去掉 margin-right免得超出容器. 或者更偷懒 的办法 ?直接用 CSS 的 calc函数算宽度: width:calc; 这样就算屏幕宽窄变化格子也能跟着自适应~,一阵见血。
就这? 不过玩网格 system有个小技巧:别追求 “绝对完美对齐 ” ——留点呼吸感才高级 !曾经有次帮朋友改海报页他非让每个图片框尺寸差不到1px后来啊看起来特别拥挤反而不如稍微松快一点 的版式耐看.咱就是说审美这东西有时候 “差不多就行 ”~
Flexbox :专治各种 “对齐疑难杂症 ” 的神器
如果说前面两种是 “传统打法 ” Flexbox绝对是新时代 的 “降维打击武器 ” !记得第一次见 我怀疑... Flexbox演示时我都惊呆了 ——垂直居中这种以前要写十行代码 的操作如今三句 CSS就能搞定 ?
举个栗子 :想让一个按钮在父容器里水平垂直都居中 ? 只要给父容器加 display:flex; align-items:center; justify-content:center;就行 !是不是 simple到想哭 ?
琢磨琢磨。 更绝 的是它 的 “弹性伸缩 ”能力 ——比如移动端导航要排成一列 PC端要排成一行 ?只需改一下 flex-direction属性 : mobile端设 flex-direction:column; PC端设 flex-direction:row;瞬间切换 !当年为了适配不同屏幕大小写过上千行媒体查询代码如今只用几行 Flexbox就能搞定 ——效率差太远啦 ~
CSS Grid :二维全能选手 ,复杂布局一把梭
要是 Flexbox是 “一维侠客 ” CSS Grid绝对是 “二维王者 ” ——能一边控制行和列 ,连 操作一波... 后台管理系统那种 “左边固定导航 +上面固定表头 +中间滚动内容区 ” 的复杂 layout都能分分钟拿下 !
比如设计一个后台首页 : 第一行 : height:60px; 的顶部菜单栏 ; 第二行开始 :左边一列 width:250px; 的导航栏 +右边占剩余所有列 的内容区 ;
我们都经历过... 用 Grid实现只要三步 : 1.给父容器设 display:grid; grid-template-rows:auto 1fr; ; 2.第二行再分成两列 : grid-template-columns:250px 1fr; 3.done !是不是比切豆腐还快 ?
也许吧... 不过 Grid刚出来时争议挺大有人觉得 “太先进不好学 ”但如今浏览器兼容性早不是问题就连手机端 Safari都支持得好好の ~放心冲就完事儿 !
重点来了 !这些坑踩不得 ,否则哭唧唧
说了这么多好用 的技巧 ,可千万别忽略那些能让你 “账号注销 ” 的大坑啊喂 ~
first blood :滥用 Div会拖垮你的网站
见过有人写单页简历愣是嵌套了快200个 Div吗 ?看着结构清晰实则 browser渲染时要处理几百层节点速度慢到怀疑人生 ——用户打开页面等3秒还没加载完直接反手一关 ,更别说吸引搜索引擎青睐了.记住 :能用 semantic标签代替 Div就别用多余の Div!简洁才是王道~
second blood :不懂语义化 = SEO死刑
哦对了 !这里必须插一句很多新人问爆の问题 :「为什么百度不收录我的站点?」原因千千万但超常见の一个元凶就是「语义化缺失」!搜索引擎爬虫像只瞎眼松鼠只会爬有明确 “身份标识 ”の内容 ——你偏要用一堆无意义の Div裹住 h1标题爬虫根本分不清哪个才是重点 ;或者把正文藏在第8层嵌套の Div里爬虫嫌麻烦直接扭头走掉…这样の页面权重低到地底 ,想被收录?门儿都没有!,太暖了。
所以啊乖乖听话 :该用 h1-h6标标题就用 ,重要內容放 article标签里 另起炉灶。 ,导航永远套 nav ——这些小动作能让爬虫瞬间读懂你的页面 ,SEO分数蹭蹭涨~
third blood :忽略兼容 =白做工
闹笑话。 虽说现在大部分浏览器都支持 Flex/Grid但总有那么些倔强の老版本偏不听劝.咋办?教你俩懒人办法 : ①关键部位先用 Grid/Flex实现 ,再给老浏览器加份「备胎样式」; ②直接甩锅给前端框架 !Vueの Element UI丶Reactの Ant Design里现成の Layout组件自带兼容性处理调几个参数就能用效率拉满不说还不用秃头改bug~
再说说想说 : practice makes perfect !
唠了这么多是不是觉得「高效灵活 layout」没想象中难?本质上不过是「选对工具 +避开坑洼」而 可以。 已.Div从来不是什么高冷之物它只是我们搭建网页の一块砖 ——搭平房可以搭高楼也行全看怎么搬 ~
刚开始肯定会手残搞错 float方向或是 Grid行列参数没关系 !我当初仿小米官网首页改了得有40遍才勉强像回事 ;现在随便拿个原型图过来半小时搞定不在话下.所以啊小伙伴们别慌一步一步来多敲两行代码多仿两个界面总能摸出门道儿の ~,开搞。
等你某天写出「加载快丶样式靓丶兼容全丶SEO棒」の页面时回头看如今の困惑只会淡淡一笑 :「害当初这点小事至于愁成那样吗?」,造起来。
怎么样?这期干货够不够饱?赶紧去翻开源码试着敲一遍吧~遇到问题随时来找我唠哦!,研究研究。

