python day39

前端

什么是前端

应用软件组成:前端+后端

后端负责处理业务逻辑&提供数据,而前端则负责展示、与用户交互,下面都是前端

1、公司官网(在PC通过浏览器来访问公司网站)

2、移动端网页(在手机上来浏览公司信息、小游戏等)3、移动端APP(例如:淘宝、去哪儿旅游、携程等)

4、微信小程序(微信最新推出的功能,随用随装,不占用手机空间)。

前端开发是从网页制作演变而来。早期的网页制作主要内容都是静态的,以文字图片为主,用户使用网站也以浏览为主。

随着互联网的发展,现代网页更佳美观,交互效果显著,功能更加强大。因此现在的前端开发的主要技术通常是指html、css、js技术和一些开发框架的使用。

前端开发都有哪些内容?

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

(1)HTML是什么?

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

(2) css

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

(3) JavaScript

Javascript是一门脚本语言。

(4)前端框架

1、bootstrap

2、JQuery

3、vue

HTML、CSS和JavaScript的区别我们都知道前端技术最核心的是HTML、CSS和JavaScript这三种。但是这三者究竟是干嘛的呢?

“HTML是网页的结构,css是网页的外观,而Javascript是页面的行为,如果我们把前端开发的过程比喻成"建房子",做一个网页就像盖─栋房子。

1、先把房子结构建好(HTML)。

2、建好房子之后给房子装修(CSS),例如往窗户安上窗帘、往地板铺上漂亮的瓷砖。

3、最后呢,装修完了之后,当夜幕降临的时候,我们要开灯(JavaScript) ,这样才能看得见里面。

HTML

用户使用浏览器打开网页看到结果的过程就是︰
浏览器将服务端的文本文件(即网页文件)内容下载到本地,然后打开显示的过程。而文本文件的文档结构只有空格和换行两种组织方式,如果仅凭它俩,文本文件在打开显示时,显示的效果将会非常非常非常的单一。

为了让显示的效果不那么单调,我们会偏向使用word一类的文本编辑工具来编排文本内容,编排的原理就是︰在编辑文件时会选中各部分内容,然后为内容打上不同的标记,比如什么是标题,什么是段落,然后存放硬盘里,等下次打开时,word会识别之前的标记,然后按照预先编排好的结果显示出来。

站在显示文本内容的角度去看,浏览器与word的原理一样,我们可以将浏览器当成一个网页版的只读word,浏览器也必须有一套自己能识别的标记文本的规范,该规范被称为HTMLHTML全称是超文本标记语言(HyperText Markup Language)“超文本"指的是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本“标记"指的是在编辑文本时用特殊的记号标记一下各部分内容的意义,该记号称之为标签,比如用标签h1标记标题,用标签p标签段落:

<h1>我是标题</h1>
<p>哈哈</p>
<p>你好</p>
<p>你好</p>
<p>呵呵</p>

但是就单这样写的话没有规范所以我们需要一些标签和结构

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

HTML中的标签存放于文本文件中,需要按照下述固定的文档结构组织:

<! DOCTYPE HTML>
<html>
<head> . ..</ head>
<body> . ..</ body>
</ html>

1、<!DOCTYPE HTM>是文档声明,必须写在HTML文档的第一行,位于<html>标签之前,表明该文档是HTML5文档。

2、<html></html>称为根标签,所有的网页标签都在<html></html>中。
HTML的lang属性可用于网页或部分网页的语言。通常用于搜索引擎和浏览器的统计分析,不定义也没什么影响。

3、<head></head>标签用于定义文档的头部、是所有头部元素的容器。常见的头部元素有<title><script><style><link><meta>等标签,头部标签在下一节中会有详细介绍,与之间的内容不会在浏览器的文档窗口显示,但是其间的元素有特殊重要的意义。

4、在<body></body>标签之间的内容是网页的主要内容,最终会在浏览器中显示出来。

HTML中标签分类

单从是否可以嵌套子标签的角度去分,标签分为两类:

1、容器类标签

容器类标签可以简单的理解为能嵌套其它所有标签的标签。常见容器级的标签:

h标签系列
ul>li
ol>li
dl>dt+dd
div

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

p
span
strong
em
ins
del
HTML中的注释

无论我们学习什么编程语言,一定要重视的就是注释,HTML中注释的格式:

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

注意事项:
1、HTML注释不支持嵌套。

2、HTML注释不能写在HTML标签中。

head内常用标签

meta相关

1、指定字符集
<meta charset="gbk">

2、关键字:有助于搜索引擎sEo优化,再怎么优化也抵不过竞价排名<meta name="Keywords" content="购物,手机,CPU,显卡">

3、页面描述
<meta name="Description" content="买电器上jingdo"> description要用简短的文字描述网站或网页的主要内容,有利于各大搜索引擎的抓取收录你的网站或网页。当你设置了description网站描述文字,才会显示在搜索引擎的结果页中,而每个网页的description也是同样的道理,简短又准确的网页描述文字,可以帮助用户在搜索引擎中更方便的找到你的网站和网页!
例如: www.jd.como

4、3秒后跳转
<meta http-equiv="refresh" content="3, http: //www.baidu.com">

