Java-web前端总结

目录

一、HTML

文本相关标签

列表标签

图片标签img

超链接

表格table

表单form

分区标签

二、CSS

如何在html 页面中添加CSS样式代码

选择器

选择器练习题:

颜色赋值

背景图片

文本和字体相关样式

元素的显示方式display

盒子模型

CSS三大特性

居中相关内容

定位方式

溢出设置overflow

行内元素垂直对齐方式vertical-align

三、JavaScript

如何在html页面中添加JavaScript代码

三种引入方式:

变量

数据类型

运算符

各种语句

方法

JavaScript对象分类

BOM浏览器对象模型

window对象中常用的属性

DOM文档对象模型

前端MVC设计模式

前端MVVM设计模式

四、VUE

VUE相关指令


一、HTML

  • HyperTextMarkupLanguage超文本标记语言

标记语言特点:

        <开始标签 属性名="值">标签体</结束标签>

        <单标签>

  • 作用: 负责搭建页面结构和准备页面内容 ,相当于是盖房子(毛坯房)
  • 学习HTML主要学习的就是有哪些标签,以及标签的使用方式

文本相关标签

内容标题h1-h6

特点: 独占一行, 字体加粗, 自带上下间距

水平分割线 hr

段落标签p

特点: 独占一行, 自带上下间距

加粗b

斜体i

下划线u

删除线s

换行br

示例代码参考:

列表标签

无序列表: ul 和 li

有序列表: ol 和 li

列表嵌套: 有序列表和无序列表可以任意无限嵌套

图片标签img

src: 资源路径

相对路径: 访问站内资源时使用

页面和图片在同级目录: 直接写图片名

图片在页面的上级目录: ../图片名

图片在页面的下级目录: 文件夹名/图片名

绝对路径: 访问站外资源路径时使用,又称为图片盗链, 存在找不到图片的风险

alt: 图片不能正常显示时显示的文本

title: 鼠标在图片上停止移动时显示的文本

width/height: 设置图片的宽高, 两种赋值方式:1. 像素 2.上级元素百分比 , 如果只设置宽度 高度会自动等比例缩放.

超链接

href属性, 作用和图片标签的src属性类似,用于配置资源路径

a标签包裹文本为文本超链接 包裹图片为图片超链接

表格table

相关标签: table表格, tr行, td列, th表头,caption表格标题

相关属性: border边框, colspan 跨列, rowspan 跨行

表单form

作用: 用于获取用户输入的各种信息,并且把信息提交给服务器

学习form表单就是学习有哪些控件

相关代码:


<!--action设置提交地址-->

<form action="http://www.baidu.com">

<!--maxlength最大字符长度 placeholder占位文本 value设置默认值 readonly只读-->

用户名:<input type="text" name="username" placeholder="请输入用户名"

maxlength="5" value="abc" readonly><br>

密码:<input type="password" name="password" placeholder="请输入密码"><br>

<!--单选框必须添加value 设置提交的值 否则提交on

checked 设置默认选中 -->

性别:<input type="radio" name="gender" value="m" id="r1">

<label for="r1">男</label>

<input type="radio" name="gender" checked value="w" id="r2">

<label for="r2">女</label><br>

兴趣爱好:<input type="checkbox" name="hobby" value="cy">抽烟

<input type="checkbox" name="hobby" checked value="hj">喝酒

<input type="checkbox" name="hobby" value="tt">烫头<br>

生日:<input type="date" name="birthday"><br>

靓照:<input type="file" name="pic"><br>

所在地:

<select name="city">

<!--value用来设置提交的内容, 如果不写value则提交标签体内的内容-->

<option value="bj">北京</option>

<option value="sh" selected>上海</option>

<option>广州</option>

</select><br>

<input type="reset" value="重置按钮">

<input type="submit" value="注册">

<input type="button" value="自定义按钮">

</form>

