(1)《Head First HTML与CSS》学习笔记---HTML基本概念

前言:

1.     这本书并没有面面俱到,涵盖所有内容,只提供作为初学者真正需要的东西:基本知识和信心。所以这不是唯一的参考书。(我买了一本《HTML5权威指南》作为参考书和这本一起看,但还是以本书为第一个月的主要学习书籍,权威指南将在看完这本后再认真看一遍)

2.     慢一点看,虽然这本书页数多但实际内容并没有页数那么夸张。慢才是真正的快,慢才能多思考和留充足的时间写代码。

3.     记笔记。

4.     睡前就别看书了,放松一下,我的办法是打dnf怪物猎人OL。目前的作息基本上是:

                7:00起床吃早餐看新闻,9:00开始学习;

              12:00吃午饭,吃完后看技术文章,13:30午觉

              14:30起床洗漱,14:00开始看书;

              17:00吃晚饭,吃完散步一会,洗澡整理内务.18:30看书;

              22:30停下放松,23:30上床睡觉。

              周末会选一天休息,打打王者、跑步锻炼或者看电影、出去和同学聚餐等。

5.     先用半个月用txt写代码把整本书过一遍,然后使用atom再过一遍,这里一系列的文章都是第二遍的产物。为什么要先txt过一遍而不是直接用更方便的IDE?

因为在真正掌握HTML与CSS之前,尽管那些工具很棒,但是工具本身为了实现便捷性,隐藏了很多具体的、细节的东西,这些东西是重要的;

通过一个用户界面修改代码比直接改原始的HTML与CSS麻烦得多;

(.....不过代码量上来以后,框架的好处就会很快显示出来:无需小心翼翼,只要框架没bug,js算就给他算一下了,无伤大雅,总比操作失误DOM刷新/项目代码太乱,太难维护来得强太多了。反正么,大家电脑现在谁不是8G内存,泰坦xxoo,i5i7?.....为了让代码更好维护,程序员少掉头发,更有时间泡妞约炮,伟大的先贤发明了各种框架来代替我们手动操作DOM——这句话当作使用IDE的原因也是可行的。出自:方正的回答)

语言的标准改变时,工具不一定能马上更新,此时你若懂了那些东西,这些改变就不会影响你。

6.     这本书的基本脉络是:

                        HTML的基本概念——基于标准的HTML5——核心的HTML标签、属性和CSS属性。

7.     好的Web页面都是页面结构和页面表现清晰分离的:HTML负责建立结构,CSS负责指定样式。

8.     准备多个浏览器对代码进行测试,这能让我了解到不同浏览器之间的差异和获得一些如何创建适用于多种不同浏览器的页面经验。

        在此我准备了2个浏览器:火狐开发者版本、IE10.本来想加上一个主流的360,但是360是全家桶,装了太卡只好作罢,等着以后有钱了买台二手用来专职测试再说。

9.     别指望本书的例子都很简洁、健壮,为了方便学习,这些例子的注重方面是简单。

10.   有些Brain Power练习根本没有所谓的正确答案;有些则是通过这个过程让你确定你的答案是否正确,以及在何种情况下正确;有些则是给你提示,指明正确方向。

11.   Safari图书在线,一个按需提供资源的数字图书馆:

https://www.safaribooksonline.com/?utm_source=my&utm_medium=referral&utm_campaign=classic

12.   我的笔记同样不会“面面俱到地”记录所有东西,只记我认为我会忘记的、重要的东西和思考产物。

 

 13.   本书是2013年9月第一版,2017年9月北京第15次印刷。

 

 

HTML的基础概念

1.     HyperText Markup Language=HTML=超文本标记语言

 

2.     HTML的标记告诉浏览器哪些文本是标题,哪些文本是段落,哪些文本需要强调,或者图像要出现在哪里——这就是前面说的结构而不是表现,同时也是超文本标记语言中“标记”(ML)一词的来源;

顺便提一下,一般“元素”指包含了代码的标签。

