我玩游戏换头像不小心选择打开始终是文件管理的相册不小心,我试了清楚数据等,甚至重新下载设置后还是没用

前面学习了如何从零开始编写┅个网站的程序,并部署在本地Web服务器然后部署到云服务器上,通过域名进行访问

基本上整个网站开发的基本入门知识介绍的差不多叻。

这节课来讲讲如何去模仿开发实现一个网站这样今后大家就可以做出各种各样的网站了。

首先来看一下学哥打算模仿开发的网站洳下图所示。

打开浏览器访问这个网站样子是这样的:

为了简化起见,学哥只打算模仿开发首页至于点击某篇文章或者其他链接进入嘚详细页面,模仿开发的原理都是一样的

模仿一个网页的主要流程是这样的:

先分析一下网页的主要结构和元素,然后整理出一个大概嘚排版编程设计然后通过Chrome浏览器的调试工具下载相关的图片资源和CSS资源,然后通过分析获取所需的元素然后开始编写网页文件,按照效果模仿实现

这个网页分析一下,最上面是一个菜单栏里面是各种图标按钮,然后是一个大的图片下面是分为左右2栏,左边的上面昰一个图标按钮左边的下面是一个一个文章标题和内容,右边的上面是五个图标按钮右边的下面是推荐作者列表。

计划用一个table来进行排版总共3行2列,第1行合并2列第2行合并2列,第3行2个td

第1行的td里面放一个table,只有1行很多列,每个按钮占一个td

第2行的td里面放一个图片,實际网站是多个图片切换的由于还未学习javascript修改网页动态显示的技术,因此这里简化起见就放一个大图片就好。

第3行的第1个td和第2个td从仩到下都用p来实现。

使用Chrome浏览器的调试工具

网页当中的图片需要实现下载下来备用。同时网页中用到的一些CSS样式也需要复制下来使用。这样能尽量保持显示效果相似

下载的方法有几种,最简单的就是在浏览器中鼠标光标移动到图片上右键单击,然后选择菜单【图片存储为...】然后保存到本地计算机的某个目录下。

这种方式在某些情况下不太好使比如某些图片资源是通过CSS样式来定义的时候,就无法丅载了比如,鼠标光标移动最上面一排按钮的右侧的【注册】按钮上右键单击,发现并没有出现菜单【图片存储为...】

这时候,就可鉯使用另外一种方法就是使用Chrome浏览器的调试工具。

打开调试工具的方法是鼠标光标移动到希望查看分析的网页元素上,右键单击然後选择菜单【检查】,浏览器就出现了调试工具如下例如,鼠标光标移动最上面一排按钮的右侧的【注册】按钮上右键单击,然后选擇菜单【检查】看到网页效果如下:

点击调试工具最上面一排按钮的最右侧倒数第2个按钮,就是竖着的3个点的按钮会浮出一个菜单,裏面的第一排是Dock side这个是用来设置调试工具位于浏览器的哪个位置的,可以看到默认是位于浏览器右侧的这样会让真正的网页的宽度很窄,看起来不方便

Dock side的3个按钮分别可以设置成:弹出一个新窗口,窗口内靠下窗口内靠右。

来点击当中的按钮将调试工具设置为窗口內靠下。设置后的效果如下:

可以看到调试工具分为上下2行下面一行是Console,就是浏览器的控制台主要用来显示网页的调试信息,目前暂時不用关心等到后面第3章讲到JavaScript的时候会用到。上面一行又分为左右2栏左边显示的是html代码的内容,右侧显示的是CSS样式的内容

此时,如果在浏览器的显示内容里面重新选择一个目标元素,鼠标右键点击【检查】菜单会发现,调试工具里面的焦点也会跟随切换到对应的網页元素的html代码和CSS样式例如,找到网页元素【新上榜】上鼠标右键点击【检查】菜单调试工具里面焦点切换如下:

这样就能很方便的汾析每一个网页元素,看到实际实现的html代码以及对应的CSS样式有利于更方便的模仿实现。

挨个分析网页上的元素能下载的图片文件都下載下来,放到images目录下如果有特殊的文字按钮或显示文字样式,复制对应的CSS样式到一个临时文件中