分区标签

  • 作用: 将多个有相关性的标签进行统一管理, 可以理解为一个容器.
  • 常见的分区标签

                div: 块级分区标签,特点: 独占一行

                span: 行内分区标签, 特点: 共占一行

  • 如何对页面进行分区: 一般一个页面至少分为3大区(头,体,脚),每个大区里面划分n个小的区域
  • HTML5标准中新增的分区标签: 作用和div一样, 但是提高了代码的可读性

                header 头

                main 主要/主体

                footer 脚

                nav 导航

                section 区域

二、CSS

  • Cascading Style Sheet:层叠样式表, 作用: 负责美化页面, 如果html是盖房子,CSS相当于是装修

如何在html 页面中添加CSS样式代码

        三种引入方式:

内联样式: 在标签的style属性中添加样式代码,弊端:不能复用

内部样式: 在head标签里面添加style标签,标签体内写样式代码, 可以复用但是只能当前页面复用.

外部样式: 在单独的css样式文件中写样式代码, 在html页面中通过link标签引入, 可以多页面复用.

工作中外部样式使用的更多 因为可以实现多页面复用,而且可以将html代码和css样式代码分离开便于维护和管理, 但是学习过程中为了便于演示效果内部样式用的更多

选择器

标签名选择器: 匹配到页面中所有同名标签

        格式: 标签名{样式代码}

id选择器: 当需要选择页面中某一个元素时,给元素添加id,然后通过id选择器选择到元素

        格式: #id{样式代码}

类选择器: 如果需要选择多个不相关的元素时, 给多个元素添加相同的class属性, 然后通过类选择器进行选择

        格式: .class{样式代码}

分组选择器: 可以将多个选择器合并成一个选择器

        格式: 标签名,#id,.class{样式代码}

属性选择器: 通过元素的属性选择元素

        格式: 标签名[属性名='值']{样式代码}

任意元素选择器: 匹配页面中所有的元素

        格式: *{样式代码}

子孙后代选择器: 通过元素和元素之间的关系选择元素, 选择范围更广包含了后代元素

        格式: body div p{样式代码} 匹配body里面的div里面的所有p(包含后代)

子元素选择器: 通过元素和元素之间的关系选择元素,选择范围更精准

        格式: body>div>p{样式代码} 匹配body里面的div里面的p子元素

伪类选择器:匹配元素的状态, 超链接包括(link未访问状态,visited访问过状态,hover悬停状态,active点击/激活状态), p包括(悬停状态,点击状态)

        格式: a:link/visited/hover/active{样式代码}

选择器练习题:

通过内部样式实现以下效果

  1. 把张学友改成绿色
  1. 把刘德华和悟空改成蓝色
  1. 修改取经2人和刘备的背景为黄色
  1. 修改密码框的背景为红色
  1. 给所有元素添加红色的边框

练习代码1:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #p1{color: green}
        .c1{color: blue}
        h1,h2{background-color: yellow}
        input[type='password']{background-color: red}
        *{border: 1px solid red}
    </style>
</head>
<body>
<p id="p1">张学友</p><p class="c1">刘德华</p><p>郭富城</p>
<h1 class="c1">悟空</h1>
<h1>八戒</h1>
<h2>刘备</h2>
<input type="text">
<input type="password">
</body>
</html>

   选择器练习2: 通过内部样式实现以下效果

  • 关羽绿色
  • 张飞和苹果黄色
  • 文本框和所有水果背景红色
  • p2字体粉色
  • p2和p3背景黄色
  • 百度官网未访问绿色,访问过红色悬停黄色,点击粉色
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
    #l-1{color: green}
    .c1{color: yellow}
    input[type='text'],body>p{background-color: red}
    body>div>div>p{color: pink}
    body div div p{background-color: yellow}
    a:link{color: green}
    a:visited{color: red}
    a:hover{color: yellow}
    a:active{color: pink}
  </style>
</head>
<body>
<ul>
  <li>刘备</li><li id="l-1">关羽</li><li class="c1">张飞</li>
</ul>
<p>香蕉</p><p class="c1">苹果</p>
<input type="text">
<input type="password">
<div>
  <p>p1</p>
  <div><p>p2</p></div>
  <div><div><p>p3</p></div></div>
</div>
<a href="http://www.baidu.com">百度官网</a>
</body>
</html>