HT的来源是一个强大的<a>标签,她使我们摆脱了单个页面的束缚,链接到其他页面。

 

3.     单纯使用HTML语言时,浏览器会使用默认的样式来表现结构。

注意,这个“默认的样式”在不同浏览器上可能是不同的,比如<q>元素,有些浏览器上的样式会加引号,有些不会。

 

4.     Web是基于没有任何特殊格式字符的文本文件创建的(正因此,所以特殊格式的字符要想写入HTML,必须用特殊的代号表示,参考:http://www.w3school.com.cn/tags/html_ref_symbols.html)

 

 5.    使用Txt格式(文本文档)写HTML时可能会遇到乱码的情况(即txt文件中的代码正确,但是网页显示却是乱码的情况),这是因为txt有时候默认保存的编码不是utf-8,这就导致你保存的txt文件不是utf-8的编码,在浏览器读取txt文件的时候就会读成乱码,导致网页显示也变成了乱码(注意,页面代码中<mate>指定的utf-8是指让浏览器以utf-8的编码格式来读取文件,但是如果txt文件本身就不是以utf-8保存的话,也是读成乱码的),这一点可以在乱码页面用开发者模式看到(开发者模式下,你的代码是乱码),例图如下:

解决的办法是,把相应的HTML文件另存为utf-8编码的文件——这样才能使文件格式与浏览器的解析格式一致。

一般是更改<img>属性和增加<mate>标签时会出现这种情况。

注意看的话,会发现英文和一些符号没有乱码,只是中文变成了乱码(这也是为什么要存为utf-8的原因:UTF-8就是在互联网上使用最广的一种unicode的实现方式,这是为传输而设计的编码,并使编码无国界,这样就可以显示全世界上所有文化的字符了。)——这也是导致页面内容中数字和结构正常输出,文字内容却乱码的原因。

 

6.     Cascading Style Sheet=CSS=层叠样式表

 

7.     CSS的语法与HTML完全不同。

 

8.     就像不能用数学写诗,不能用英语算账一样,你不会用CSS来创建结构,或者使用HTML创建样式,因为这并不是当初设计她们的初衷。尽管这意味着你得学习两种语言,但你会发现,由于每个语言各有其擅长的方面,与试图使用一种语言兼顾这两方面的工作相比,实际上学习两种语言让她们各司其职反而更为容易(这与C 有点不一样,C 是什么都能干,至于干的方便不方便等问题就不好说了。)。

 

9.   网页信息、网页内容、网页结构、网页样式是不同的东西。

网页信息在<head>标签中,网页内容在<body>标签中,网页结构由HTML建立,网页样式由CSS建立。

 

11.   atom里的atom-html-preview插件有点问题,有时候无法预览到图片和链接的地址页面......重启可以解决。

 

12.   不是所有标签都能作为内嵌元素,详细请看这。

 

13.   代码更新后要刷新浏览器页面才能更新代码更改后的效果。

 

14.   有的时候链接里使用中文会出现乱码,遇到这种就去相应文件另存为吧,和上面说的那个乱码情况一样。

 

15.   不同的操作系统使用不同的文件分隔符,Windows使用“\“,但在Web上我们选择了一个通用的分隔符:/,所以不管你是什么系统,在HTML的路径中都要使用/

注意,这里的文件分隔符是指路径中的那个,和标签中的/没有关系!

 

16.   为网站选择的文件名和文件夹名中不要使用空格。可以用C 中的命名规则来命名(比如IAmWiner)。

这有一个疑问——为什么有些命名可以有空格,有些不能有?(参考各个语言,不要止于HTML)

 

17.   使用短引用标签<q>的原因:增加页面结构——即原来直接当作文本的话,引用的内容就是一个普通文本。在使用标签后就是告诉浏览器这是一个短引用,这样在搜索包含引用的网页时才能搜到;还有就是可以通过CSS来改变这个短引用的样式(而不是改整个文本)。

 

18.   block元素(又称块元素)<blockquote>与inline元素(又称内联元素)<q>的区别:

         1.语义上看,<blockquote>是长引用,<q>是短引用。

         2.语法上看,<blockquote>是一个”容器元素“,她是一个全新的块区域,就像<h1>、<head>一样,在样式上是前后各有一个换行;

                     <q>则是一个”行内元素“,她是依托于块元素的,是在块元素中的,在样式上前后没有换行。

我们在分析一个页面结构的时候,往往会一个块一个块地去分解页面,这里的块含了<head>、<h1>、<blockquote>、<p>等,不包括<q>。

在这里要注意,“换行”有两种,一种是结构上的换行,即区分不同结构需要的换行(包括HTML标签<br>实现的那种换行);另一种是样式上的换行,这种换行是为了表达效果,也就是样式效果需要的换行(比如CSS中的white-space属性)。

要时刻记得,标签或者说元素都是为了结构服务的(在结构中,换行是区分整体和部分的办法,毕竟对于纯文本,就算是作者,仅仅通过标点符号也很难区分部分和整体——不管是谁都需要一定的视觉信息才能做到。但是这种视觉信息更多的是为结构服务而不是样式,更多的<br>讨论见http://www.cnblogs.com/wuduojia/p/7763025.html中的第二点。)

(block和inline是一个坑,详见20)

 

19.   为什么在<q>中用<blockquote>没有任何意义:

首先,这样使用想表达的结构是:引用的引用,即引用的句子中又引用了新的句子。这样的结构注定了一个语义:除了第一个引用,后面的所有引用都是隶属于第一个引用的,即不能独立出去(换句话说就是引用里的引用都属于第一个引用的范畴,都依托于第一个引用)。而<q>是一个不能独立出去的引用,把他作为第一个引用后的任何一个引用都是正确的;<blockquote>则是要独立出去的,所以不能作为第一个引用外的任何一个后面的引用。

所以语义上这样做没有任何意义——语法上也不允许(在W3c语法验证过)。

 

20.   在我看来,有些inline元素的属性是继承其父block元素的,所以在这些inline元素中某些属性是直接继承的,或者是干脆就不存在。这一点以后再验证对不对。

(这是错误的看法,现在已经不再有inline和block了,详见12)

 

21.   在我看来,列表既然是块元素,那么页面构造时应该是如图左侧这样划分,而不是右侧那样:

而<ol>和<ul>元素设计为只能包含<li>元素。(当然,<li>中可以包含别的元素)

 

22.   只有计算机或设备安装了正确的字体,浏览器才能正确显示你想要的字符——实际上并不能保证这一点,所以不是所有字符都能显示正确(把字符改成特殊字体也成立——特殊字体指微软雅黑、宋体等)。

特殊字符要用字符实体替代才能在HTML代码中以文本形式输出到页面。

 

23.   <a>根据上下文可以当inline元素也可以当block元素;

img是inline元素——为什么?我总结到了http://www.cnblogs.com/wuduojia/p/7763025.html里的第4点*(注意回答的时间,在15年的时候,已经不再有inline和block这种划分了(参考12)!)。

 

24.   www.wuduojia.cn是一个网站名,wuduojia.cn是一个域名——可以创建使用相同域名的其他网站,比如corporate.wuduojia.cn

浏览器中输入的地址称为URL(统一资源定位符=Uniform Resource Locators),其包括了一个协议(HTTP)、一个网站名(www.wuduojia.cn)、资源的绝对地址(即绝对路径)

“Http:”是获取资源的协议,是一个请求和响应协议。URL不止可以指定资源的位置,还可以用来获取资源的协议。HTTP=HyperText Transfer Protocol=超文本传输协议

获取页面的过程:协议告诉浏览器要用什么方法获取资源(大部分情况都是HTTP协议),网站部分告诉浏览器从互联网上的哪个计算机获取资源,最后绝对路径告诉服务器我们要的是哪个页面。

“ftp”是文件传输协议(File Transfer Protocol),是向服务器传输web页面和内容的常用方法。

这里请看书《图解HTTP》

 


更多专业前端知识,请上 【猿2048】www.mk2048.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360987.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

与Java EE和Camel的轻量级集成

Enterprise Java具有不同的风格和观点。 从简单的平台技术开始&#xff0c;即众所周知的Java EE&#xff0c;再到不同的框架和集成方面&#xff0c;最后是涉及以数据为中心的用户界面或特定可视化效果的用例。 Java EE本身无法解决的最突出的问题是“集成”。 有许多来自知名供…

[工具库]JFileDownloader工具类——多线程下载网络文件,并保存在本地

本人大四即将毕业的准程序员&#xff08;JavaSE、JavaEE、android等&#xff09;一枚&#xff0c;小项目也做过一点&#xff0c;于是乎一时兴起就写了一些工具。 我会在本博客中陆续发布一些平时可能会用到的工具。 代码质量可能不是很好&#xff0c;大家多担待&#xff01; 代…

使用Bean验证扩展PrimeFaces CSV

你们中有些人已经知道我和我的合著者Mertalışkan正在研究PrimeFaces Cookbook的2.版。 Packt Publishing允许我从新章节“客户端验证”的一个食谱中摘录一小部分摘录。 这将有助于使读者知道这本书的内容。 在此博客文章中&#xff0c;我想讨论使用Bean验证扩展的PrimeFaces客…

ASP.NET.CORE发布后启动网站出现500.19-0x8007000d错误解决方法

本项目使用的是netcoreapp2.2&#xff0c;缺少的XML文件是swagger。发布采用的是文件系统、依赖框架。 我第一次发布asp.net.core的后台&#xff0c;发布后启动网站出现500.19错误-0x8007000d。百度查了一下原因&#xff0c;2其中大多数人说是因为没有权限&#xff0c;需要编辑…

WildFly和Docker上的Java EE 7动手实验室

Java EE 7动手实验室已在全球范围内交付&#xff0c;它是一个非常标准的应用程序&#xff0c;显示了典型Java EE 7应用程序的设计模式和反模式。 它显示了如何在接近现实的应用程序中使用以下技术&#xff1a; WebSocket 1.0 JSON处理1.0 批次1.0 上下文和依赖注入1.1 Jav…

一罐将其全部统治:Arquillian + Java 8

借助Java 8 &#xff0c;已实现了许多新的语言改进&#xff0c;以简化开发人员的生活。 在我看来&#xff0c; Java 8的最大优点之一是&#xff0c;在某些情况下&#xff0c;已开发的代码看起来比使用以前的方法更漂亮&#xff0c;我指的是Lambdas和Method引用。 这篇文章不是要…

uni-app引入阿里巴巴矢量库图标后,顶部导航栏显示小方块

引入阿里巴巴矢量图标库 首先在阿里巴巴创建项目&#xff0c;拥有图标 具体引入方法参考&#xff1a; [https://blog.csdn.net/Dream_Weave/article/details/88550978?depth_1-utm_sourcedistribute.pc_relevant.none-task&utm_sourcedistribute.pc_relevant.none-task]在…

使用Spring Integration进行消息处理

Spring Integration提供了Spring框架的扩展&#xff0c;以支持著名的企业集成模式。 它在基于Spring的应用程序中启用轻量级消息传递&#xff0c;并支持与外部系统的集成。 Spring Integration的最重要目标之一是为构建可维护且可测试的企业集成解决方案提供一个简单的模型。 …

使用RxNetty访问Meetup的流API

本文将涉及多个主题&#xff1a;响应式编程&#xff0c;HTTP&#xff0c;解析JSON以及与社交API集成。 完全在一个用例中&#xff1a;我们将通过非夸张的RxNetty库实时加载和处理新的metup.com事件&#xff0c;结合Netty框架的强大功能和RxJava库的灵活性。 Meetup提供了公开可…

js、react对象名和对象属性赋值

const resValue {}; resValue[standards${standardsNumber}] ""; Console.log(:test"&#xff0c;resValue )//

TIBCO产品的微服务和DevOps

如今&#xff0c;每个人都在谈论微服务。 您可以在数百篇文章和博客文章中读到很多有关微服务的信息。 马丁福勒 &#xff08; Martin Fowler &#xff09;的文章是一个很好的起点&#xff0c;该文章引发了有关这种新架构概念的大量讨论。 另一个很棒的资源是独立于供应商的分…

使用Degraph管理软件包依赖关系

软件开发领域的很大一部分是使系统的复杂性尽可能地低。 但是复杂性到底是什么&#xff1f; 虽然确切的语义有很大不同&#xff0c;但取决于您询问的人&#xff0c;大多数人可能都认为这与系统中部件的数量及其交互有很大关系。 考虑太空中的大理石&#xff0c;即行星&#xf…

[转载] 应急管理体系及其业务流程研究

转载于:https://www.cnblogs.com/6DAN_HUST/archive/2013/03/04/2942337.html

WP8手机上的图标

一直不清楚WP8手机上两个圆的标志是什么意思&#xff0c;今天看到下面的链接&#xff0c;终于搞明白了&#xff0c;原来是打开了GPS就有。 http://www.windowsphone.com/en-us/how-to/wp8/basics/what-do-the-icons-on-my-phone-mean 转载于:https://www.cnblogs.com/wonderow/…

ASIHTTPRequest类库简介和使用说明

官方网站&#xff1a; http://allseeing-i.com/ASIHTTPRequest/ 。可以从上面下载到最新源码&#xff0c;以及获取到相关的资料。 使用iOS SDK中的HTTP网络请求API&#xff0c;相当的复杂&#xff0c;调用很繁琐&#xff0c;ASIHTTPRequest就是一个对CFNetwork API进行了封装&a…

UltraESB的首选IDE – IntelliJ IDEA

在AdroitLogic&#xff0c;我们长期以来一直在使用IntelliJ IDEA进行开发。 它是Java和相关语言/技术的最佳IDE&#xff08;它可能也是许多其他语言的选择&#xff0c;但我的经验主要是Java和相关技术&#xff09;。 Groovy和IDEA的Grails的集成很棒。 通过自动发现JDBC驱动程…

跟我一步一步开发自己的Openfire插件

这篇是简单插件开发&#xff0c;下篇聊天记录插件。 开发环境&#xff1a; System&#xff1a;Windows WebBrowser&#xff1a;IE6、Firefox3 JavaEE Server&#xff1a;tomcat5.0.2.8、tomcat6 IDE&#xff1a;eclipse、MyEclipse 8开发依赖库&#xff1a; Jdk1.6、jasper-com…

Apache FOP与Eclipse和OSGi的集成

Apache FOP是由XSL格式化对象&#xff08; XSL-FO &#xff09;驱动的开源打印处理器。 例如&#xff0c;将数据对象转换为PDF可能非常有用。 但是&#xff0c;将其集成到PDE中并最终以OSGi Service的形式运行并最终显得有些麻烦。 因此&#xff0c;我提供了一个P2存储库&…

不删除侦听器–使用ListenerHandles

听一个可观察的实例并对它的变化做出反应很有趣。 做一些必要的事情来打断或结束这种聆听会变得很有趣。 让我们看看问题的根源和解决方法。 总览 这篇文章将首先讨论这种情况&#xff0c;然后再讨论常见的方法和问题所在。 然后&#xff0c;它将提供解决大多数问题的简单抽象…

使用Google Guava Cache进行本地缓存

很多时候&#xff0c;我们将不得不从数据库或另一个Web服务获取数据或从文件系统加载数据。 在涉及网络呼叫的情况下&#xff0c;将存在固有的网络等待时间&#xff0c;网络带宽限制。 解决此问题的方法之一是在应用程序本地拥有一个缓存。 如果您的应用程序跨越多个节点&…