1 Web概念概述

JavaWeb是使用Java语言开发基于互联网的项目

软件架构

  • cs架构:优点【资源加载快、用户体验好】、缺点【安装、部署、维护麻烦】
  • bs架构:优点【开发、安装、部署、维护简单】、缺点【应用过大,用户体验会受影响、对硬件有要求】

1.1 BS架构

资源分类

  • 静态资源:用静态网页开发技术发布的资源(HTML、CSS、JavaScript)。所有用户访问,得到的结果一样。如果用户请求静态资源,那么服务器会将静态资源发送给浏览器,浏览器内置的解析引擎可以展示静态资源。
  • 动态资源:使用动态网页即时发布的资源。不同用户在同一页面的显示结果可能不一样。如:JSP、Servlet、PHP、ASP。如果用户请求动态资源,服务器会执行动态资源,然后将动态资源转换为静态资源再发送给服务器。

2 HTML

2.1 基本介绍

概念:Hyper Text Markup Language:超文本标记语言,是最基础的网页开发语言。
超文本:用超链接的方式,将各种不同空间的文字信息组织在一起的网状文本。
标记语言:由标签构成的语言。<标签名称>如html、xml。标记语言不是编程语言。

html的实现

  • 标签分为围堵标签(有开始和结束)标签可以嵌套,不同标签的开始和结束之间不能交叉。
  • 自闭标签(开始和结束在一起,如:<br/>)
  • 开始标签中可以定义属性,属性由键值对构成,值要用引号引起来
  • 不区分大小写但建议用小写

2.2 HTML标签

文件标签

  • html:根标签
  • head:头标签,用于指定html文档的一些属性,引入外部的资源
  • title:标题标签
  • body:体标签
  • <!DOCTYPE html>:HTML5中定义该文档是html文档

文本标签

  • <br>换行
  • <hr>水平线
  • <p>段落
  • <h1>~<h6>标题
  • < ! - - 注释 - - >
  • font:已经废弃,具有属性color=" "、width单位是像素px(取值是数值或相对于父元素的百分比)、size、face字体
  • center:居中 已废弃

图片标签
-<img src='xxx.jpg'/ align='right' alt='XXX' width='500' height='500'>

列表标签
有序列表的属性 type展示不同的样式:罗马Ⅰ字母A start属性指定从几开始排序
无序列表的属性 type可以为disc、square、circle

    <ol type="A" start="3"><li>第一个</li><li>第二个</li><li>第三个</li></ol><ul type="square"><li>无序</li><li>无序</li><li>无序</li></ul>

链接标签

  • 默认在本页打开链接【可以是网页资源也可以是本地资源】
    -<a href="http://www.baidu.com">click me</a>
  • 新建页面打开链接
  • <a href="http://www.baidu.com" target="_blank" >click me</a>
    target【默认是_self】
  • 启动邮件客户端发邮箱
  • <a href="maito:xxxxxx@xxxx.com">contact me</a>

  • div:每个div占满一整行 块级标签
  • span:文本信息在一行展示 行内标签 内联标签
    语义化标签:没有样式 提高程序可读性 可以和css一起定义样式
  • header
  • footer
    表格标签
    <table border="1" width="50%" cellpadding="0" cellspacing="0" bgcolor="#5f9ea0" align="center"><caption>学生信息表</caption><tr bgcolor="red" align="center"><th>编号</th><th>姓名</th><th>成绩</th></tr><tr><td>1</td><td>张三</td><td>100</td></tr><tr><td>2</td><td>李四</td><td>100</td></tr></table>

合并行 合并列

    <table border="1" width="50%" cellpadding="0" cellspacing="0" bgcolor="#ffdab9" align="center"><tr><th rowspan="2">编号</th><th>姓名</th><th>成绩</th></tr><tr><td>张三</td><td>100</td></tr><tr><td>2</td><td colspan="2">李四</td></tr></table>

表单标签
概念:用于采集用户输入的数据

<form>:定义表单的采集范围

  • 属性:action="xxx"表单提交地址 method="get/post"提交方式
    表单中的数据想要被提交,必须指定name属性
    get请求参数会在地址栏显示 封装在协议行中 请求参数的长度有限制 不安全
    post请求参数不会在地址栏显示 会封装在协议体中 请求参数的长度无限制 安全

