type
status
date
slug
summary
tags
category
icon
password
- 技术选型
- html+css+js
- 原因:简单方便能快速实现测试效果
- 详细的制作过程与步骤
- html初始设置
- 这一步只需要注意两点
- 1.js文件要放在body最底层 以防止 js读取不到元素信息
- 2.html文件的类名和css js的类名和结构一定要匹配 建议多使用复制 而不是手动输入来添加类名 如果出现效果应用不上 建议强制刷新浏览器 或者使用控制台调试工具 检查样式应用情况
- css初始设置 normalize
- 关键功能与步骤
- 1.全局盒子计算模型
- 2.body 列表和超链接默认样式移除
- 实现代码与方法
- 1.对于盒子模型 我们可以用全局选择器和全局之前之后伪类选择器 将所有的元素的盒子模型计算方式从content-size 变成border-sizing 其中操作代码如下:
- 2.对于列表和超链接
- 首先移除body的margin和padding 让容器内容能够无缝和网页边缘贴合
- 然后移除ul和list-item的默认样式 把li的list-style改为none 并移除ul自带的padding还有margin
- 最后移除超链接的默认样式 将下划线text-decoration还有color自定义一下
- 代码原理 为啥要这么做
- 1.使用盒子模型可以让宽高直接等于设定的宽高 不会出现误差 节省了手动设置尺寸的时间
- 2.移除默认样式就更别说了 就是把原先自带的一些内外填充还有样式重置一下 避免后续制定样式的时候出现偏差
- css样式设计
- 响应式布局设计
- 关键功能与步骤
- 默认大小 900px的情况下 让flex-box 水平均匀分布每个对象
- 小屏幕 414
- 汉堡图标
- 纵向均匀分布每个对象
- 中等 700
- 元素调整
- 大屏幕 1200
- 元素调整
- 特大屏幕
- 使用container max-width+margin auto限制宽度并居中navbar
- 代码实现与方法
- 代码原理 为啥要这么做
- 基础知识(重要):1.flex-box 一种适用于多项目对齐的布局方式 常用于管理navbar等无序列表
- flex 容器属性
- 对齐
- 对齐方向
- row
- column
- 主轴对齐
- start
- end
- center
- baseline
- space
- 交叉轴对齐
- same
- 折叠
- wrap
- 间距
- padding
- gap
- 多对象对齐
- warp align-content
- flex item属性
- 对齐
- jus self
- align self
- 填充
- flex:1/flex-grow:1
- 顺序
- order
- 收缩 shriks
- 覆盖 basics
- 教程链接
- 基础知识2(重点):margin和padding的区别
- margin
- 侧重点 margin侧重调整元素位置
- 对元素的影响
- 不影响元素本身的大小
- 适合领域
- 适合在不影响元素本身大小的情况下调整固定比例的图片 icon 文本段落的具体位置
- padding
- 侧重点
- padding侧重让通过填充内部 让内容变得更美观好看
- 对元素的影响
- padding的填充会影响到自身的大小
- 适合领域
- 所以padding适合一些表单按钮的填充
- 适合一些hover按钮的填充
- 适合一些需要内部间距 又不改变卡片背景的新闻卡片
- 还有一些flex和grid的均匀布局
- 基础知识3:单位 rem em % vh px
- 基础知识4:position relative absolute static fix top left right bottom
- 基础知识5: border: size,style,color;
- 基础知识6:border-ridus:xxpx;
- 基础知识7:居中元素的方法
- flex grid的对齐属性
- 文本对齐属性 text-align
- 水平方向时只对 内联元素和行内块级元素有效 所以 当使用text-align水平对齐文本的时候 需要将文本元素对象设置为内联块级元素
- 视觉上的居中
- 标准流使用 margin padding
- 定位元素使用top等定位
- 使用container居中并限制元素宽度 max-width+margin auto限制宽度并居中navbar
- 注意:除了脱离了文档流的元素 其他元素要想居中 需要有充足的空间
- 难点攻克
- 遇到的问题
- 1.列表横向排布问题
- 2.列表纵向排布和居中对齐的问题
- 3.容器在响应式变换中出现填不满背景的现象
- 如何解决
- 1.分清楚flex模型的容器属性 在navbar ul等容器上添加flex属性 让他沿着row方向水平展开
- 2.使用column竖向展开每一个flex容器 nav和ul 注意 让flex-box对象居中 可以使用flex容器属性自带的对齐方式 也可以使用text-align来居中
- 值得注意的是 1.注意容器宽度 无论使用text-align还是flex 对齐 都需要保证每个flex-container的宽度有足够的活动空间 建议把navbar还有ul的宽度都设置为100% 或者flex-grow:1;
- 2.text-align的特殊性
- 在水平方向上 text-align的只作用于内联元素还有内联块级元素 所以我们需要将每个list-item对象设置为内联对象才能用 如果是垂直方向 则没有这个顾虑 块级元素也能用text-align居中对齐
- 3.由于子元素本身自带了大小属性 当容器大小无法容纳子元素的时候 即使父元素设置了填满宽度
- 如何避免
- 补足相关基础知识 理解代码原理
- 优化改进
- 基本交互
- 悬停效果
- 普通文本变色悬停 .classname:hover{}
- 手机纵向导航居中与悬停效果 注意悬停对象的盒子大小就可以了
- 细节优化
- 响应式空间微调
- 目的
- 各种屏幕元素比例和空间划分是否合理
- 是否 对齐与居中
- 视觉中心有主有次
- 元素是否有设计美感
- 交互效果微调与提升
- 目的
- 动画效果是否恰到好处 多了就减 少了就加 不符合网站风格就换
- 效果添加
- 下划线悬停效果
- 彩虹灯光glow发光效果
- 这一步 为了避免重复造轮子 可以使用以前的积累和动画库 但事后一定得明白他的原理
- js交互
- 按钮开关
- 关键 使用classlist.toggle 类名切换
- canvas粒子星空
- 关键:使用canvas时要将画布放在body最底层 且css的属性也要在最底层 所以设置成static最为合适不过
- 综上所诉
- 关键思维
- 迭代思维 从粗糙到精致 好的东西都不是一蹴而就的 一开始的东西一定很丑 途中一定会出现九九八十一难 我们一定要不断解决问题 将产品一步步的进行完整迭代 才有可能能做好一个东西
- 整体思维 从整体到局部 保证每一步的视觉效果都是完整的
- 以结果为导向的思维 从最开始直接确定最终目标效果 不达目的誓不罢休 不断的查漏补缺 才能真正的有所收获
- 优化方向
- 完成一个项目后 一定要多注释和重构代码 追求更好的结果
- 注释与重构
- 注释
- html部分
- 其他部分
- 重构
- 探索更多的优化方向 追求更少 更快 效果更好的代码
- Author:kuhup沙师弟(站长)
- URL:https://www.kuhup.com//article/433c7527-c28f-4cdc-8530-eb0195cb0f72
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!