我爱编程

前端简介--HTML与CSS

2018-05-22  本文已影响0人  风舞柏杨

一. 了解前端

1. 什么是前端

前端即网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页。随着互联网技术的发展,HTML5,CSS3,前端框架的应用,跨平台响应式网页设计能够适应各种屏幕分辨率,完美的动效设计,给用户带来极高的用户体验。

2. 前端开发概述

从软件分类来说: (根据使用的目的不同)

从软件信息存储位置的不同:

前端开发也叫作web前端开发, 是为B/S架构的软件提供界面解决方案的.

3 核心技术

这三个是前端开发中最基本也是最必须的三个技能。前端的开发中,在页面的布局时, HTML将元素进行定义,CSS对展示的元素进行定位,再通过JavaScript实现相应的效果和交互。虽然表面看起来很简单,但这里面需要掌握的东西绝对不会少。在进行开发前,需要对这些概念弄清楚、弄明白,这样在开发的过程中才会得心应手。

Html

指的是超文本标记语言 (Hyper Text Markup Language),这个也是我们网页最常用普通的语言了,经历了多个版本的发展,已经发展到5.0版了, 即HTML5。

Css

级联样式表(Cascading Style Sheet)简称“CSS”,通常又称为“风格样式表(Style Sheet)”,它是用来进行网页风格设计的。比如,如果想让链接字未点击时是蓝色的,当鼠标移上去后字变成红色的且有下划线,这就是一种风格。通过设立样式表,可以统一地控制HTML中各标志的显示属性。级联样式表可以使人更能有效地控制网页外观。使用级联样式表,可以扩充精确指定网页元素位置,外观以及创建特殊效果的能力。

JavaScript

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

3. 前端开发环境搭建

1) vscode了解

Visual Studio Code 是微软推出的跨平台编辑器。它采用经典的VS的UI布局,功能强大,扩展性很强。支持多种语言开发,只需要安装对应的插件即可. 我们学习前端过程中主要使用它来敲代码. 我们前端常用的IDE(集成化开发环境)选择很多, 例如: vscode, hbuilder, webstorm, sublime等.

vscode官网: https://code.visualstudio.com

IDE: 集成开发环境

vscode插件的安装:

1.view in browser:

能够让我们所写的代码运行在浏览器上.

2.Beautify:

能够使我们写的代码变得漂亮点

3.Auto Close Tag:

自动添加 HTML 关闭标签

4.Color Highlight:

颜色高亮

5.HTML CSS Support:

html css 支持插件

6.Preview on Web Server:

使我们写的网页可以通过本地服务器打开

vscode的自动保存设置: 打开左上角的 文件 -----> 选择自动保存, 如果不选择自动保存,则只能够手动保存后程序才能运行.

2) chrome浏览器

前端的开发工作主要是在vscode等编辑器上进行的, 但是代码的调试主要是在浏览器上, 所以我们给大家推荐chrome浏览器, 用于查看和调试前端代码.

二. HTML

1. 了解HTML

我们可以通过查看源代码的形式, 看到制作出来的网页

通过仔细观察网页源代码我们可以知道: 制作网页的语言是用 "<" ">" 括起来的. 有些是成对出现,有些不是 -----> 我们一般称这样用尖括号括起来的语言为 HTML

HTML 是 Hyper Text Markup Language 的首字母简写, 意思是超文本标记语言, 超文本指的是超链接, 标记指的是标签, 是一种用来制作网页的语言, 这种语言由一个个的标签组成, 用这种语言制作的文件保存的是一个文本文件, 文件的扩展名为 .html 或者 .htm

2. HTML文档的基本结构

html文件的基本结构为:

<!DOCTYPE html>  <!--html的文档声明,声明当前html文档的版本-->
<html>           <!--根标签: html开始标签 -->
    <head>       <!--html标签中的第一个子标签: head开始标签-->
        <meta charset="UTF-8">    <!--单个标签meta: 主要用于当前文档设置, 这里设置的是文档的编码格式 utf-8-->
        <title>Document</title>   <!--title标签: 主要用于设置当前文档标题-->
    </head>      <!--html标签中的第一个子标签: head结束标签-->
    <body>       <!--html标签中的第二个子标签: body开始标签-->
    
    </body>      <!--html标签中的第二个子标签: body结束标签-->