表单项标签

  • input:可以通过type属性值 改变元素展示的样式。value显示默认值 placeholder显示提示信息
  • select:下拉列表
  • textarea:文本域
  • radio:单选框name要一致 否则是定义了多个单选框。要给单选框指定返回值value。checked指定默认值
  • checkbox:复选框 checked指定默认值
  • label:执行输入项的文字描述信息,加for属性可以和input的id对应 点击label会让input获取焦点
  • file:文件选择框
  • select:下拉列表

注册页面案例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>注册页面</title>
</head>
<body><form action="#" method="post"><table border="1" align="center" width="500"><tr><td><label for="username">用户名</label></td><td><input type="text" name="username" id="username"></td></tr><tr><td><label for="password">密码</label></td><td><input type="password" name="password" id="password"></td></tr><tr><td><label for="email">邮箱</label></td><td><input type="email" name="email" id="email"></td></tr><tr><td><label for="name">姓名</label></td><td><input type="name" name="name" id="name"></td></tr><tr><td><label for="phone">手机号</label></td><td><input type="text" name="phone" id="phone"></td></tr><tr><td><label>性别</label></td><td><input type="radio" name="gender" value="male">男<input type="radio" name="gender" value="female">女</td></tr><tr><td><label for="birthday">出生日期</label></td><td><input type="date" name="birthday" id="birthday"></td></tr><tr><td><label for="checkcode">验证码</label></td><td><input type="text" name="chekcode" id="checkcode"><img src="verify_code.jpg"></td></tr><tr><td colspan="2" align="center"><input type="submit" value="注册"></td></tr></table></form>
</body>
</html>

3 CSS

cascading style sheet 层叠样式表,用于页面美化和布局控制
优势:

  • 功能强大
  • 将内容展示和样式控制分离
  • 【降低耦合度,分工协作更容易,提高开发效率】

3.1 CSS的使用

css和html的结合方式

  • 内联样式:在标签内使用style属性指定css代码,不推荐使用。作用域是当前标签。
  • <div style="color:red;">hello</div>
  • 内部样式:在head标签内定义style标签,标签体内容就是css代码。作用域只能是当前页面。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>div{color: peachpuff;}</style>
</head>
<body>
<div>哈哈哈哈哈</div>
</body>
</html>
  • 外部样式:将CSS抽取到外部文件,在head标签内定义link标签引入外部资源文件
div{color: aqua;
}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="../css/a.css">
</head>
<body>
<div>哈哈哈哈哈</div>
</body>
</html>

css语法

选择器{属性名1:属性值;属性名2:属性值;
}

选择器:用来筛选具有相似特征的元素

注意:

  • 每一对属性需要使用分号隔开,最后一堆可以不加

3.2 基本选择器

  • id选择器:选择器具体的id属性值的元素,建议在一个html页面中使用
    -#id属性值{ }
  • 元素选择器:选择具有相同标签名称的元素
    -标签名称{ }
  • 类选择器:选择具有相同class属性值的元素
  • .class属性值{ }

优先级 id > 元素 > 类

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.cls1{color: gray;}#div1{color: red;}div{color: gold;}</style>
</head>
<body>
<div id="div1">哈哈哈哈哈</div>
<div>呵呵呵呵呵呵</div>
<p class="cls1">嘻嘻嘻嘻嘻嘻嘻嘻</p>
</body>
</html>

3.3 扩展选择器

  • 选择所有元素
  • *{ }
  • 并集选择器
  • 选择器1,选择器2{ }
  • 子选择器:筛选选择器1元素下的选择器2元素
  • 选择器1 选择器2{ }
  • 父选择器:筛选选择器2的父元素选择器1
  • 选择器1 > 选择器2{ }
  • 属性选择器:选择元素名称,属性名=属性值的元素
  • 元素名称[属性名="属性值"]{ }
  • 伪类选择器:选择一些元素具有的状态
  • 元素: 状态{ }