颜色赋值

三原色:红绿蓝 , Red Green Blue RGB ,每个颜色的取值范围0-255

颜色赋值方式:

颜色单词赋值: red/blue/yellow/pink......

6位16进制赋值: #ff0000

3位16进制赋值: #f00 #000黑色 #fff白色

3位10进制赋值: rgb(255,0,0)

4位10进制赋值: rgba(255,0,0,0-1) a=alpha透明度 值越小越透明

背景图片

background-image:url("路径"); 设置背景图片

background-size:100px 200px; 设置背景图片的尺寸 宽度和高度

background-repeat:no-repeat; 禁止重复

background-position: 横向 纵向; 设置背景图片的位置 , 两种赋值方式:1. 偏移值 2. 百分比

文本和字体相关样式

text-align:left/right/center; 文本水平对齐方式

text-decoration:overline上划线/underline下划线/line-through删除线/none去掉自带的线;

line-height:20px; 设置行高, 多行文本可以控制行间距, 单行文本可以控制垂直居中

text-shadow: 颜色 x偏移值 y偏移值 浓度; 设置阴影

font-size:20px; 设置字体大小

font-weight: bold加粗/normal去掉加粗

font-style:italic; 斜体

font-family:xxx,xxx,xxx; 设置字体

font: 20px xxx,xxx,xxx; 设置字体 和字体大小


练习3

1. 刘德华 宽度100 高度30 绿色背景 红色字体 横向和纵向居中

2. 苹果和香蕉 字体大小25px 斜体

3. 冰箱去掉加粗 蓝色阴影 方向是左下 浓度3

4. 洗衣机添加下划线

5. 百度去掉下划线 字体加粗 字体大小20px


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
    #d1{
      width: 100px;
      height: 30px;
      background-color: green;
      color: red;
      text-align: center;
      line-height: 30px;
    }
    span{
      font-size: 25px;
      font-style: italic;
    }
    #bx{
      font-weight: normal;
      text-shadow: blue -10px 10px 3px;
    }
    #xyj{
      text-decoration: underline;
    }
    a{
      text-decoration: none;
      font-weight: bold;
      font-size: 20px;
    }
  </style>
</head>
<body>
<div id="d1">刘德华</div>
<div>张学友</div>
<span>香蕉</span>
<span>苹果</span>
<h1 id="bx">冰箱</h1>
<h1 id="xyj">洗衣机</h1>
<a href="http://www.baidu.com">百度</a>

</body>
</html>

元素的显示方式display

block: 块级元素, 特点: 独占一行可以修改元素的宽高, 包含:h1-h6,p,div

inline: 行内元素,特点: 共占一行不可以修改元素的宽高,包含:span,b,i,s,u,a

inline-block:行内块元素, 特点: 共占一行并且可以修改元素的宽高,包含:img图片,input

none: 隐藏元素

盒子模型

        盒子模型由四部分样式组成,包括:content内容,margin外边距,border边框,padding内边距

        通过盒子模型的相关样式控制元素的显示效果

  content内容: 控制元素的显示尺寸

  • 相关样式: width和height
  • 赋值方式:
  • 像素
  • 上级元素百分比
  • 行内元素不能修改元素的宽高

 margin外边距: 控制元素的显示位置

  • 外边距: 元素距上级元素或相邻兄弟元素的距离称为外边距
  • 赋值方式:
  • margin-left/right/top/bottom:10px; 单独某一个方向赋值
  • margin:50px; 四个方向赋值
  • margin:10px 20px; 上下10 左右20
  • margin:10px 20px 30px 40px; 上右下左顺时针赋值
  • 上下相邻彼此添加外边距取最大值
  • 左右相邻彼此添加外边距两者相加
  • 行内元素上下外边距无效
  • 粘连问题: 当元素的上边缘和上级元素的上边缘重叠时, 给元素添加上外边距会出现粘连问题, 给上级元素添加overflow:hidden解决

 border边框: 控制元素的边框效果

  • 赋值方式:
  • 单独某一个方向添加边框: border-left/right/top/bottom:粗细 样式 颜色;
  • 四个方向添加边框: border:粗细 样式 颜色
  • 圆角: border-radius 值越大越圆 ,超过宽高一半时为正圆

 padding内边距: 控制元素内容的位置

  • 内边距: 元素内容距元素边缘的距离称为内边距
  • 给元素添加内边距会影响元素的宽高
  • 赋值方式: (类似外边距)
  • padding-left/right/top/bottom:10px; 单独某一个方向赋值
  • padding:50px; 四个方向赋值
  • padding:10px 20px; 上下10 左右20
  • padding:10px 20px 30px 40px; 上右下左顺时针赋值