例如,第一个图标【简书】按钮调試工具里面显示是这样的:

找到img标签的src属性,这就是图片文件的网络地址将这个地址复制出来,鼠标右键单击这个链接地址弹出调试笁具的菜单:

选择菜单项【Edit Attribute】,这时候焦点会进入src的属性值里面,也就是链接地址文本会被选中:

鼠标光标移动到这段文本上面右键單击,出现对这段文本的可以操作菜单选择菜单项【复制】,这段链接文本就会被复制到系统剪贴板中了

然后打开一个新的浏览器Tab窗ロ,将地址复制到网址输入框然后回车,访问这个图片:

鼠标光标移动到图片上右键单击,出现菜单:

选择菜单项【图片存储为...】彈出文件保存界面:

选择要保存到的目录,然后修改文件名然后点击【保存】按钮,完成保存这个图片的操作

接下来,开始分析第2个圖标元素指南针图标元素。鼠标移动到图标上右键菜单【检查】,调试工具显示如下:

可以看到这个图标是一个i标签i标签是什么标簽呢,去查一下html手册吧它是一个表示斜体文本的标签,也就是说这个一个文本了那么为何显示是一个图标呢。继续查看关键在于这3個css属性:iconfont ic-navigation-download menu-icon

可以在右侧的样式窗口的搜索框Filter里面输入css的样式名字来检索看它具体的值,输入iconfont:

其中font-size是显示的删除线这表示这个属性值对于當前这个标签元素是无效的,可能是受父元素或者子元素的影响

如果有碰到之前没有学习过的属性和属性值,可以通过查看CSS手册或者去網上搜索获得相关知识

这些属性值,是可以通过临时编辑来体现对网页的不同的影响

鼠标光标移动到属性font-style上面,可以看到每个属性湔面都出现了一个蓝色的勾选按钮:

这里可以把蓝色的勾选去掉,这样属性值就显示成删除线了就是属性不起作用,同时可以看到体现茬网页元素的显示效果上

例如,将font-style的勾选去掉就能看到对应的指南针图标编程斜体了:

还可以,直接修改属性的值例如鼠标点击font-style的徝normal,可以看到此处变成了一个输入框:

可以直接进行编辑了编辑完成之后回车键,就能看到新的值对网页的影响了如果要改回去,一種办法是再次编辑值还可以点击浏览器的刷新按钮,重新加载页面并重新查看这个元素来调试。

这里可以判断出这些属性都不像是能显示指南针图标的属性,因此继续分析另外一个属性 menu-icon:

也可以判断出menu-icon也不是显示指南针图标的属性,因此继续分析最后一个属性 ic-navigation-download:

可鉯看到搜索的时候关键字可以模糊搜索,不需要全部输入完整

可以判断出,这里的content: "\E69A"; 属性值就是显示指南针图标的关键属性值

content属性是CSS3規范新增的一个样式,用来显示一些特殊字符这里的"\E69A"就是显示一个指南针的字符。

继续分析下一个元素发现下载图标也是用content:"\E69D"; 来显示的特殊字符。

碰到这样的用CSS属性来显示元素的就将这些值记录到一个临时文件中保存起来,后面编程的时候会用到

继续分析下一个元素,搜索框查看对应的CSS样式:

登录按钮主要使用log-in样式,而注册按钮主要使用sign-up样式

写文章按钮主要使用write-btn样式,里面的羽毛笔使用content:"\E60E";属性来实現的

接下来,将当中的图片用截屏工具截取出来保存为head.jpg文件。

接下来分析大图片下面的左边的一堆图文标签按钮。

主要是样式collection和name嘫后把文字前面的小图标下载下来。

接下来分析【新上榜】这个图文按钮

可以分析出来,这就是一个图片外面套了一个a标签

然后来分析第一篇文章标题链接部分。

可以看到并没有太多特殊的技术实现都是之前学习过的。

后面的分析就省略了把这些样式的名字和值保存在临时文件里面。

文件定义和主体框架和排版

接下来开始编写代码模仿实现了。

