• DAY 35 前端学习


    一 web1.0时代的网页制作
    网页制作是web1.0时代的产物,那个时候的网页主要是静态网页,所谓的静态网页就是没有与用户进行交互而仅仅供读者浏览的网页,我们当时称为“牛皮癣”网页。
    例如一篇QQ日志、一篇博文等展示性文章。在web1.0时代,用户能做的唯一事情就是浏览这个网站的文字图片内容,这时用户也不能像现在在大多数网站都可以评论交流(缺乏交互性)。
    相信可能大多数人都听过“网页三剑客 Dreamweaver+Fireworks+Flash”吧,这个组合就是web1.0时代额产物

    二 web2.0时代的前端开发
    “前端开发”是从“网页制作”演变而来的。
    从2005年开始,互联网进入web 2.0时代,由单一的文字和图片组成的静态网页已经不能满足用户的需求,用户需要更好的体验。
    在web 2.0时代,网页有静态网页和动态网页。
    所谓动态网页,就是用户不仅仅可以浏览网页,还可以与服务器进行交互。举个例子,你登陆新浪微博,要输入账号密码,这个时候就需要服务器对你的账号和密码进行验证通过才行。
    web2.0时代的网页不仅包含炫丽的动画、音频和视频,还可以让用户在网页中进行评论交流、上传和下载文件等(交互性)。这个时代的网页,如果是用“网页三剑客Dreamweaver+Fireworks+Flash”制作的,那是远远不能满足需求。
    现在网站开发无论是开发难度,还是开发方式上,都更接近传统的网站后台开发,所以现在不再叫“网页制作”,而是叫“web前端开发”。
    所以,处于web2.0时代的你,如果要学习网站开发技术,就不要再相信所谓的“网页三剑客Dreamweaver+Fireworks+Flash”,因为这个组合已经是上个互联网时代的产物。而且这个组合开发出来的网站问题也非常多,例如代码冗余、网站维护困难

    三 Web前端能做什么?
    公司官网(在PC通过浏览器来访问公司网站)移动端网页(在手机上来浏览公司信息、小游戏等)移动端APP(例如:淘宝、去哪儿旅游、携程等)微信小程序(微信最新推出的功能,随用随装,不占用手机空间)。前端开发所学技术由简单到难,所以在很多网站上你会看到“七天入门前端”的视频博客等等,也就是说一星期就学会了HTML+CSS。最基本的页面你就可以书写了。

    四 为什么要学习前端开发
    我们为什么要学习前端开发,因为我们的课程定位是Python全栈开发,也就是说我们不仅要掌握后端开发的技术还要掌握一定程度的前端开发技术。

    五 前端开发都有哪些内容
    我们知道,用所谓的网页三剑客已经不能满足需求了,那前端开发究竟要学习什么技术呢?网页最主要由3部分组成:结构、表现和行为。网页现在新的标准是W3C,目前模式是HTML、CSS和JavaScript。

    (1)HTML是什么?
    HTML,全称“Hyper Text Markup Language(超文本标记语言)”,简单来说,网页就是用HTML语言制作的。HTML是一门描述性语言,是一门非常容易入门的语言。

    (2)CSS
    CSS,全称“(层叠样式表)”。以后我们在别的地方看到“层叠样式表”、“CSS样式”,指的就是CSS。

    (3)JavaScript
    JavaScript是一门脚本语言。

    “HTML是网页的结构,CSS是网页的外观,而JavaScript是页面的行为

    如果我们把前端开发的过程比喻成“建房子”,做一个网页就像盖一栋房子
    1、先把房子结构建好(HTML)
    2、建好房子之后给房子装修(CSS),例如往窗户安上窗帘、往地板铺上漂亮的瓷砖
    3、最后呢,装修完了之后,当夜幕降临的时候,我们要开灯(JavaScript),这样才能看得见里面。

    我们先用HTML搭建网页结构,这时候默认情况下,字体、字体颜色、字体大小和背景颜色如下图,仅仅使用HTML的文字
    然后我们通过CSS修饰一下,改变其字体、字体大小、字体颜色和背景颜色。
    最后,我们通过JavaScript定义鼠标一个行为,就是鼠标移动到上面的时候,背景颜色会变为深绿色。

    六 开发环境
    市面上有很多的HTML编辑器可以选择,常见的Hbuild、Sublime Text、Dreamweare都可以用来开发HTML。 当然PyCharm也支持HTML开发。

    1、浏览器
    浏览器在本地也能打开html文件,浏览器就跟解释器一样,从上倒下,从左到右
    全球共有五大浏览器厂商,我们主要以chrome为主。
    ie
    chrome
    firfox
    safri
    presto
    浏览器内核不同,浏览器渲染引擎不同(后期考虑兼容性问题),其他浏览器都是使用这5款浏览器内核

    2、浏览器历史:
    世界最早浏览器,网景浏览器(Netscape )
    后来它想做操作系统,动了微软的奶酪,微软就想弄死他,
    微软做的也特别的绝情,微软利用windows操作系统的市场占有率,提供了免费浏览器ie,而且windows
    操作系统里还必须有
    中国最早浏览器ie6,国企内就用ie6,
    浏览器不同,解析的标签标准不同,微软太霸道,就不改标准,坚持不更新,后来谷歌和火狐抢占了市场,IE就傻逼了,目前也只有傻逼才用IE。。。
    市场越发地混乱,于是w3c(万维网联盟(World Wide Web Consortium,W3C))成立,用来制定大家的统一标准
    须知:学前端一半工作在考虑兼容性,目前html5在兼容性方面解决的比较好

    3、文件后缀名规范
    .htm和.html扩展名的区别:
    #1、DOS系统(win95或win98)下只能支持长度为3的后缀名,所以老版本的系统一直在用.htm后缀
    #2、但在windows后缀长度可以大于3位,所以windows下无所谓htm与html,html是为长文件的格式命名的
    #3、如果文件后缀是.htm,毫无疑问,浏览器也可以兼容,但推荐使用.html

    七 HTML简介
    用户使用浏览器打开网页看到结果的过程就是:浏览器将服务端的文本文件(即网页文件)内容下载到本地,然后打开显示的过程。
    而文本文件的文档结构只有空格和换行两种组织方式,如此,文本文件在打开显示时,显示的效果将会非常非常非常的单一,
    为了让显示的效果不那么单调,我们会偏向使用word一类的文本编辑工具来编排文本内容,编排的原理就是:在编辑文件时会选中各部分内容,然后为内容打上不同的标记,比如什么是标题,什么是段落,然后存放硬盘里,等下次打开时,word会识别之前的标记,然后按照预先编排好的结果显示出来
    站在显示文本内容的角度去看,浏览器与word的原理一样,我们可以将浏览器当成一个网页版的只读word,浏览器也必须有一套自己能识别的标记文本的规范,该规范被称为HTML,HTML全称是超文本标记语言(HyperText Markup Language)
    “超文本”指的是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本
    “标记”指的是在编辑文本时用特殊的记号标记一下各部分内容的意义,该记号称之为标签,比如用标签h1标记标题,用标签p标签段落。

    这样浏览器在接收到文本内容后,就可以按照事先规定好的记号去显示各部分的内容。所以我们学习HTML就是在学习一系列的标签

    八 HTML发展史
    超文本标记语言(第一版):在1993年6月作为互联网工程工作小组(IETF)工作草案发布(并非标准),后来陆续由w3c制定标准

    #IETF简介
    IETF是英文Internet Engineering Task Force的缩写, 翻译过来就是"互联网工程任务组"
    IETF负责定义并管理因特网技术的所有方面。包括用于数据传输的IP协议、让域名与IP地址匹配的域名系统(DNS)、用于发送邮件的简单邮件传输协议(SMTP)等

    #W3C简介
    W3C是英文World Wide Web Consortium的缩写, 翻译过来就是W3C理事会或万维网联盟, W3C是全球互联网最具权威的技术标准化组织.
    W3C于1994年10月在麻省理工学院计算机科学实验室成立。创建者是万维网的发明者Tim Berners-Lee
    W3C负责web方面标准的制定,像HTML、XHTML、CSS、XML的标准就是由W3C来定制的。
    Tim Berners-Lee(蒂姆·伯纳斯-李),万维网之父、html设计者、w3c创始人

    目前常用的两种文档类型是xhtml 1.0和html5,pc端两种都可以,而且html5是向下兼容的
    xhtml1.0文档类型创建的快捷方式 html:xt + tab

    html5文档类型创建的快捷方式: html:5 + tab 或者 ! + tab

    HTML5与XTML的区别:
    #1、XHTML更为严格,它要求标签必须小写、必须严格闭合、标签中的属性必须使用引号引起,img必须要加alt属性(对图片的描述)
    等等;

    #2、HTML5是HTML的下一个版本所以除了非常宽松容错性强(可以选择性遵守xhtml制定的文档编写规范)以外,还增加许多新的特性

    九 HTML标签与文档结构
    一个网页可以没有样式,可以没有交互,但是必须要有网页需要呈现的内容,而HTML作为一门标记语言,是通过各种各样的标签来标记网页内容的,所以HTML部分是整个前端的基础,我们学习HTML主要就是学习的HTML标签。

    #1、在HTML中规定标签使用英文的的尖括号即`<`和`>`包起来,如`<html>`、`<head>`、`<body>`都是标签,
    #2. HTML中标签通常情况下是成对出现的,分为开始标签和结束标签,结束标签比开始标签多了一个`/`,开始标签和结束标签之间的就是标签的内容。
    #3、有些标签功能比较简单,使用一个标签即可,这种标签叫做自闭和标签,例如:<br/> <hr/> <input/> <img/>

    HTML中的标签存放于文本文件中,需要按照下述固定的文档结构组织:
    <!DOCTYPE HTML>
    <html>
    <head>...</head>
    <body>...</body>
    </html>

    各部分解释:
    #1、<!DOCTYPE HTML>是文档声明,必须写在HTML文档的第一行,位于<html>标签之前,表明该文档是HTML5文档。
    #2、<html></html> 称为根标签,所有的网页标签都在<html></html>中。
    HTML的lang属性可用于网页或部分网页的语言。通常用于搜索引擎和浏览器
    的统计分析,不定义也没什么影响
    根据 W3C 推荐标准,您应该通过 <html> 标签中的 lang 属性对每张页面
    中的主要语言进行声明,比如:
    <html lang="en"></html>
    #3、<head></head> 标签用于定义文档的头部,它是所有头部元素的容器。常见的头部元素有<title>、<script>、<style>、<link>和<meta>等标签,头部标签在下一节中会有详细介绍,<head>与</head>之间的内容不会在浏览器的文档窗口显示,但是其间的元素有特殊重要的意义。
    #4、在<body>和</body>标签之间的内容是网页的主要内容,最终会在浏览器中显示出来。

    标签间关系:
    #1、并列(兄弟/平级)
    head与body
    #2、嵌套(父子/上下级)
    html内有body

    标签的语法:
    <标签名 属性1=“值1” 属性2=“值2” ......>内容部分</标签名>
    <标签名 属性1=“值1” 属性2=“值2” ....../>

    标签注意事项!!!
    #1、记号/标签是不会显示出来的。
    #2、标签只是用来做记号而不负责控制样式:虽然用<h1>标记的文本在显示时会被加大加粗,但请务必记住,HTML的作用只有一个它是专门用来对文件做记号来标识其语义的(语义指的是该文本是做什么用的),加大和加粗这种为文本添加样式的操作并不是HTML擅长的,虽然早期的时候确实也用HTML来制作样式,但以后我们专门用CSS来做这件事,这也是一种解耦合的思想
    #3. HTML标签不区分大小写,`<h1>`和`<H1>`是一样的,但是我们通常建议使用小写,大部分程序员都以小写为准。
    #4. HTML中有部分标签是可以嵌套的。例如:<div><p>段落</p></div>,但不能交叉<div><p></div></p>

    十 HTML中标签分类
    #1、容器类标签
    容器类标签可以简单的理解为能嵌套其它所有标签的标签。
    常见容器级的标签:
    h系列
    ul>li
    ol>li
    dl>dt+dd
    div

    #2、文本类标签
    文本级的标签对应容器级标签,只能嵌套文字/图片/超链接的标签。
    常见文本级的标签:
    p
    span
    strong
    em
    ins
    del

    十一 HTML注释
    <!--这里是注释的内容-->

    注意: 注释中可以直接使用回车换行。
    并且我们习惯用注释的标签把HTML代码包裹起来。如:
    <!-- xx部分 开始 -->
    这里放你xx部分的HTML代码
    <!-- xx部分 结束 -->

    HTML注释的注意事项:
    #1、HTML注释不支持嵌套。
    #2、HTML注释不能写在HTML标签中。

    十二 head内常用标签
    1、meta相关
    #1、指定字符集
    <meta charset="gbk">
    #2、页面描述
    <meta name="Description" content="具体描述。。。">
    #3、关键字:有助于搜索引擎SEC优化,再怎么优化也抵不过竞价排名
    <meta name="Keywords" content="网易,邮箱,游戏,新闻">
    #4、3秒后跳转
    <meta http-equiv="refresh" content="3,http://www.baidu.com">
    #5、三秒刷新
    <meta http-equiv="refresh" content="3">

    2、非meta标签
    #1、标题
    <title>百度一下,你就知道</title>
    #2、网站的图标
    <link rel="icon" href="https://www.baidu.com/favicon.ico">
    #3、定义内部样式
    <style></style>
    #4、引入外部样式文件
    <link rel="stylesheet" href="mystyle.css">
    #5、定义JavaScript代码或引入JavaScript文件
    <script src="hello.js"></script>

    十三 HTML语义化
    body中的标签是会显示到浏览器窗口中的,body内的标签只有一个作用就是用来标记语义的,语义指的是从字面意思就可以理解被标记的内容是用来做什么的
    虽然不同的标签会有不同的显示样式,但我们一定要强制自己忘记所有标签的显示样式,只记它的语义。因为每个标签的样式各不相同,记忆不同标签的样式来控制显示样式,对前端开发来说将会是一种灾难,更何况添加样式并不是HTML擅长的事情,而且在布局的时候多使用语义化的标签,会方便搜索引擎在爬取网页文件时更好地解析文档结构,从而进行收录。

    #1、<br> 换行
    我是帅气逼人的Egon老师
    <br>
    我是帅气逼人的Egon老师
    我是帅气逼人的Egon老师
    我是帅气逼人的Egon老师
    #2、<hr> 分割线
    #3、<font> 修改文字大小,颜色
    <font color="red" size="10px">我是哈哈哈</font>
    #4、<b> 加粗
    <b>论颜值,我秒杀宇宙</b>
    #5、<u> 下划线
    #6、<i> 倾斜
    #7、<s> 删除线

    html5中推出了一些新的标签:
    strong == b

    ins == u

    em == i

    del == s

    新的标签是有语义的,而老的只是单纯的添加样式(这是CSS干的事)
    strong的语义:定义重要性强调的文字
    ins的语义(inserted):定义插入的文字
    em的语义(emphasized):定义强调的文字
    del的语义(deleted):定义被删除的文字

    div与span标签都是没有语义的标签,我们在css中讲解:
    #1、div用来标记一块内容,没有具体的语义。
    #2、span用来标记一行中的一小段内容,也没有具体的语义。

    十四 字符实体
    #1、在HTML中对空格/回车/tab不敏感,会把多个空格/回车/tab当作一个空格来处理

    #2、字符实体指的是
    在HTML中
    有的字符是被HTML保留的比如大于号小于号
    有的HTML字符,在HTML中是有特殊含义的,是不能在浏览器中直接显示出来的,那么这些东西想显示出来就必须通过字符实体,如下
    注释:实体名称对大小写敏感!

    十五 h系列标签
    语义:标记内容为一个标题,全称headline
    h系列标签从h1-h6共6个,没有h7标签,标记内容为1~6级标题,h1用作主标题(代表最重要的),其实是h2。。。
    虽然h1-h6标签的显示样式是从大到小,但再次强调:记忆HTML标签的显示样式是没有意义的

    <!DOCTYPE HTML>
    <html>
    <head lang='en'>
    <meta charset="utf-8">
    <title>Egon才华无敌</title>
    </head>
    <body>
    <h1>一级标题</h1><h2>二级标题</h2>
    <h3>三级标题</h3>
    <h4>四级标题</h4>
    <h5>五级标题</h5>
    <h6>六级标题</h6>
    <h7>没有七级标题</h7>
    没有七级标题
    </body>
    </html>

    注意:在企业开发中一定要慎用h系列标签,特别是h1标签,在企业开发中一般一个界面中只能出现一个h1标签(出于SEO考虑,搜索引擎会使用标题将网页的结构和内容编制索引),比如www.163.com。

    十六 p标签
    语义:标记内容为一个段落,全称paragraph
    <!DOCTYPE HTML>
    <html>
    <head lang='en'>
    <meta charset="utf-8">
    <title>Egon无敌</title>
    </head>
    <body>
    <h1>Egon</h1>
    <p>论颜值,鹤立鸡群</p>
    <p>论才华,天下无敌</p>
    </body>
    </html>

    十七 img标签
    语义:标记一个图片,全称image
    #1、用法
    <img src="图片地址" alt="图片加载失败时显示的内容" title = "鼠标悬停到图片上时显示的内容" />

    #2、注意
    2.1 src指定的图片地址可以是网络地址,也可以是一个本地地址,本地地址可以用绝对或相对路径,但通常用相对路径,相对路径是以html文件当前所在路径为基准进行的
    2.2 图片的格式可以是png、jpg和gif
    2.3 alt="图片加载失败时显示的内容" 为img标签加上该属性可用于支持搜索引擎和盲人读屏软件。
    2.4 title = "鼠标悬停到图片上时显示的内容"
    2.5 如果没有指定图片的width和height则按照图片默认的宽高显示,如果指定图片的width和height则可能让图片变形
    那如果又想指定宽度和高度,又不想让图片变形,我们可以只指定宽度和高度的一个值即可
    只要指定了一个值,系统会根据该值计算另外一个值,并且都是等比拉伸的,图片将不会变形

    十八 a标签
    语义:标记一个内容为超链接,全称anchor,锚
    #1、超链接标签是超文本文件的精髓,可以控制页面与页面之间的跳转,语法如下
    <a href="跳转到的目标页面地址" target="是否在新页面中打开" title="鼠标悬浮显示的内容">需要展现给用户查看的内容/也可以是图片</a>

    #2、注意:
    2.1 a标签不仅可以标记文字,也可以标记图片
    <a href="https://www.baidu.com"><img src="mv.png" />百度一下,你就知道</a>
    2.2 a标签必须有href属性,href的值必须是http://或https://开头
    2.3 a标签还可以跳转到自己的页面
    <a href="template/aaa.html">锤你胸口</a>
    2.4 target="_blank"代表在新页面中打开,其余的值均无需记忆,
    如果页面中大量的a标签都需要设置target="_blank",那么我们可以在head标签内新增一个base标签进行统一设置
    <base target="_blank">
    如果a标签自己设置了target,那么就以自己的为准,否则就会参照base的设置
    2.5 title="鼠标悬浮显示的内容"

    假链接:
    #1、什么是假链接?
    就是点击之后不会跳转的链接,我们称之为假链接
    #2、假链接存在的意义:
    在企业开发前期,其他界面都还没有写出来,
    那么我们就不知道应该跳转到什么地方,所以就只能使用假链接来代替
    #3、假链接的定义格式
    1、href="#" :会自动回到网页的顶部
    2、href="javascript:" :不会返回顶部

    页面内锚点:
    #1、要想通过a标签跳转到指定的位置,那么必须告诉a标签一个独一无二的身份证号码,
    这样a标签才能在当前界面中找到需要跳转到的目标位置
    #2、如何为html中的标签绑定一个独一无二的身份证号码呢?
    在html中,每一个标签都有一个名称叫做id的属性
    这个属性就是用来给标签指定一个独一无二的身份证号码的
    #3、所以要想实现通过a标签跳转到指定的位置,分为两步
    3.1、给目标位置的标签添加一个id属性,然后指定一个独一无二的值
    3.2、告诉a标签你需要跳转到的目标标签对应的独一无二的身份证号码是多少
    #4、a标签除了可以跳转当前页面,还可以跳转到其他页面的指定位置

    跳到首页:
    #1、跳到首页
    <a href="">刷新页面,回到顶部,人类感觉不出来区别</a>
    <a href="#">回到顶部</a>

    #2、注意点:
    通过我们的a标签跳转到指定的位置,是没有过度动画的
    是直接一下子就跳转到了指定位置,比如京东主页
    如果跳到首页需要过渡动画,则不用a标签做,比如天猫主页

    <!--
    <a href="">刷新页面,回到顶部</a> 刷新页面,人类感觉不出来区别
    <a href="#">回到顶部</a>


    -->


    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    </head>
    <body>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p id="sb1">alex是个大SB</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p id="sb2">wxx是个大SB</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <p>我上山是虎,我下海是龙</p>
    <a href="#sb1">找第一个SB</a>
    <br>
    <a href="#sb2">找第一个SB</a>
    <br>
    <a href="#">不刷新,跳回首页</a>
    <br>
    <a href="">刷新,跳回首页</a>
    </body>
    </html>

    页面锚点+跳回首页练习
    #1、跳到首页
    <a href="">刷新页面,回到顶部,人类感觉不出来区别</a>
    <a href="#">回到顶部</a>
    #2、注意点:
    通过我们的a标签跳转到指定的位置,是没有过度动画的
    是直接一下子就跳转到了指定位置,比如京东主页
    如果跳到首页需要过渡动画,则不用a标签做,比如天猫主页

    十九 列表标签
    语义:标记一堆数据是一个整体/列表
    html中列表标签分为三种
    1、无序列表(列表标签中使用最多的一种,非常重要):unordered list
    #1、作用:
    制作导航条、商品列表、新闻列表等
    #2、组合使用ul>li
    <ul>
    <li>秒杀</li>
    <li>优惠券</li>
    <li>PLUS会员</li>
    <li>闪购</li>
    <li>拍卖</li>
    <li>京东服饰</li>
    <li>京东超市</li>
    <li>生鲜</li>
    <li>全球购</li>
    <li>京东金融</li>
    </ul>

    #3、ul标签的属性type(这属于列表的样式,所以了解即可)
    type:列表标识的类型
    disc:实心圆(默认值)
    circle:空心圆
    square:实心矩形
    none:不显示标识
    可以通过css直接去掉小圆点
    <style type="text/css">
    ul {
    list-style: none;
    }
    </style>

    #4、注意
    ul与li是组合标签应该一起出现,并且ul的子标签只应该是li,而li的子标签则可以是任意其他标签

    无序列表练习:
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    </head>
    <body>
    <h1>物品清单</h1>
    <ul>
    <li>
    <h2>蔬菜</h2>
    <ul>
    <li>西红柿</li>
    <li>花瓜</li>
    <li>芹菜</li>
    </ul>
    </li>
    <li>
    <h2>水果</h2>
    <ul>
    <li>香蕉</li>
    <li>菠萝</li>
    <li>火龙果</li>
    </ul>
    </li>
    </ul>


    </body>
    </html>

    2、有序列表(极少使用)
    <h1>智商排名</h1>
    <ol>
    <li>Egon</li>
    <li>刘清正</li>
    <li>武佩奇</li>
    <li>alex</li>
    <li>元昊</li>
    </ol>

    <!--有序列表能干的事,完全可以用无序列表取代-->
    <h1>智商排名</h1>
    <ul style="list-style: none">
    <li>1. Egon</li>
    <li>2. 刘清正</li>
    <li>3. 武佩奇</li>
    <li>4. alex</li>
    <li>5. 元昊</li>
    </ul>

    3、自定义列表(也会经常使用)
    #1、作用分析
    选择用什么标签的唯一标准,是看文本的实际语义,而不是看长什么样子
    无序列表:内容是并列的,没有先后顺序
    有序列表:内容是有先后顺序的
    自定义列表:对一个题目进行解释说明的时候,用自定义列表,可以做网站尾部相关信息,网易注册界面的输入框

    #2、自定义列表也是一个组合标签:dl>dt+dd
    dl:defination list,自定义列表
    dt:defination title,自定义标题
    dd:defination description,自定义描述
    <dl> <dt>自定义标题1<dt> <dd>描述1<dd> <dd>描述2<dd> <dd>描述3<dd> <dt>自定义标题2<dt> <dd>描述1<dd> <dd>描述2<dd> <dd>描述3<dd> <dt>自定义标题3<dt> <dd>描述1<dd> <dd>描述2<dd> <dd>描述3<dd></dl>
    #3、注意: 3.1 dl>dt+dd应该组合出现,dl中只应该存放dt和dd,而可以在dt和dd中添加任意其他标签 3.2 一个dt可以可以没有对应的dd,也可以有多个,但建议一个dt对应一个dd


    自定义列表练习
    <dl>
    <dt><h5>购物流程</h5></dt>
    <dd>购物流程</dd>
    <dd>会员介绍</dd>
    <dd>生活旅行</dd>

    <dt><h5>配送方式</h5></dt>
    <dd>上门自提</dd>
    <dd>211限时达</dd>
    <dd>配送服务查询</dd>

    <dt><h5>支付方式</h5></dt>
    <dd>货到付款</dd>
    <dd>在线支付</dd>
    <dd>分期付款</dd>
    </dl>

    二十 table标签
    语义:标记一段数据为表格
    #1、作用
    表格标签是一种数据的展现形式,当数据量非常大的时候,使用表格的形式来展示被认为是最清晰的

    #2、格式
    <table>
    <tr>
    <td></td>
    </tr>
    </table>

    tr代表表格的一行数据
    td表一行中的一个普通单元格th表示表头单元格

    #3、注意点:
    表格标签有一个边框属性,这个属性决定了边框的宽度。默认情况下这个属性的值为0,所以看不到边框

    表格属性:
    #1、宽度和高度
    可以给table和td设置width和height属性

    1.1 默认情况下表格的宽高是按照内容的尺寸来调整的,也可以通过给table标签设置widht和height来手动指定表格的宽高

    1.2 如果给td标签设置width和height属性,会修改当前单元格的宽度和高度,只要不超过table的宽高,则不会影响整个表格的宽度和高度


    #2、水平对齐和垂直对齐
    水平对齐align可以给table、tr、td标签设置
    垂直对齐valign只能给tr、td标签设置

    ========水平对齐===========
    取值
    align=“left”
    align=“center”
    align=“right”

    2.1 给table标签设置水平对齐,可以让表格在水平方向上对齐
    强调:table只能设置水平方向

    2.2 给tr设置水平对齐,可以控制当前行所有单元格内容都水平对齐

    2.3 给td设置水平对齐,可以控制当前单元格内容水平对齐,tr与td冲突的情况下,以td为准

    ========垂直对齐===========
    取值
    valign=“top”
    valign=“center”
    valign=“bottom”

    2.4 给tr设置垂直对齐可以让当前行所有单元格内容都垂直对齐
    2.5 给td设置垂直对齐可以让当前单元格内容垂直对齐


    #3、外边距和内边距
    只能给table设置

    3.1 外边距:单元格与单元格之间的间隔,cellspacing="3px",默认值为2px
    3.2 内边距:单元格边框与文字之间的距离:cellpadding="200px"

    三种方式细线表格:
    #1、方式一
    在标签中,想通过指定外边距为0来实现细线表格是不靠谱的,其实他是将2条线合成了一条线.所以看上去很不舒服,如下实现
    <table width="200px" height="200px" bgcolor="black" border="1" cellspacing="0px">
    <tr bgcolor="white">
    <td>姓名</td>
    <td>性别</td>
    <td>年龄</td>
    </tr>

    <tr bgcolor="white" >
    <td>Egon</td>
    <td>male</td>
    <td>18</td>
    </tr>

    <tr bgcolor="white">
    <td>ALex</td>
    <td>male</td>
    <td>73</td>
    </tr>

    <tr bgcolor="white">
    <td>Wxx</td>
    <td>female</td>
    <td>84</td>
    </tr>
    </table>
    #2、方式二
    细线表格的制作方式:
    1、给table标签设置bgcolor
    2、给tr标签设置bgcolor
    3、给table标签设置cellspacing="1px"


    注意:
    table、tr、td标签都支持bgcolor属性

    <table width="200px" height="200px" bgcolor="black" cellspacing="1px">
    <tr bgcolor="white">
    <td>姓名</td>
    <td>性别</td>
    <td>年龄</td>
    </tr>

    <tr bgcolor="white" >
    <td>Egon</td>
    <td>male</td>
    <td>18</td>
    </tr>

    <tr bgcolor="white">
    <td>ALex</td>
    <td>male</td>
    <td>73</td>
    </tr>

    <tr bgcolor="white">
    <td>Wxx</td>
    <td>female</td>
    <td>84</td>
    </tr>
    </table>

    #3、方式三(style="border-collapse: collapse;border: 1px solid red")
    <table border="1px" style="border-collapse: collapse;border: 1px solid red">
    <tr>
    <td>姓名</td>
    <td>性别</td>
    <td>年龄</td>
    </tr>
    <tr>
    <td>egon</td>
    <td>male</td>
    <td>18</td>
    </tr>
    <tr>
    <td>alex</td>
    <td>female</td>
    <td>19</td>
    </tr>
    </table>

    表格结构详解:
    为了方便管理维护以及提升语义,我们将表格中存储的数据分为四类:
    #1、表格的标题:caption
    特点:相对于表格宽度自动居中对齐
    注意:
    1.1 该标签一定要写在table标签里,否则无效
    1.2 caption一定要紧跟在table标签内的第一个

    #2、表格的表头信息:thead
    特点:专门用来存储每一列的标题,只要将当前列的标题存储在这个标签中就会自动居中+加粗文字


    #3、表格的主体信息:tbody
    注意:
    3.1 如果没有添加tbody,浏览器会自动添加
    3.2 如果指定了thread和tfoot,那么在修改整个表格的高度时,thead和tfoot有自己默认的高度,不会随着
    表格的高度变化而变化

    #4、表尾信息:tfoot


    <html>
    <head>
    <meta charset="utf-8"/>
    </head>
    <body>
    <table bgcolor="black" border="1" width="300px" height="300px" cellspacing="1px">

    <caption>学员信息统计</caption>
    <thead>
    <tr bgcolor="white">
    <th>姓名</th>
    <th>性别</th>
    <th>年龄</th>
    </tr>
    </thead>

    <tbody>
    <tr bgcolor="white">
    <td>egon</td>
    <td>male</td>
    <td>18</td>
    </tr>

    <tr bgcolor="white">
    <td>egon</td>
    <td>male</td>
    <td>18</td>
    </tr>

    <tr bgcolor="white">
    <td>egon</td>
    <td>male</td>
    <td>18</td>
    </tr>
    </tbody>

    <tfoot>
    <tr bgcolor="white">
    <td>3</td>
    <td>3</td>
    <td>3</td>
    </tr>
    </tfoot>
    </table>

    </body>
    </html>

    单元格合并:
    #1、水平向上的单元格colspan
    可以给td标签添加一个colspan属性,来把水平方向的单元格当做多个单元格来看待
    <td colspan="2"></td>

    #2、垂直向上的单元格rowspan
    可以给td标签设置一个rowspan属性,来把垂直方向的的单元格当成多个去看待

    #注意注意注意:
    1、由于把某一个单元格当作了多个单元格来看待,所以就会多出一些单元格,所以需要删掉一些单元格
    2、一定要记住,单元格合并永远是向后或者向下合并,而不能向前或向上合并

    传统布局:
    传统的布局方式就是使用table来做整体页面的布局,布局的技巧归纳为如下几点:
    #1、定义表格宽高,将border、cellpadding、cellspacing全部设置为0
    #2、单元格里面嵌套表格
    #3、单元格中的元素和嵌套的表格用align和valign设置对齐方式
    #4、通过属性或者css样式设置单元格中元素的样式
    传统布局目前应用:
    #1、快速制作用于演示的html页面
    #2、商业推广EDM制作(广告邮件)
    传统布局

    二十一 form标签
    语义:标记表单
    #1、什么是表单?
    表单就是专门用来接收用户输入或采集用户信息的

    #2、表单的格式
    <form>
    <表单元素>
    </form>

    在form内还可以添加一种标签
    <fieldset>添加边框
    <legend>注册页面</legend>
    表单控件......
    </fieldset>

  • 相关阅读:
    CF1036C Solution
    CF1041E Solution
    CF1043E Solution
    CF1054D Solution
    CF1032D Solution
    题解 P6194 【[EER1]苏联人】
    题解 CF1324A 【Yet Another Tetris Problem】
    题解 CF1325A 【EhAb AnD gCd】
    题解 CF1325B 【CopyCopyCopyCopyCopy】
    题解 AT5805 【Bishop】
  • 原文地址:https://www.cnblogs.com/DEJAVU888/p/14471007.html
Copyright © 2020-2023  润新知