CSS三大特性

  • 继承: 指元素可以继承上级元素文本和字体相关的样式,部分标签自带效果不受继承影响,比如超链接的字体颜色
  • 层叠: 多个选择器可以选择到同一个元素, 如果作用的样式不同,层叠性指的是可以将多个不同的样式层叠到一起显示, 如果作用的样式相同则由优先级决定哪个生效.
  • 优先级: 指选择器的优先级, 作用范围越小 优先级会越高,
  • !important>id选择器>class选择器>标签名选择器>继承(间接选中)

居中相关内容

如果元素是块级元素,让元素自身居中使用margin:0 auto,如果让元素内容居中则使用text-align:center

如果元素是行内块元素, 让元素自身居中 需要给上级添加text-align:center , 内容居中也是text-align:center;

如果元素是行内元素,让元素自身居中 需要给上级添加text-align:center ,内容居中(不存在)

定位方式

  • 共五种定位方式:
  • 静态定位
  • 默认的定位方式,也叫作文档流定位
  • 格式: position:static
  • 特点: 元素以左上为基准 , 块级元素从上往下依次排列, 行内元素从左向右依次排列
  • 通过外边距控制元素的位置
  • 无法实现元素层叠显示
  • 相对定位
  • 格式: position: relative;
  • 特点: 元素不脱离文档流(不管元素显示到什么位置都占着原来的位置)
  • 通过left/right/top/bottom相对于元素的初始位置做偏移
  • 相对定位可以实现元素层叠效果
  • 应用场景: 当需要移动某一个元素,而且其它元素不受影响时
  • 绝对定位
  • 格式: position:absolute;
  • 特点: 元素脱离文档流(不占原来的位置,后面的元素会顶上来)
  • 通过left/right/top/bttom相对于窗口或某一个上级元素做位置偏移
  • 应用场景:需要层叠显示并且元素不需要占原来的位置
  • 固定定位
  • 格式: position:fixed;
  • 特点: 元素脱离文档流, 元素固定在窗口的某个位置 不随内容位置的移动而移动.
  • 通过left/right/top/bottom相对于窗口做位置偏移

  • 浮动定位
  • 格式: float:left/right;
  • 特点: 元素脱离文档流,从当前所在行向左或向右浮动,当撞到上级元素边缘或其它浮动元素时停止
  • 一行装不下时会自动折行,折行时有可能被卡主
  • 如果某个元素的所有子元素全部浮动,则自动识别的高度为0, 后面的元素会顶上来(如果被盖的内容有文字,文字会被挤出来) 最终可能导致显示异常, 给元素添加overflow:hidden可以解决此问题
  • 相对定位和绝对定位区别:
  1. 相对定位不脱离文档流(占位置) 绝对定位脱离文档流不占位置
  2. 相对定位参照物是原来位置, 绝对定位参照物是窗口(默认)或某一个上级元素

position定位回顾:

静态定位: static(默认) 无法层叠显示, 元素以左上为基准, 通过外边距

相对定位: relative 不脱离文档流, 通过left/right/top/bottom相对于初始位置做偏移

绝对定位: absolute 脱离文档流,通过left/right/top/bottom相对窗口或某一个上级元素

固定定位: fixed 脱离文档流, 通过left/right/top/bottom相对窗口做位置偏移

溢出设置overflow

  • visible超出部分显示(默认值)
  • hidden超出部分隐藏
  • scroll超出部分滚动显示