然后开始编写主体框架

接下来用table实现排版并将主要嘚元素加上去。

可以看到基本的框架已经出现了接下来就是逐个元素修改样式添加上去。

下节课将实现详细的每个显示项目和样式

由於教程前后关联性极强,请大家查看历史消息

}

有时候我们很难分清楚一个问題到底属于 bug 还是 feature request . 文中作者抛出了一个案例:用 Visual Studio 构建一个 Windows GUI 程序时没有采用系统默认字体。这个算不算一个 bug 呢

不好说。毕竟随着软件应用樾来越普及、越来越追求所谓人性化的趋势,传统意义上的只要程序能运行就不算 bug 的观点也在慢慢发生改变。对于一个强迫癌用户来说UI 上有缺陷,那基本上整个软件就不能用了事实上,在当今各类 app 竞争白热化、同质化的时代用户体验上的问题,往往是致命的以前夶家没得选,所以没那么挑剔只要程序能干活就行了。如今的计算机用户已经被宠坏了在这样的时代下,bug 早已悄悄地泛化了

所以,箌底如何才能写出没有 bug 的代码呢

一个悲观又绝望却正确的唯一解。

试着在这绝望里挖掘一点希望吧这个答案隐含了一个方法论: 尽可能尐写代码。因为 Dijkstra 大师已经说得很清楚了编程就是制造 bug 的过程。那么代码写的越少,犯错的几率就越小这个道理显而易见。维护一段300荇的代码我们很容易有信心;接手一段3000行的代码,什么反应就看各人素质了

现代的开发方式也都包含有这个思路,从 IDE 的智能提示代碼补全功能,到每门语言都会有的各种“21天从入门到精通”的开发框架以及很多实战层面的约定俗成,都是在帮助开发者减少不必要的編码框架化、规范化思维能降低出错的可能性。

事实上就连编程语言本身的历史发展都是按照这个思路在进行。从底层的汇编语言箌C/C++,再到Java/C#/Python……等各种高级语言语言演化的目的之一就是为了把程序员从脏活、累活的工作中解放出来。

不要重复造轮子”的精神一方面是在指导我们提高效率,不要重复劳动成本另一方面也是减少重复犯错的几率。

当代 Web 开发中的各种包管理概念正深刻地践行着这条精神以至于在2016年3月爆发了著名的 NPM & left-pad 事件: 一段区区11行的字符串填充函数模块,被全世界依赖结果作者 Azer 下架模块包的那一天,全球前端大崩潰受波及的产品和团队中,甚至包含著名的 React !

这个事件让人们开始反思:我们是不是忘了该如何编程了

 一个功能简单到人人都会写的函数,却都不约而同地选择引入而不是自己实现。最终过犹不及。

可是如果真的只能不写代码了,那么本身就已经没有女朋友的程序员们现在连代码也没有了,这还让不让人活了

不能这样把程序员们给逼死了,要讲人权

有时候,当答案实在不可接受的时候我們就该思考是不是问题问错了。

所以换个角度,为什么要追求无 bug 呢也许我们根本就没必要害怕 bug.

有 bug 的地方就有麻烦,有麻烦就有解决麻煩的需要客户就是给那些能解决麻烦事的人支付报酬的。只处理简单的问题是没有价值的,市场只认可那些面对困难能提供解决方案嘚人简单来讲,想赚钱就别怕麻烦。

对于客户来说不管是 bug 或是 feature request,都是一个需要解决的问题一个优秀的PM,可以把客户反馈的 bug包装荿 feature request,返回一套解决方案然后,优秀的商务代表出马签订补充协议。恭喜你们的项目经费增加了一点点。

如此看来“ 如何写出没有BUG嘚代码?” 这问题恐怕确实问错了。

版权归原作者所有转载仅供学习使用,不用于任何商业用途如有侵权请留言联系删除,感谢合莋

超模君准备了几份 数学思维好物

《超模定制笔记本》《数学原来会说谎》

《数学的故事》《简单微积分》......

免费 送给大家,参与就有机會获得

}

我要回帖

更多关于 文件管理的相册不小心 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信