</html>          <!--根标签: html结束标签 -->

注意:

html语言中注释的写法:

快捷键: ctrl + / 取消注释: ctrl + /

说明:

3. 快速创建HTML文档

我们可以新建一个.html文件, 在文件中快速创建基本标签:

快速创建的方法是: 在文件中敲一个 " ! " 然后按 tab 键 即可:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    浙江温州浙江温州 江南皮革厂倒闭了
    浙江温州最大皮革厂 江南皮革厂倒闭了
    王八蛋王八蛋黄鹤老板 吃喝嫖赌吃喝嫖赌
    欠下了欠下了3.5个亿 带着他的小姨子跑了
    我们没有没有没有办法办法 拿着钱包抵工资工资
    原价都是100多200多300多的钱包 统统20块
    20块20块统统20块 统统统统统统20块
    黄鹤王八蛋王八蛋黄鹤 你不是你不是你不是人
    100多200多300多的钱包 统统20块统统20块
    黄鹤王八蛋王八蛋黄鹤 你不是你不是你不是人
    我们辛辛苦苦干了 辛辛苦苦给你给你干了大半年
    你你你不发不发工资工资 你还我还我血汗钱
    还我血汗钱
</body>
</html>

我们可以看到,这样就可以快速的创建一个基本的html文档了, 我们可以在这个文档中快速的编写代码

说明:

4. HTML标签

学习 HTML 语言就是学习标签的用法, HTML 标签有20多个, 学会这些标签的使用, 就基本上学会了 HTML的使用

1. 认识标签:

在html语言中, 用尖括号括起来的部分, 我们成为标签.

2. 标签的了解:

无论是成对的标签还是单个的标签,都需要用 " < > " 括起来

例如:

 <!DOCTYPE html>  
<html lang="en">
<head>  
    <meta charset="utf-8">
    <title>我的主页</title>
</head>
<body>
    <ul>
        <li>
            <a href="#">这是个链接</a>
        </li>
    </ul>
    <hr>
    <img src="../day001/image.png" alt="">
</body>
</html>

由上图我们可以知道:

同时: 由上面的代码我们也可以获取到:

标签是可以嵌套的: 例如 上面的代码中 html 标签, 嵌套了 head 标签和 body 标签.

body 标签又嵌套了 ul 标签, ul 标签嵌套了 li , li 嵌套了 a标签等等.

类似于这样标签中添加标签的写法,我们称之为标签的嵌套.

3. 标签的属性

有些标签内部有这样的设置:

<img src="../day001/image.png" alt="">

其中 src=" " 和 alt=" " 这部分内容, 我们称之为当前标签的属性.

说明:

总结:

4. 标签的分类

注意: 在前端中, 元素指的就是标签, 所以我们有时候说: xx元素, 即指的是 xx标签

标签按照显示的不同, 可以分为两类:

块元素的特点:

内联元素:

常用的块元素标签:

1. 标题标签

表示文档的标题, 除了具有块元素基本特征之外, 还含有默认的外边距和字体大小

<h1>一级标题</h1>
<h2>二级标题</h2>
<h3>三级标题</h3>
<h4>四级标题</h4>
<h5>五级标题</h5>
<h6>六级标题</h6>

2.段落标签:

表示文档中的一个文字段落, 除了具有块元素基本特征, 还含有默认的外边距

<p>
    既然你诚心诚意的问了, 
    我们就大发慈悲的告诉你! 
    为了防止世界被破坏, 
    为了守护世界的和平; 
    贯彻爱与真实的邪恶, 
    可爱又迷人的反派角色~~ 
    武藏! 
    小次郎! 
    我们是穿梭在银河的火箭队!白洞,白色的明天在等着我们!! 
    就是这样~喵~~~~ 
</p>

段落标签中如果想要强制换行,需要使用<br>标签, 这个标签是个单个标签,所以只有一个.

另外在html中, 如果想要写大于号, 小于号, 或者空格等, 需要使用代码来实现, 这样更加优雅~
代码实现大于号:  &gt;
代码实现小于号:  &lt;
代码实现空格:    &nbsp;

3. 通用块容器标签 div

表示文档中一块内容, 具 有块元素基本特性, 没有其他默认样式