行内元素垂直对齐方式vertical-align

  • top上对齐
  • middel中间对齐
  • bottom下对齐
  • baseline基线对齐

显示层级 z-index

  • 当元素层叠显示时,需要控制元素的显示层级
  • z-index的值越大显示越靠前.

三、JavaScript

  • 作用: 负责给页面添加动态效果.
  • 语言特点:

属于脚本语言, 不需要编译直接由浏览器解析执行

基于面向对象

属于弱类型语言

安全性强: JavaScript语言只能访问浏览器内部的数据,浏览器以外的数据禁止访问

交互性强: 因为JS语言是嵌入到html页面中 最终执行在客户端电脑上的语言和用户近距离接触, Java语言每次交互都需要通过网络请求到服务器后再执行.

变量,数据类型,运算符,各种语句,方法,面向对象

如何在html页面中添加JavaScript代码

  • 三种引入方式:

  • 内联: 在标签的事件属性中添加JS代码,当事件触发时执行.

                事件: 系统给提供的一些特定的时间点

                点击事件: 当点击元素时触发的时间点称为点击事件.

  • 内部: 在html页面中的任意位置添加script标签,在标签体内写JS代码
  • 外部: 在单独的js文件中写js代码, 然后在html页面中 通过script标签的src属性引入到页面中

变量

  • JS属于弱类型语言
  • java强类型: int age = 18; String name="张三"; name=20;报错
  • JS弱类型: let age=18; let name="张三"; name=20; 不报错
  • JS中通过let或var关键字声明变量
  • let声明的变量作用域类似Java语言中的作用域

案列:

for(let i=0;i<10;i++){

let j=i+1;

}

let x = j+i; //不报错 但是访问不到j和i两个变量

var声明的变量作用域相当于是全局变量
for(var i=0;i<10;i++){

var j=i+1;

}

var x = j+i; //不报错,而且可以访问到j和i的值

数据类型

  • JavaScript语言只有对象类型.
  • 常见的对象类型:

string: 表示字符串, 可以通过单引号或双引号修饰 'abc' "abc"

number:相当于Java中所有数值类型的总和

boolean: 布尔值 true/false

undefined: 未定义 , 当变量只声明不赋值时,对象的类型为未定义类型

typeof 变量; 获取变量的类型

运算符

  • 算数运算符: + - * / %

除法运算会自动根据结果转换整数或小数

java: int x=5; int y=2; x/y = 2;

JS : let x=5; let y=2; x/y=2.5; x=6 x/y=3;

关系运算符: > < >= <= != ==和===

==和===区别: ==先统一两个变量的类型再比较值, ===先比较类型,如果类型相同之后再比较值       eg:"666"==666 true "666"===666 false

  • 逻辑运算符: && , ||, !
  • 赋值运算符: = += -= *= /= %=
  • 三目运算符: 条件?值1:值2

各种语句

if else

while / do while

for

switch case

方法

  • java: public 返回值类型 方法名(参数列表){方法体}
  • JS: function 方法名(参数列表){方法体}
  • 三种声明方法的方式:
  • function 方法名(参数列表){方法体}
  • let 方法名 = function(参数列表){方法体}
  • let 方法名 = new Function("参数1","参数2","方法体");

和页面相关的方法

  • 通过选择器选择页面中的元素对象     
    • let 元素对象 = document.querySelector("选择器");
  • 获取或修改元素的文本内容 <标签名>文本内容</标签名>
    • 元素对象.innerText; //获取
    • 元素对象.innerText = "xxxx"; //修改
  • 获取或修改控件的值
    • 元素对象.value; //获取
    • 元素对象.value = "xxxx"; //修改

NaN

  • Not a Number: 不是一个数字
  • isNaN(变量), 判断变量是否是NaN true代表是NaN false代表不是NaN

JavaScript代码排错思路

  • 如果页面没有运行出效果 第一时间F12查看控制台的报错, 根据控制台提示的信息找到错误的位置

JavaScript对象分类

  • 内置对象: 包括number,string,boolean等
  • BOM: Browser Object Model, 浏览器对象模型, 包含和浏览器相关的内容
  • DOM:Document Object Model ,文档对象模型, 包含和页面相关内容