3.4 属性

  • 字体、文本:【color】【font-size】【line-height】【text-align】

  • 背景:【background】

  • 边框:【border】

  • 尺寸:【width】【height】

  • 盒子:控制布局【margin外边距】【padding内边距 默认情况下内边距会影响整个盒子的大小 设置盒子的属性 让width height不变box-sizing: border-box】【float浮动】

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>div{border: 1px solid red;}.div1{width: 100px;height: 100px;/*外边距*//*margin: 50px;*/}.div2{width: 200px;height: 200px;/*内边距*/padding: 50px;box-sizing: border-box;}.div3{/*浮动*/float: left;}.div4{float: left;}.div5{float: right;}</style>
</head>
<body>
<div class="div2"><div class="div1"></div>
</div>
<div class="div3">aaa</div>
<div class="div4">bbb</div>
<div class="div5">ccc</div>
</body>
</html>

美化版的注册页面

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>用户注册</title><style>*{margin: 0;padding: 0;box-sizing: border-box;}body{background: url("register_bg.png") no-repeat;}.layout{width: 900px;height: 500px;border: 8px solid #EEEEEE;background-color: white;margin: auto;margin-top: 80px;}.left{/*border:1px solid red;*/float: left;margin: 15px}.left > p:first-child{color: #FFD036;size: 100px;}.left > p:last-child{color: #A6A6A6;size: 100px;}.center{/*border: 1px solid red;*/float: left;}.right{/*border: 1px solid red;*/float: right;margin: 15px;}.right > p:first-child{color: #A6A6A6;font-size: 15px;}.right > p > a{color: pink;font-size: 15px;}.td_left{width: 100px;text-align: right;height: 45px;}.td_right{padding-left: 50px;}#username,#password,#name,#email,#birthday,#phone,#checkcode{width: 251px;height: 32px;border: 1px solid #A6A6A6;border-radius: 5px;padding-left: 10px;}#checkcode{width: 110px;}#img_check{height: 32px;vertical-align:middle;}#sub{width: 150px;height: 40px;background-color: #FFD036;border: 1px;}</style>
</head>
<body>
<div class="layout"><div class="left"><p>用户注册</p><p>user register</p></div><div class="center"><div class="form"><form action="#" method="post"><table border="0" align="center" width="500"><tr><td class="td_left"><label for="username">用户名</label></td><td class="td_right"><input type="text" name="username" id="username" placeholder="请输入用户名"></td></tr><tr><td class="td_left"><label for="password">密码</label></td><td class="td_right"><input type="password" name="password" id="password" placeholder="请输入密码"></td></tr><tr><td class="td_left"><label for="email">邮箱</label></td><td class="td_right"><input type="email" name="email" id="email" placeholder="请输入邮箱"></td></tr><tr><td class="td_left"><label for="name">姓名</label></td><td class="td_right"><input type="name" name="name" id="name" placeholder="请输入姓名"></td></tr><tr><td class="td_left"><label for="phone">手机号</label></td><td class="td_right"><input type="text" name="phone" id="phone" placeholder="请输入手机号"></td></tr><tr><td class="td_left"><label>性别</label></td><td class="td_right"><input type="radio" name="gender" value="male">男<input type="radio" name="gender" value="female">女</td></tr><tr><td class="td_left"><label for="birthday">出生日期</label></td><td class="td_right"><input type="date" name="birthday" id="birthday"></td></tr><tr><td class="td_left"><label for="checkcode">验证码</label></td><td class="td_right"><input type="text" name="chekcode" id="checkcode"><img src="verify_code.jpg" id="img_check"></td></tr><tr><td colspan="2" align="center"><input type="submit" value="注册" id="sub"></td></tr></table></form></div></div><div class="right"><p>已有账号?<a href="#">立即登录</a></p></div>
</div></body>
</html>

【JavaWeb】HTML+CSS相关推荐

  1. 【JavaWeb】之Tomcat介绍、安装与使用

    [JavaWeb]Tomcat 前言 一.Tomcat简介 1.什么是Tomcat 2.其他常用Web服务器 二.Tomcat安装 1.下载Tomcat 2.配置环境变量 三.Tomcat使用 1.启 ...

  2. [转]Webkit内核探究【2】——Webkit CSS实现

    2019独角兽企业重金招聘Python工程师标准>>> Webkit内核探究[2]--Webkit CSS实现 注:[转载请注明文章来源.保持原样] 出处:http://www.cn ...

  3. 转:【总结】浏览器CSS Hacks汇总,浏览器兼容方式CSS Hacks

    [总结]浏览器CSS Hacks汇总 浏览器兼容可以说是前端开发所要面对的第一个挑战,目前我的电脑上已经安装了6种浏览器(基于IE内核的不算,如Maxthon等). CSS hacks利用浏览器的漏洞 ...

  4. html div三角形,【div】纯CSS绘制三角形

    原标题:[div]纯CSS绘制三角形 我们的网页因为 CSS 而呈现千变万化的风格.这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多比人想象不到的效果.特别是随着 CSS3 的广泛使 ...

  5. 【荐】纯CSS实现苹果MAC官方网站的菜单导航

    代码简介: 苹果官方网站的菜单,实际上是看着好看,但看了代码感觉不太实用,因为为了实现这么一个效果代码太繁琐,而且菜单修改起来也极不方便,建议大家以学习的态度阅读源码. 代码内容: <!DOCT ...

  6. 菜鸟教程css事件,【推荐】DIV+CSS入门菜鸟教程

    这篇文章主要为大家详细介绍了[推荐]DIV+CSS入门菜鸟教程,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编罗X来看看吧. CSS功能复杂多变,大多数新手莫不着 ...

  7. 【JavaWeb】之富文本编辑器

    [JavaWeb]富文本编辑器 前言 一.富文本编辑器介绍 二.富文本编辑器使用 1.引入编辑器(多种引入方式) 2.使用编辑器 三.主流富文本编辑器推荐 1.TinyMCE 2.CKEditor 3 ...

  8. 【JavaWeb】之MVC三层架构

    [JavaWeb]MVC三层架构 前言 一.JavaBean 1.JavaBean的概念 2.JavaBean的特征 3.JSP访问JavaBean的语法 二.MVC三层架构 1.MVC简介 2.Mo ...

  9. 【荐】DIV+CSS仿360buy京东商城导航条

    代码简介: [荐]DIV+CSS仿360buy京东商城导航条 ,很棒的,赶快来试试. 代码内容: <html xmlns="http://www.w3.org/1999/xhtml&q ...

最新文章

  1. Win7与其它Windows的双系统问题
  2. 一个好用的 SAP UI5 本地打包(build)工具,自动生成Component-preload.js
  3. vim捐赠_#PayItBackwards-一位freeCodeCamp毕业生如何向事业捐赠10,000美元
  4. js后退页面不重新加载_快应用:支持加载单独JS文件的规范思考
  5. linux远程登录 密钥,使用密钥认证机制远程登录Linux
  6. Redis (三)雪崩和穿透
  7. 计算机网络拓扑分层,计算机网络和工程实践教程讲座主讲内容网络拓扑和分层体系结构.ppt...
  8. MVC中页面的传值方式总结
  9. jQuery打印插件JQPRINT
  10. 【校招VIP】考研二战长时间没工作,面试被问为什么有职场空窗期?你应该这样回答
  11. 条件概率公式图解推导
  12. 使用html制作一个旅游网站
  13. Android Studio 4.22 解决com.android.tools.idea.run.ApkProvisionException
  14. 微信小程序页面上面的名字怎么改_微信小程序取名|如何修改名字|取名规则!...
  15. 如果编程语言也来玩权利的游戏,怎么安排角色?
  16. 认识机器学习 机器学习实战第一章
  17. 2012-07-31
  18. minicom指令_Linux下的命令行串口工具minicom安装和使用教程
  19. ceph15(Octopus)问题排查处理 - centos8
  20. 【Linux Note】centos 7 / 8 通过修改网络配置文件 ifcfg-ens33来设置静态IP

热门文章

  1. 看printk引发的一点思考
  2. C语言实现x的n次方
  3. Excel——多个Sheet页合并成一个
  4. php des加密 和java胡同_PHP版本DES加密解(对应.net版与JAVA版)
  5. hidl 原理分析_一个 health service 不生效问题引出的一点知识
  6. LeetCode 1624. 两个相同字符之间的最长子字符串
  7. 阿里云 超级码力在线编程大赛初赛 第3场 题目4. 完美字符串
  8. blue html中转换,BlueFox Free PDF to HTML Converter(PDF文件转换软件)
  9. oracle计算每月最小工作日,Oracle计算指定日期内的工作日(不包含周末)
  10. testflight怎么做版本更新_如何使用TestFlight进行App构建版本测试