导航栏最终效果
① 要使用的基础样式有以下五个
设置宽度 width:100vw;
设置高度 height:10vw;
设置字体大小 font-size: 3vw;
设置字体颜色 color: #fff;
设置背景颜色 background:#1777ff;
② 要使用的布局样式有以下九个
盒子内部挤压 padding: 0 1vw;
防止内部挤压宽度溢出 box-sizing: border-box;
开启弹性布局 display: flex;
弹性布局之横向两端对齐 justify-content: space-between;
弹性布局之横向左对齐 justify-content: flex-start;
弹性布局之横向右对齐 justify-content: flex-end;
弹性布局之横向居中对齐 justify-content: center;
弹性布局之枞向居中对齐 align-items: center;
弹性布局之宽度等分 flex: 1;
③ 要使用的图标样式有以下俩个
菜单图标 format-justify
搜索图标 search
④ 要使用的 HTML 标签 有 以下俩个
div 标签 和 i 标签
⑤ 要使用 class 名 有 以下
导航栏 navbar
两端对齐 space_between
左对齐 flex_start
右对齐 flex_end
水平居中 flex_center
图标 icon
⑥ 开始布局前 先观察要实现的导航栏 的结构
布局 规则 有 从外层向内写 。从左侧向右侧写
最外层 是一个 背景色#1777ff 高度 10vw 宽度 100vw 的盒子 我们用 navbar 命名
效果
⑦ 再观察内部 是如何布局的
很明显是左中右 等分的 这个时候需要用到弹性布局的 横向 两端对齐
用 space_between 命名一个class
效果
这个时候 div 垂直排列 给 space_between 加个 开启弹性布局
效果
里面的div 横向排列了。但是都在左边 给 space_between 加个两端对齐
效果
接下来 先调一下细节 让文字变成白色 字体大小给3vw 不用给每个div加 只需要给最外层的div
效果
现在文字 都顶在最上面 让他居中。可以使用 弹性布局之 垂直居中
效果
失败了。。找一下原因 给 space_between 加个其他背景色background: green;
效果
原因找到了 space_between 两端对齐的这个class 没有高度 加个高度
效果
垂直居中了。
两边好像太顶 了。给最外层 一个 内部挤压 padding: 0 1vw;
效果
又出问题了。。右边 被顶出去了。 原因是 padding内部挤压会增加外层的宽度 造成宽度超出 解决办法 使用 防止内部挤压宽度超出
效果
ok 去掉 两端对齐的背景色了。
效果
⑧ 内部两端对齐 完成后 开始 左边 部分 先 观察原图
一个 图标 一个 文字
先写div
效果
挤到一起了。
解决办法 让 左边的div 开启弹性布局 让里面的内容 左对齐 所以起名 flex_start
看下效果
是分开了。但是图标的位置不对。。。
给图标 套个div起名字叫icon 图标的意思 。然后设置宽高 和背景色 看看问题
效果
.
图标位置跑偏的。。这个时候可以 在icon 里面 加一个 弹性布局之水平居中对齐 命名为 flex_center
效果
水平居中了但是 没有垂直居中 在加个 弹性布局垂直居中
效果图
还是不对。。 给flex_center 加个背景色看看什么原因
红色没出来。。。 原因知道了。flex_center没有高度
效果
图标是居中了。 左边的字 又不居中了。。。 直接给 弹性布局 左对齐也加个垂直居中 和 高度 看看
效果
居中了 。。
但是 又出问题了
中间的字 不横向居中了。。
这个问题是 弹性布局 里面有左中右 其中一个宽度 超过其他两个。其他两个就会被加压 。 解决办法是让左边 和右边 宽度一致 中间的文字 就会在中间 。弹性布局中推荐使用 元素等分 flex:1;
先给右边起个名字
然后给左右 flex:1
效果
又出问题了 右边的文字跑到左边了。 这个时候使用 弹性布局之 右对齐 命名
右侧改下名
效果
这下中间的文字居中了。去掉左边的背景色
效果
⑨ 接下来是右侧 。 复制左边的 图标 。放到 flex_end 中试试
效果
换一下图标名 换成搜索的 gg-search
效果
整理下样式 格式 导航栏 就完成了。
重点知识 弹性布局