BOM浏览器对象模型

  • window对象, 该对象中的属性和方法称为全局属性和全局方法, 访问时可以省略掉window.
  • window中的常用方法:
  • isNaN() 判断变量是否是NaN
  • alert("xxxx") 弹出提示框
  • confirm("xxx") 弹出确认框
  • prompt("xxx") 弹出文本框
  • parseInt() 将字符串或小数转成整数
  • parseFloat() 将字符串转成整数或小数
  • let timer = setInterval(方法,时间间隔) 开启定时器
  • clearInterval(timer) 停止定时器
  • setTimeout(方法,时间间隔) 开启执行一次的定时器

window对象中常用的属性

  • location:位置
  • location.href; 获取或修改浏览器的请求地址
  • location.reload(); 刷新
  • history:历史
  • history.length; 得到历史页面数量
  • history.back() 返回上一页面
  • history.forward() 前往下一页面

DOM文档对象模型

  • 包含和页面相关内容
  • 通过选择器选择页面中的元素对象
    • let 元素对象 = document.querySelector("选择器");
  • 获取或修改元素的文本内容 <标签名>文本内容</标签名>
    • 元素对象.innerText; //获取
    • 元素对象.innerText = "xxxx"; //修改获取或修改控件的值
  • 元素对象.value; //获取
  • 元素对象.value = "xxxx"; //修改
  • 创建元素对象
    • let 变量 = document.createElement("标签名");
  • 把元素对象添加到某个元素里面
    • 父元素.append(新元素);
  • 获取body元素对象的方式
    • document.body

前端MVC设计模式

  • MVC设计模式就是将实现一个前端业务的代码划分了三部分.
  • M: Model 模型, 指数据模型 前端的数据一般都来自于服务器
  • V: View 视图, 指页面相关代码
  • C: Controller 控制器, 指将数据展示到页面中的过程代码
  • 前端MVC设计模式存在的弊端: 在Controller控制器部分的代码需要频繁的进行DOM操作(遍历查找页面元素的过程), 会导致执行效率降低, MVVM设计模式可以解决此问题.

前端MVVM设计模式

  • M: Model 模型, 指数据模型 前端的数据一般都来自于服务器
  • V: View 视图, 指页面相关代码
  • VM: ViewModel 视图模型, 负责将页面中可能发生改变的元素和数据进行绑定,并且会一直监听数据的改变,当数据发生改变时从内存中找到和数据对应的元素 然后再进行改动,避免了频繁DOM操作带来的资源浪费,从而提高了执行效率

四、VUE

  • 目前最流行的前端框架, 此框架基于MVVM设计模式.
  • 在第三阶段所涉及到的VUE是通过在html页面中引入vue.js的方式去使用此框架, 第四个阶段会接触脚手架方式

在html页面中引入vue.js文件, 此文件可以通过CDN服务器引入到自己的页面中, 也可以将CDN服务器的js文件下载到本地再引入

VUE对象的工作原理, VUE对象相当于是MVVM设计模式中的VM(视图模型), 负责将可能发生改变的页面元素和数据变量在内存中进行绑定, 并且不断监视这数据变量的改变,当值发生改变的时候会从内存中找到对应的页面元素,并将其改变.

VUE相关指令

  1. {{变量}}: 插值, 让此处的文本内容和变量进行绑定
  2. v-text: 让某个元素的文本内容和变量进行绑定
  3. v-html: 让某个元素的文本或标签内容和变量进行绑定
  4. v-bind:属性名=变量, 让元素的某个属性的值和变量进行绑定 , v-bind可以省略
  5. v-model=变量, 双向绑定: 变量会影响页面, 页面也会影响变量
  6. v-on:事件名="方法", 事件绑定, 事件触发的方法需要写在methods里面, 简写: @事件名="方法"
  7. v-for="变量 in 数组"; 循环遍历, 遍历的过程中会生成当前元素以及子元素.

以上内容参考代码:https://gitee.com/lsw0901_0/web-java.git

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值