<div>这是一个div元素</div>
<div>这是第二个div元素</div>
<div>
    <h3>自我介绍</h3> 
    <p>
        姑娘貌美一枝花,才学素养人品佳。
        活泼开朗不八卦,头脑敏锐有想法。
        踏实奋进不做假,乐于求知肯深挖。
        舞文弄墨擅策划,慧心妙舌喜表达。
        交友广泛爱分享,微博日日落不下。
        四年深造象牙塔,学习实践两手抓。
        只待应届招聘季,我花开后百花杀。
    </p>
</div>

常用内联元素标签

1.超链接标签 a

链接到另外一个网页, 具有内联元素基本特征, 默认文字蓝色, 有下划线

<a href="02.html">第二个网页</a>
<a href="http://www.baidu.com">百度网站</a>
<a href="http://www.baidu.com"><img src="images/logo.png" alt=""></a>
<a href="#">默认链接</a>

<a href="http://www.itcast.cn">原来的窗口打开界面</a>
<a href="www.baidu.com" target="_blank">新窗口打开界面</a>

说明:

2.通用内联容器标签 span

具有内联元素基本特性, 没有其他默认样式

我们一般在文字段落的中间部分强调某一部分的时候调用span,添加样式,从而改变强调的部分的样式:

例如: 这是一段文字,其中梅总需要强调,所以我们可以使用span来完成强调的操作.

<p>这是一个段落文字, 段落文字中有<span>特殊标志或者样式<span>的文字</p>

3. 图片标签 img

在网页中插入图片, 具有内联元素基本特性, 但是它支持宽高设置

<img src="images/pic.png" alt="图片">

说明:

特殊的一些标签:

空格: 在html中, 空格一般会用: &nbsp;表示

回车: 在html中回车换行一般用<br>表示

小于号( < ): 在html中一般用&lt;表示

大于号( > ): 在html中一般用&gt;表示

删除标签: del 或者 ( s )

倾斜标签: em 或者 ( i )

下划线标签: ins 或者 ( u )

总结:

**课下自己了解: **

块级元素和内联元素的嵌套规则:

  • 最基本:内联不能嵌套块级,块级可以嵌套内联元素

<div><h1></h1><p></p></div> 正确(块级并列)

<span></span></a> 正确(内联嵌套内联)

<span><div></div></span> 错误(内联嵌套块级)

  • 有几个特殊的块级元素只能包含内嵌元素,不能再包含块级元素,这几个特殊的标签是:h1、h2、h3、h4、h5、h6、p、dt。所以说p里面不能嵌套div,就是我犯的错误。

    <p><ol><li></li></ol></p>—— 错

    <p><div></div></p>—— 错

  • 特殊的<li>里面可以嵌套div(<li>可以但<p>不行)

  • 块级元素与块级元素并列、内联元素与内联元素并列

    <div><h2></h2><p></p></div>  正确

    <div><a href="#"></a><span></span></div>  正确

    <div><h2></h2><span></span></div>  错误(块级和内联并列了)

5. HTML布局

网页布局原理:

标签在网页中会显示成一个个的方块,先按照行的方式, 把网页划分为多个行, 再到行里面划分列, 也就是说在表示行的标签中在嵌套标签来表示列, 标签的嵌套产生叠加效果.

[图片上传失败...(image-515356-1526959831403)]

上图实例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <!-- 外面的容器 -->
    <div>
        <!-- 第一行 -->
        <div>
            <h3>今日头条</h3>
            <a href="#">更多&gt;&gt;</a>
        </div>

        <!-- 第二行 -->
        <img src="images/banner.jpg" alt="banner">

        <!-- 第三行 -->
        <p> 人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的          智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解          智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器             人、语言识别、图像 识别、自然语言处理和专家系统等。
        </p>
    </div>
</body>
</html>

标签语义化

在布局中需要尽量使用带语义的标签, 使用带语义的标签的目的首先是为了让搜索引擎能更好的理解网页的结构,提高网站在搜索中的排名(也叫作SEO), 其次是方便代码的阅读和维护

带语义的标签:

不带语义 的标签:

所以我们要根据网页上显示的内容, 使用合适的标签, 可以优化之前的代码.

三. CSS介绍

