本文,有很多很棘手的问题,例如使用sublime 编辑器可能安装插件的时候会使用不了view in browser我公司的电脑可以安装、结果家里的电脑就报编码错误、需要改sublime插件源代码解码成utf8就可以了、还有一直连不上packagecontrol的网页,可以群(526929231)使劲砸我得到解决~ sublime编辑器对于前端来说确实很好用!很好用!很好用! SublimeText、Webstorm推荐这两个编辑器
刚开始设计HTML语言是为了將文字图像关联在一起,用另一台发送或接收
HTML 不是一种编程语言,而是一中标记语言(mark-up language),标记语言是一套标记标签(mark-up tag)
标签是由尖括号 < > 把关键词括起来,标签通常是成对出现的
读取 HTML 文档,使用标签来解析页面的内容,以网页的形式现实,浏览器不会现实HTML标签
每种浏览器都有自己的内核(引擎)(解析网页的一个程序,io以什么方式去渲染它都要通过引擎去执行)
目前主流的浏览器分为五种
Chrome谷歌浏览器 (Webkit内核,V8 js引擎)
Firefox火狐浏览器 (Gecko内核)
Internet Explorer IE浏览器( Trident内核)
Opera 欧朋浏览器 (Presto内核) 主要市场:移动端
Safari 苹果浏览器 (Webkit内核,但JS引擎为Nitro)
不需要去记,简单了解下
标签必须闭合
所有标签名一律小写
代码缩进,使阅读代码更加易懂
特殊符号规范使用
命名规范,见名之意
PS: 所有的标记符号都是半角英文
众说纷纭编辑器太多,最终只是一个工具,希望同学们能从万千世界中找到适合自己的编辑器伙伴
编辑器 | 描述 |
---|---|
EditPlus | 手写模式,适合初学手写,无代码提示(有IE调试视图) |
Sublime | 插件特别多,占用内存小,启动速度快,打开大项目较慢,管理文件方式有些缺陷 |
webstorm | 集成插件特别多,启动较慢,占用内存大,开发和管理视图都很方便 |
Dreamweaver | 适合初学,主要代码提示和代码插入功能强大,主要偏向于设计(有设计视图) |
插件名 | 描述 | 详情请戳 |
---|---|---|
emmet | 前端自动补全,提供快捷补全方式 | |
ColorPicker | 调色板,颜色选择器 | |
SublimeTmpl | sublime模板,可以快速创建一个HTML模板 | |
view in browser | 用快捷方式打开浏览器进行调试HTML(需要配置参考后面网页) | |
LiveReload | 实时刷新HTML(编辑器里按下保存ctrl+s的时候,已经打开的HTMl会自动刷新) | 谷歌插件文件安装方法需要配合谷歌LiveReload插件插件文件下载 |
Color Highlighter | CSS颜色代码高亮及颜色预览提示 | |
CSS3 | CSS3的代码高亮提示 | 还针对了CSS3的选择器及锚类选择器:hover :first-child :first-child ... 的高亮 |
JavaScript Completions | 原生js 代码提示 | |
Sublime-Better-Completion | 可自选开启代码提示,支持jQ、js、bootstrap、php、sql ... | 仓库地址此插件只能通过Github克隆下载安装安装方法 |
注:Github 网页中 下面是有详细的使用方法 packagecontrol.io官网 里面search 可以进行搜索插件名字来找到具体使用方法,还有什么不懂或者安装出现编码错误以及安装不上的可以拍打我~
配置 | 描述 |
---|---|
!DOCTYPE html | 不是标签,主要用于文档类型的声明 |
charset="utf-8" | 声明字符编码集 |
http-equiv="Content-Type" | 把Content属性关联到HTTP头部(协议头) |
HTML模板
简单了解,并不需要熟练掌握
Dom节点树
.html .htm这两种是比较常见的
在早期系统中文件名是有8+3组成 三个扩展名所以不支持四个字母的扩展采用.htm
现在通常使用.html作为扩展名
接下来所有的标签元素学习都在body标签里面去敲打实现、
为了突出标题,字体大小和加粗发生相应的改变
<h1>我是大主题</h1> <h2>我是大主题</h2> <h3>我是大主题</h3> <h4>我是大主题</h4> <h5>我是大主题</h5> <h6>我是大主题</h6>
<!doctype html><!-- 让浏览器使用html5的标准解析 --> <html> <head> <!-- 设置字符编码集让浏览器使用utf8解析当前网页 --> <meta http-equiv="Content-Type" content="text/html; charset=utf8" /> <meta name="keywords" content="SEO搜索引擎,关键词,多个请用逗号分开" /> <meta name="description" content="网页描述,八十字内" /> <title>浏览器标签页上的网页标题</title> </head> <body> <!-- 所有的标签学习都在这body里面去敲,上面head元素里面的内容做个了解就可以了 --> <h1>我是大标题</h1> <h2>我是主题2</h2> <h3>我是主题3</h3> <h4>我是主题4</h4> <h5>我是主题5</h5> <h6>我是主题6</h6> </body> </html>
可以发现h标签从h1到h6会随着数值越小字越小,并且都是会加粗和各占一行的状态(前后的元素都会被换行)
h1标签一般一个页面里面只会写一次,为了让搜索引擎爬取到 (写一次利于SEO搜索引擎优化)
<p> 冬着一身素衣,缓缓而来,季节没有了往日的姹紫嫣红,却用简单的线条,勾勒出一幅洁白的画,纯洁通透,轻盈自然。 </p>
刚我们了解到了浏览器是识别尖括号的,如果要在页面中显示html标记那要怎么做呢?这时候就需要特殊符号的表示来显示
符号 | 描述 |
---|---|
空格 | |
小于 | < |
大于 | > |
引号 | " |
版权 | © |
×叉 | × |
& | & |
符号 | 描述 |
---|---|
B标签 | 物理加粗,页面呈现加粗状态. |
Strong标签 | 不仅能加粗,还利于搜索引擎优化 |
<b>物理加粗,页面呈现加粗状态.</b> <strong>不仅能加粗,还利于搜索引擎优化,就是类似于百度、谷歌这种搜索引擎爬取你的网页的时候会查找这个标签里面的内容来优化显示网页的排名</strong>
可以根据word文档上面发现 b是加粗 u是下划线 i是倾斜 同样适用于标签
<i>我是倾斜</i> <u>我加了下划线</u>
链接一个页面,点击则会跳转这个链接页面
使用锚点滚动到设定的位置
<a href=""></a> a标签中的href控制点击的时候跳转到哪里如果没写表示刷新当前页面 <a href="#"></a> 跳转到当前页面(回归到页面顶部) <a href="javascript: void(0);"></a> 死链接,不会跳转,一般用于js特效 <a href="#name">锚点到一个标签上所对应的ID名字,点击则跳到那个标签位置</a> <a href="http://baidu.com">跳转到百度</a> 跳转到百度 需要注意的是 http 协议不能少
点击#flag的a标签的时候会跳到到上面h2标签
只有拥有name属性的
a标签
才能锚点,还有一种方式是通过ID标识唯一元素,也可以跳转(不仅仅是a标签)
描述 | 标签 |
---|---|
滚动标签 | marquee |
字体标签 | font |
定义水平线 | hr |
marquee
属性 | 描述 |
---|---|
direction | 滚动方向 |
behivior | 行为 |
behivior
值 | 描述 |
---|---|
alternate | 交替滚动 |
scroll | 滚动 |
slide | 滑落 |
属性 | 描述 |
---|---|
color | 颜色 |
size | 0-7 |
face | 字体 |
与font相似,拥有color和size属性
hr标签没有结束标签 按照早期的习惯也H5也遵循XHTML的解析 所以统一会加一个反斜杠表示结束这个标签,不加也能够正确显示,但是养成一个良好的习惯确实重要,比如微信小程序就是没有结束标签必须要使用一个反斜杠结尾否则直接报错、
结合今天所学,写一个简单的网页
内容如下:
写一篇收获或感受 / 写一篇文章 ————> 为什么要自己写,网上一大把哈哈,可以自己写下,锻炼下思维
需要包括h、p、a、加粗
题材不限,至少200字
在习题一的文章底部,使用滚动标签进行滚动方向为45°
SS 中,::before 创建一个伪元素,其将成为匹配选中的元素的第一个子元素。常通过 content 属性来为一个元素添加修饰性的内容。此元素默认是行级的。
备注: 由 ::before 和 ::after 伪元素生成的盒子,就好像它们是应用它们的元素或“原始元素(originating element)”的直接子元素一样,因此不能应用在替换元素上,比如 <img> 元素,其内容不在 CSS 格式化模型的范围内。
CSSCopy to Clipboard
::before {
content: /* 值 */;
/* 属性 */
}
如果 content 属性没有明确指定,或者有一个无效值,或者其值为 normal 或 none,则 ::before 伪元素不会被渲染。它的行为就好像设置了 display: none 一样。
备注: Selectors 第 3 版引入了双冒号标记法 ::before,以将伪类和伪元素区别开。浏览器也接受由 CSS2 引入的 :before 写法。
示例
使用 ::before 伪元素的一个简单示例就是用于加入引号。此处同时使用了 ::before 和 ::after来插入引用性文本。
HTMLPlayCopy to Clipboard
<q>有引号,</q>他说,<q>总比没有好。</q>
CSSPlayCopy to Clipboard
q::before {
content: "“";
color: blue;
}
q::after {
content: "”";
color: red;
}
我们可以用几乎任何方法定义 content 中的文字和图片样式。
HTMLPlayCopy to Clipboard
<span class="ribbon">注意橙色方框的位置。</span>
CSSPlayCopy to Clipboard
.ribbon {
background-color: #5bc8f7;
}
.ribbon::before {
content: "看橙色的盒子。";
background-color: #ffba10;
border-color: black;
border-style: dotted;
}
在本例中我们将使用伪元素来创建一个简单的待办列表。这个方法也可用于 UI 的小幅度更改和用户体验的提升。
HTMLPlayCopy to Clipboard
<ul>
<li>买牛奶</li>
<li>带着狗散步</li>
<li>锻炼</li>
<li>写代码</li>
<li>播放音乐</li>
<li>放松</li>
</ul>
CSSPlayCopy to Clipboard
li {
list-style-type: none;
position: relative;
margin: 2px;
padding: 0.5em 0.5em 0.5em 2em;
background: lightgrey;
font-family: sans-serif;
}
li.done {
background: #ccff99;
}
li.done::before {
content: "";
position: absolute;
border-color: #009933;
border-style: solid;
border-width: 0 0.3em 0.25em 0;
height: 1em;
top: 1.3em;
left: 0.6em;
margin-top: -1em;
transform: rotate(45deg);
width: 0.5em;
}
JSPlayCopy to Clipboard
const list = document.querySelector("ul");
list.addEventListener(
"click",
(ev) => {
if (ev.target.tagName === "LI") {
ev.target.classList.toggle("done");
}
},
false,
);
下面展示的是最终得到的结果。请注意我们没有使用任何图标,对勾标识实际上是使用 CSS 定义了样式的 ::before 伪元素。接下来建立几个待办事项来完成它们吧。
由于这是 CSS;不是 HTML,你不可以在内容值中使用标记实体。如果你需要使用特殊字符,并且无法将其直接输入到 CSS 内容字符串中,那么请使用 unicode 转义序列,该序列由一个反斜杠和十六进制 unicode 值组成。
HTMLPlayCopy to Clipboard
<ol>
<li>把鸡蛋打入碗中</li>
<li>加牛奶</li>
<li>加面粉</li>
<li aria-current="step">混合成光滑的面糊</li>
<li>将一勺面糊倒在热的、抹了油的平底锅上</li>
<li>煎至煎饼顶部失去光泽</li>
<li>把它翻过来再煎几分钟</li>
<li>配上你喜欢的佐料</li>
</ol>
CSSPlayCopy to Clipboard
li {
padding: 0.5em;
}
li[aria-current="step"] {
font-weight: bold;
}
li[aria-current="step"]::after {
content: " \21E6"; /* 向左白色箭头的十六进制 */
display: inline;
}
不鼓励使用 ::before 伪元素添加内容,因为屏幕阅读器无法可靠地访问它。
、 HTML语言
HTML 指的是超文本标记语言 (Hyper Text Markup Language),它不是一种编程语言,而是一种使用一套标记标签(markup tag)来标记元素作用的标记语言,标记语言使用标记标签来描述网页的内容。标记标签不会出现在页面中,只有标签中的内容才会显示在页面上。
二、 HTML标签和HTML元素
HTML 标记标签通常被称为 HTML 标签 (HTML tag),是由一对尖括号括起来的关键词,称为标签名,如 <html>、<a>、<h1>。标签不区分大小写,但是推荐使用小写,(X)HTML 版本中强制使用小写,这样更加严谨。
标签的标记分为起始标签和结束标签。HTML 元素指的是从开始标签(start tag)到结束标签(end tag)的所有内容。
起始标签用于标记对应HTML元素的开始位置,结束标签用于标记HTML元素的结束位置。
标签分为单标签和双标签,都需要起始标签和结束标签,不同的是单标签起始、结束标签都写在一个尖括号里而双标签则分别写在两个尖括号里。单标签又称为空标签,双标签又称为闭合标签。单标签的结束标签就是在标签的右尖括号前面一个反斜杠,如<br />就是一个单标签,双标签的结束标签就是在左尖括号后比开始标签多了一个反斜杠,如<html>和</html>就是一对开始标签和结束标签。
三、 HTML元素的分类
不同的HTML标签对应的HTML元素可以根据位置特征等分为两类:
四、 标签嵌套
双标签的开始标签和结束标签之间可以嵌套其他标签,不过需要遵循以下规则:
1、两个标签嵌套时必须确保开始标签和结束标签的层级是一致的,即开始标签在外层的结束标签必须在外层;
2、建议书写HTML文本时嵌套标签的内层标签相对外层标签进行缩进以体现嵌套关系;
3、块元素标签可以包含行元素标签,但行元素标签不能包含块元素标签,它们只能包含其它的行元素标签;
4、a标签想要用hover必须把它的路径写全;
5、伪类(hover/link/visited/active)只能加给a标签,在支持 CSS 的浏览器中,伪类表示链接的不同状态,这些状态包括:活动状态,已被访问状态,未被访问状态,和鼠标悬停状态:
1)link用在为访问的连接上;
2)visited用在已经访问过的连接上;
3)hover用于鼠标光标置于其上的连接;
4)active用于获得焦点(比如,被点击)的连接上。
6、块元素标签之间:
1)h1、h2、h3、h4、h5、h6、p、dt标签内不能再嵌套块标签;
2)li元素可以嵌入ul, ol, div;
3)div内可以再嵌套其他块元素;
4)块元素嵌套其他标签时,同一层级必须都是块元素,或必须都是行元素,不能一部分是块元素,一部分是行元素。如<div><span></span><p></p></div>这种模式是错误的,因为span是行元素,p是块元素,所以这个是错误的嵌套。
虽然标签可以嵌套,但为了提高浏览器的渲染效率,应该尽量少使用标签嵌套。
五、 标签的属性
HTML 标签可以拥有属性,属性为HTML元素提供的更多的附加信息, 属性只能在开始标签中使用,总是以名称/值对的形式出现,属性与属性之间需要用空格隔开,属性使用小写。常用的属性有class(样式类)、id(属性名)、style(显示风格)、title(标题)、align(对齐方式)、bgcolor(背景色)、color(颜色)。
如:
。
*请认真填写需求信息,我们会在24小时内与您取得联系。