对于一个前端菜鸟的我,总是在想,怎么才能学习好前端,如何能够深入一个前端框架,经常在百度中徘徊,总是寻找大神的经验,每次看到一个大神的分享代码或者讲解后,感觉好像一下子会了,然而在自己总结的时候,又好像什么都不会似的。

        这段时间打算开始学习ReactJS,看了阮一峰大神的一些博客,查询了源码的例子看,总是感觉还是在模糊状态,只知道有这些东西,但是还不能熟练的应用,而且发现很多入门的demo都是以todolist的例子来学习的,因此作者也决定从todolist的代码编写来开始一步步的进入前端技术领域,如果此刻你与我一样,是一个前端菜鸟,我们可以一起来学习,来分享。

       上述只是一个引用,现在开始正文部分,做任何事情前,先要明确自己的需求目标,不能想一步做一步,作者先以HTML来实现TODOLIST的效果图,便于后续使用React实现功能,后续继续提供React对TODOLIST功能的实现。先上HTML布局的TODOLIST图:

使用HTML布局实现TODOLIST效果图

从图中我们来分析下TODOLIST主要的布局思路:

  1. 整体考虑,TODOLIST是一个大容器,其中包括一个输入容器和一个显示容器

  2. 输入容器中添加了一个添加按钮和一个输入框实现,实现待办事项的输入

  3. 显示容器包括了待办事项列容器和底部编辑容器

  4. 待办事项列容器中包括了前面的一个按钮、中间显示字段和后面一个按钮

  5. 底部编辑容器包括一个全选按钮、遗留事项和清除按钮

有了这个思想后,我们就按照这个实现html的元素布局,目前触发事件均不在此次的HTML布局中实现,在后续改造为React框架实现的时候,同时完成对应的事件触发。

使用HTML布局实现TODOLIST效果图

提供源码,直接拷贝,按照对应的路径文件加载即可运行。其中本人使用的jquery版本:jquery-1.12.3.js

HTML布局:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>todoList</title>

<link rel="stylesheet" type="text/css" href="./css/common.css">

</head>

<body οnlοad="setWindows()">

<div class="todobody">

<div class="title">todos</div>

<div id="demo" class="container">

<div class="line"></div>

<div class="header">

<a class="plus">+</a>

<input class="new-todo" type="text" placeholder="请输入待办事项" />

</div>

<div class="content">

<div class="todo">

<div class="item">

<a class="namebtn" href="#">√</a>

<span class="name namecompleted">今天下午和客户沟通需求</span>

<a class="namebtn" href="#">×</a>

</div>

<div class="item">

<a class="namebtn" href="#">○</a>

<span class="name">明天制定方案</span>

<a class="namebtn" href="#">×</a>

</div>

<div class="item">

<a class="namebtn" href="#">○</a>

<span class="name">明天下午需要购物</span>

<a class="namebtn" href="#">×</a>

</div>

</div>

<div class="footer">

<a class="footerbtn">Toggle all</a>

<span>2 item left</span>

<a class="footerbtn">Clean completed</a>

</div>

</div>

</div>

</div>

<script src="./js/jquery-1.12.3.js"></script>

<script type="text/javascript">

function setWindows() {

var h = window.innerHeight;

var w = window.innerWidth;

$(".todobody").height(h);

$(".todobody").width(w/4);

$(".todobody").css("margin-left", w/3);

}

</script>

</body>

</html>

CSS样式:

.title {

margin: 0 auto;

text-align: center;

font-size: 250%;

}

.container {

margin: 0 auto;

display: flex;

flex-direction: column;

}

.line {

background-color: #e7e7e7;

height: 1px;

}

/*内容输入区域*/

.header {

height: 50px;

border: 1px solid #e7e7e7;

border-radius: 5px;

margin: 10px;

display: flex;

align-items: center;

}

.plus {

margin: 0 10px;

text-align: center;

font-size: 50px;

}

.new-todo {

flex: 1;

height: 40px;

margin-right: 10px;

border: 0;

font-size: 30px;

}

/*内容显示区域*/

.content {

display: flex;

flex-direction: column;

}

.todo {

border: 1px solid #e7e7e7;

border-radius: 5px;

margin: 0 10px;

display: flex;

flex-direction: column;

}

.item {

height: 40px;

    border-bottom: 1px solid #e7e7e7;

    display: flex;

    align-items: center;

}

.item:last-child {

    border-bottom: 0px solid #e7e7e7;

}

.name {

font-size: 30px;

flex: 1;

}

.namecompleted {

    text-decoration: line-through;

}

.namebtn {

margin: 0 10px;

text-decoration: none;

}

.footer {

margin: 10px 10px;

display: flex;

justify-content: space-between;

}

.footerbtn {

border: 1px solid #EED4D4;

border-radius: 5px;

}


        全栈工程师成长记

目前阶段:

        以个人学习前端技术,来记录如何入门,如何填坑,如何成长,记录过程中可能知识零散,没有整合,如有问题直接添加个人微信号,交流学习;

未来阶段:

        整合个人学习技术,形成书签式的记录分享,为大家填坑,能够尽量少走弯路,成为全栈工程师。

如有兴趣一起学习,一起进步的朋友可以添加个人微信号,互相交流进步。

微信订阅号二维码

使用HTML布局实现TODOLIST效果图

个人微信二维码

使用HTML布局实现TODOLIST效果图

相关文章:

  • 2021-12-01
  • 2021-07-02
  • 2021-05-13
  • 2021-08-19
  • 2022-12-23
  • 2021-06-06
  • 2022-01-23
  • 2022-12-23
猜你喜欢
  • 2022-01-19
  • 2021-11-01
  • 2022-12-23
  • 2021-11-09
  • 2021-12-17
  • 2021-08-15
  • 2021-08-29
相关资源
相似解决方案