为了让网页元素的样式更加的丰富, 也为了让网页的内容和样式能拆分开, CSS由此而诞生.

CSS是 Cascading Style Sheets 的首写字母缩写,意思是层叠样式表.

有了CSS, html 中大部分表现样式的标签就废弃不用了, html只负责文档的结构和内容,

表现形式完全交给CSS, 这样使得html文档变得更加简洁.

1. CSS基本语法

CSS使用格式:

选择器 {
    属性 : 值;
    属性 : 值;
    ...
}

说明:

例如:

div {
    width: 100px;
    height: 100px;
    background: gold;
}

2. CSS引入方法

CSS样式导入HTML中有三种方式

1.内联式:

通过标签的 style 属性, 在标签上直接写样式.

<div style="width:100px; height:100px; background:red">这是个div标签</div>

2. 嵌入式:

通过 style 标签, 在网页上创建嵌入的样式表.

<style type="text/css">
    div {
        width: 100px;
        height: 100px;
        background: red;
    }
</style>

3.外联式:

<link rel="stylesheet" type="text/css" href="css/样式文件名.css">

3. CSS选择器

1.标签选择器

标签选择器, 此种选择器影响范围大, 一般用来做一些通用设置, 或用在层级选择器中.

通用格式:

标签名 {
    属性名: 值;
    ...
}

例如:

div {
    color: red;
}

p {
    font-size: 18px;
}

一旦使用标签选择器,则当前页面上的所有该标签全部都有该样式. 这一点需要注意

2.类选择器

通过类名来选择元素, 一个类可应用于多个元素, 一个元素上也可以使用多个类, 应用灵活, 可复用, 是css中应用最多的一种选择器

常见格式:

.类名 {
    属性名: 值;
    ...
}

举例:

CSS部分:
<style>
    .blue {
        color: blue;
    }
    .header {
        font-size: 19px;
    }
</style>

HTML部分:
<div class="blue">这是个div标签</div>
<h3 class="blue header">这个是个h3标签</h3>
<p class="header">p标签部分</p>

3.层级选择器:

主要应用在标签嵌套的结构中,层级选择器, 是结合上面两种选择器来写的选择器, 它可与标签选择器结合使用,减少命名,同时也可以通过层级, 限制样式的作用范围

例如:

CSS部分:
.con {
    width: 100px;
    height: 100px;
}
.con span {
    color: red;
}
.con .pink {
    color: pink;
}

HTML部分:
<div class="con">
    <span>这里是span标签的内容</span>
    <div class="pink">这里是div中的div标签,我是粉色</div>
</div>

层级选择器: 按照标签的层级来匹配对应的标签

4. id选择器

通过 id 名来选择元素,元素的 id 名称不能重复,所以一个样式设置项只能对应于页面上一个元素,不能复用,id 名一般给程序使用,所以不推荐使用id作为选择器。

使用格式:

#id名 {
    属性名: 值
}

举例:

CSS部分: 
#box{
    color:red
} 


HTML部分:
<p id="box">这是第一个段落标签</p>   
<p>这是第二个段落标签</p> 
<p>这是第三个段落标签</p> 

5. 伪类选择器

常用的伪类选择器有hover,表示鼠标悬浮在元素上时的状态。

CSS部分: 
.box1 {
    width:100px;
    height:100px;
    background:gold;
}
.box1:hover {
    width:300px;
}

HTML部分: 
<div class="box1">别看村子不咋大呀, 有山有水有树林, 邻里相亲多和睦, 老少爷们也合群</div>


补充: 
#input:focus {
    outline: none;
    border: 2px solid red;
}

总结:

<html>
    <head>
    <style type="text/css">
        a:link {color: red}         /* 未访问时的状态 */
        a:visited {color: orange}   /* 已访问过的状态 */
        a:hover {color: pink}       /* 鼠标移动到链接上时的状态 */
        a:active {color: yellow}    /* 鼠标按下去时的状态 */
    </style>
    </head>
    <body>
        <p>
            <b><a href="/index.html" target="_blank">这是一个链接。</a></b>
        </p>
        <p>
            <b>注释:</b>
            在 CSS 定义中,a:hover 必须位于 a:link 和 a:visited 之后,这样才能生效!
        </p>
        <p>
            <b>注释:</b>
            在 CSS 定义中,a:active 必须位于 a:hover 之后,这样才能生效!
        </p>
    </body>