5、三秒刷新
<meta http-equiv="refresh" content="3 ">

非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>换行

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)︰定义被删除的文字。

字符实体

1、在HTML中对空格/回车/tab不敏感,会把多个空格/回车/tab当作一个空格来处理。
2、字符实体指的是在HTML中有的字符是被HTML保留的比如大于号小于号,有的HTMr字符,在HTML中是有特殊含义的,是不能在浏览器中直接显示出来的,那么这些东西想显示出来就必须通过字符实体,如下
注释:实体名称对大小写敏感!

内容

代码

空格

&nbsp;

>

&gt;

>

<&lt;

&

&amp;


&yen;

版权

&scopy;

注册

&reg;

更多请查阅:http://tool.chinaz.com/Tools/HtmlChar.aspx

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>h系列标签</title>< / head>
<body>
<hl>—级标题</ h1>
<h2>二级标题</h2>
<h3>三级标题</h3>
<h4>四级标题</h4>
<h5>五级标题</ h5>
<h6>六级标题</h6>
<h7>没有七级标题</h7><!--没有七级标题-->
</body>
</html>

p标签

语义︰标记内容为一个段落,全称paragraph。

<! DOCTYPE HTML>
<html>
<head lang= 'en '>
<meta charset="utf一8"><title>你好</title></head>
<body>
<h1>一级标题</h1>
<p>你好</p>
<p>哈哈</p>
</body>
</ html>

img标签

语义︰标记一个图片,全称image。
用法

<img src="图片地址" alt="图片加载失败时显示的内容" title = "鼠标悬停到图片上时显示的内容"/>

1、src指定的图片地址可以是网络地址,也可以是一个本地地址,本地地址可以用绝对或相对路径,但通常用相对路径,相对路径是以html文件当前所在路径为基准进行的。

2、图片的格式可以是png、jpg和gif。

3、3 alt="图片加载失败时显示的内容”为img标签加上该属性可用于支持搜索引擎和盲人读屏软件。

4、 title =“鼠标悬停到图片上时显示的内容"。

5、如果没有指定图片的width和height则按照图片默认的宽高显示,如果指定图片的width和height则可能让图片变形。如果又想指定宽度和高度,又不想让图片变形,我们可以只指定宽度和高度的一个值即可只要指定了一个值,系统会根据该值计算另外一个值,并且都是等比拉伸的,图片将不会变形。

a标签

语义:标记一个内容为超链接,全称anchor,锚。

<a href="跳转到的目标页面地址" target="是否在新页面中打开" title="鼠标悬浮显示的内容">需要展现给用户查看的内容/也可以是图片</a>

注意:
1、 a标签不仅可以标记文字,也可以标记图片
<a href="https://www.baidu.com"><img src="mv.png" />百度一下,你就知道</a>

2 、a标签必须有href属性,href的值必须是http://或https://开头

3、 a标签还可以跳转到自己的页面
<a href="test.html">哈哈</a>

4、 target="_blank"代表在新页面中打开,其余的值均无需记忆,
如果页面中大量的a标签都需要设置target="_blank",那么我们可以在head标签内新增一个base标签进行统一设置。<base target="_blank">如果a标签自己设置了target,那么就以自己的为准,否则就会参照base的设置。

5、 title=“鼠标悬浮显示的内容”

假链接

假链接就是点击之后不会跳转的链接,我们称之为假链接

假链接存在的意义为在企业开发前期,其他界面都还没有写出来,那么我们就不知道应该跳转到什么地方,所以就只能使用假链接来代替。

假链接的定义格式有两种

1、href="#"   :会自动回到网页的顶部
    2、href="javascript:" :不会返回顶部
页面内锚点

要想通过a标签跳转到指定的位置,那么必须告诉a标签一个独一无二的身份证号码,
这样a标签才能在当前界面中找到需要跳转到的目标位置。在html中,每一个标签都有一个名称叫做id的属性这个属性就是用来给标签指定一个独一无二的身份证号码。

要想实现通过a标签跳转到指定的位置,分为两步:
1、给目标位置的标签添加一个id属性,然后指定一个独一无二的值。

2、告诉a标签你需要跳转到的目标标签对应的独一无二的身份证号码是多少。

而a标签除了可以跳转当前页面,还可以跳转到其他页面的指定位置

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

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

列表标签

语义:标记一堆数据是一个整体/列表

html中列表标签分为三种

1、无序列表(列表标签中使用最多的一种,非常重要):unordered list
作用为制作导航条、商品列表、新闻列表等

组合使用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>

ul标签的属性type(这属于列表的样式,所以了解即可)
type:列表标识的类型
disc:实心圆(默认值)
circle:空心圆
square:实心矩形
none:不显示标识
可以通过css直接去掉小圆点

<style type="text/css">
            ul {
                list-style: none;
            }
</style>

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

2、有序列表(极少使用)
有序列表能干的事,完全可以用无序列表取代。

<h1>数字</h1>
    <ol>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ol>

3、自定义列表(也会经常使用)

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

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>

注意:
dl>dt+dd应该组合出现,dl中只应该存放dt和dd,而可以在dt和dd中添加任意其他标签 3.2 一个dt可以可以没有对应的dd,也可以有多个,但建议一个dt对应一个dd。