</html>

4. CSS属性入门

布局常用属性样式:

属性 作用 举例
width 设置元素(标签)的宽度 width: 200px;
height 设置元素(标签)的高度 height: 200px;
background 设置元素背景色或者背景图片(详看下面) background: pink;
border 设置元素四周的边框 border: 1px solid pink;
border-top 设置元素顶部边框 border-top: 1px solid pink;
border-left 设置元素左边边框 border-left: 1px solid pink;
border-right 设置元素右边边框 border-right: 1px solid pink;
border-bottom 设置元素底部边框 border-bottom: 1px solid pink;
padding 设置内边距(同时设置四个边,也可以分开设置) padding: 20px;
margin 设置外边距(同时设置四个边,也可以分开设置) margin: 20px;
float 设置元素浮动,浮动可以让块元素在一行排列 float:left(左浮动) float: right(右浮动)

[图片上传失败...(image-1bf1b-1526959831403)]

补充说明:

background-color 背景颜色

background-image 背景图片

background-repeat 背景重复

我们可以对上面的代码进行合并书写:

background: url(bgimg.gif) no-repeat 5px 5px;

[图片上传失败...(image-f63dc1-1526959831403)]

补充:

浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。

由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。

css 浮动:

请看下图,当把框 1 向右浮动时,它脱离文档流并且向右移动,直到它的右边缘碰到包含框的右边缘:

[图片上传失败...(image-f4e23e-1526959831403)]

再请看下图,当框 1 向左浮动时,它脱离文档流并且向左移动,直到它的左边缘碰到包含框的左边缘。因为它不再处于文档流中,所以它不占据空间,实际上覆盖住了框 2,使框 2 从视图中消失。

如果把所有三个框都向左移动,那么框 1 向左浮动直到碰到包含框,另外两个框向左浮动直到碰到前一个浮动框。

[图片上传失败...(image-1756ab-1526959831403)]

如下图所示,如果包含框太窄,无法容纳水平排列的三个浮动元素,那么其它浮动块向下移动,直到有足够的空间。如果浮动元素的高度不同,那么当它们向下移动时可能被其它浮动元素“卡住”:

[图片上传失败...(image-38b688-1526959831403)]

文本常用样式属性:

color 设置文字的颜色 color: red;
font-size 设置文字的大小 font-size: 12px;
font-family 设置文字的字体 font-family: 'Microsoft Yahei'; (微软雅黑)
font-weight 设置文字是否加粗 font-weight: bold; (bold:加粗 normal: 正常)
line-height 设置文字的行高 line-height: 24px; (文字高度加上文字上下间距共计24px)
text-decoration 设置文字的下划线 text-decoration:none; (取消下划线)

提示:样式中的注释

/* 设置头部的样式 */
.header{
    width:960px;
    height:80px;
    background:gold;
}

[图片上传失败...(image-b16834-1526959831403)]

5. CSS布局演示

通过样式,并且参照下图, 可以把之前写的布局作进一步的调整, 完成最终的布局效果:

[图片上传失败...(image-a03f25-1526959831403)]

参考文字:

人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .box {
            width:285px;
            height: 310px;
            border-bottom: 1px solid #c8dcf2;
            border-top: 1px solid #c8dcf2;
        }
        .header {
            width:285px;
            height: 40px;
        }
        .header h3 {
            margin:0px;
            font-family: 'Microsoft Yahei';
            font-size: 16px;
            color: #172c45;
            line-height: 40px;
            float: left;
        }
        .header a {
            font-size: 12px;
            font-family: 'Microsoft Yahei';
            color: #172c45;
            text-decoration: none;
            float: right;
            line-height: 40px;
        }
        p {
            font-size: 12px;
            font-family: 'Microsoft Yahei';
            color: #737373;
            line-height: 20px;
            height:190px;
            width: 100%;
        }
        img {
            height:80px;
            width:100%;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="header">
            <h3>今日头条</h3>
            <a href="#">更多&gt;&gt;</a>
        </div>
        <img src="./images/banner.jpg" alt="banner">
        <p>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。
        </p>
    </div>
</body>
</html>
上一篇下一篇

猜你喜欢

热点阅读