JavaWeb--HTML和CSS

HTML和CSS

网页的组成部分

页面由三部分内容组成:内容(结构)、表现、行为

  • 内容:页面中可以看到的数据,一般使用HTML技术来展示
  • 表现:内容在页面上的展示形式,比如布局、颜色、大小等,一般使用CSS技术实现
  • 行为:页面中的元素与输入设备交互的响应,一般使用JavaScript技术实现

HTML

1. 概述

Hyper Text Markup Language(超文本标记语言)简写:HTML

HTML通过标签来标记要显示的网页的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容

注:Java文件需要先进行编译,再由Java虚拟机运行。而HTML文件无需编译,直接由浏览器解析运行

2. 书写规范

<!DOCTYPE html>				<!--表示整个html页面的开始-->
<html lang="en">			<!--头信息-->
<head>
    <meta charset="UTF-8">	<!--字符集-->
    <title>Title</title>	<!--标题-->
</head>
<body>						<!--页面的主题内容-->

</body>
</html>						<!--html页面的结束-->

3. 标签介绍

  1. 格式

    <标签名>数据</标签名>

  2. 标签名大小写不敏感

  3. 属性

    • 基本属性:bgcolor="red",可修改简单的样式效果
    • 时间属性:onclick="alert('Hello!')";,可以直接设置事件响应
  4. 单标签和双标签

    • 单标签格式:< 标签名 />
    • 双标签格式:<标签名>数据</标签名>
  5. 语法

    <!-- ①标签不能交叉嵌套 -->
    正确:<div><span>早安,尚硅谷</span></div>
    错误:<span><div>早安,尚硅谷</span></div>
    <hr />
    
    <!-- ②标签必须正确关闭 -->
    <!-- i.有文本内容的标签: -->
    正确:<div>早安,尚硅谷</div>
    错误:<div>早安,尚硅谷
    <hr />
    
    <!-- ii.没有文本内容的标签: -->
    正确:<br />1
    错误:<br >2
    <hr />
    
    <!-- ③属性必须有值,属性值必须加引号 -->
    正确:<font color="blue">早安,尚硅谷</font>
    错误:<font color=blue>早安,尚硅谷</font>
    错误:<font color>早安,尚硅谷</font>
    <hr />
       
    <!-- ④注释不能嵌套 -->
    正确:<!-- 注释内容 --> <br/>
    错误:<!--注释内容<!--注释内容-->-->
    <hr />
    

4. 常用标签

  1. font字体标签

    <body>
    	
    	<!-- 字体标签
    	需求1:在网页上显示 我是字体标签 ,并修改字体为 宋体,颜色为红色。
    
    	 font标签是字体标签,它可以用来修改文本的字体,颜色,大小(尺寸)
    	 	color属性修改颜色
    	 	face属性修改字体
    	 	size属性修改文本大小
    	 	-->
    	<font color="red" face="宋体" size="7">我是字体标签</font>
    	
    </body>
    
  2. 特殊字符

    <body>
       
       <!-- 特殊字符
       需求1:把 <br> 换行标签 变成文本 转换成字符显示在页面上
    
       常用的特殊字符:
          <  ===>>>>       &lt;
          >   ===>>>>       &gt;
         空格   ===>>>>       &nbsp;-->
       我是&lt;br&gt;标签<br/>
       一二三&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;四
    
       
    </body>
    
  3. 标题标签

    <body>
       
       <!-- 标题标签
       需求1:演示标题1到 标题6的
    
          h1 - h6 都是标题标签
          h1 最大
          h6 最小
             align 属性是对齐属性
                left      左对齐(默认)
                center    剧中
                right     右对齐
       -->
       <h1 align="left">标题一</h1>
       <h2 align="right">标题二</h2>
       <h3 align="center">标题三</h3>
       <h4>标题四</h4>
       <h5>标题五</h5>
       <h6>标题六</h6>
       <h7>标题七</h7>
    
       
    </body>
    
  4. 超链接(重点)

    <body>
    
       <!-- 超链接
       a标签是 超链接
             href属性设置连接的地址
             target属性设置哪个目标进行跳转
                _self     表示当前页面(默认值)
                _blank    表示打开新页面来进行跳转
       -->
       <a href="https://www.baidu.com/">百度</a><br>
       <a href="https://www.baidu.com/" target="_self">当前页面百度</a><br>
       <a href="https://www.baidu.com/" target="_blank">新页面百度</a>
    
    </body>
    
  5. 列表标签

    <body>
    <!--需求1:使用无序,列表方式,把东北F4,赵四,刘能,小沈阳,宋小宝,展示出来
            ul 是无序列表
                type属性可以修改列表项前面的符号
            li  是列表项-->
    <ul type="none">
        <li>赵四</li>
        <li>刘能</li>
        <li>小沈阳</li>
        <li>宋小宝</li>
    </ul>
    </body>
    
  6. img标签

    <body>
    <!--  需求1:使用img标签显示一张照片。并修改宽高,和边框属性
    
            img标签是图片标签,用来显示图片
                src属性可以设置图片的路径
                width属性设置图片的宽度
                height属性设置图片的高度
                border属性设置图片边框大小
                alt属性设置当指定路径找不到图片时,用来代替显示的文本内容
    
            在JavaSE中路径也分为相对路径和绝对路径.
                相对路径:从工程名开始算
    
                绝对路径:盘符:/目录/文件名
    
            在web中路径分为相对路径和绝对路径两种
                相对路径:
                    .           表示当前文件所在的目录
                    ..          表示当前文件所在的上一级目录
                    文件名      表示当前文件所在目录的文件,相当于 ./文件名            ./ 可以省略
    
                绝对路径:
                    正确格式是:  http://ip:port/工程名/资源路径
    
                    错误格式是:  盘符:/目录/文件名  -->
    <img src="../imgs/0.jpg" width="514" height="750" border="1" alt="找不到图片"/>
    
    </body>
    
  7. 表格标签

        <body>
    <!--需求1:做一个带表头的 ,三行,三列的表格,并显示边框
       需求2:修改表格的宽度,高度,表格的对齐方式,单元格间距。
    
          table 标签是表格标签
             border 设置表格边框
             width 设置表格宽度
             height 设置表格高度
             align 设置表格相对于页面的对齐方式
             cellspacing 设置单元格间距
    
          tr  是行标签
          th 是表头标签
          td  是单元格标签
             align 设置单元格文本对齐方式
    
          b 是加粗标签-->
    <table border="10" width="300" height="300" align="center" cellspacing="0">
       <tr>
          <th>1.1</th>
          <th>1.2</th>
          <th>1.3</th>
       </tr>
       <tr>
          <td>2.1</td>
          <td>2.2</td>
          <td>2.3</td>
       </tr>
       <tr>
          <td>3.1</td>
          <td>3.2</td>
          <td>3.3</td>
       </tr>
    </table>
          
       </body>
    
  8. 跨行跨列表格

    <body>
    <!--需求1:
          新建一个五行,五列的表格,
          第一行,第一列的单元格要跨两列,
          第二行第一列的单元格跨两行,
          第四行第四列的单元格跨两行两列。
    
          colspan 属性设置跨列
          rowspan 属性设置跨行-->
       <table width="500" height="500" cellspacing="0" border="1">
          <tr>
             <td colspan="2">1.1</td>
             <td>1.2</td>
             <td>1.3</td>
             <td>1.4</td>
          </tr>
          <tr>
             <td rowspan="2">2.1</td>
             <td>2.2</td>
             <td>2.3</td>
             <td>2.4</td>
             <td>2.5</td>
          </tr>
          <tr>
             <td>3.1</td>
             <td>3.2</td>
             <td>3.3</td>
             <td>3.4</td>
          </tr>
          <tr>
             <td>4.1</td>
             <td>4.2</td>
             <td>4.3</td>
             <td colspan="2" rowspan="2">4.4</td>
          </tr>
          <tr>
             <td>5.1</td>
             <td>5.2</td>
             <td>5.3</td>
          </tr>
       </table>
    
       
    </body>
    
  9. iframe框架标签(内嵌窗口)

    <body>
       我是一个单独的完整的页面<br/>
    <!--iframe标签可以在页面上开辟一个小区域显示一个单独的页面
                iframe和a标签组合使用的步骤:
                    1 在iframe标签中使用name属性定义一个名称
                    2 在a标签的target属性上设置iframe的name的属性值-->
    <iframe src="5.img标签.html" width="500" height="500" name="abc"></iframe>
    <br/>
    <ul>
        <li><a href="0-标签语法.html" target="abc">0-标签语法.html</a></li>
        <li><a href="1.font标签.html" target="abc">1.font标签.html</a></li>
        <li><a href="2.特殊字符.html" target="abc">2.特殊字符.html</a></li>
    </ul>
    </body>
    
  10. 表单标签(重点)

    表单是HTML页面中,用来收集用户信息的所有元素的集合,然后将这些信息发送给服务器

    <body>
    <!--需求1:创建一个个人信息注册的表单界面。包含用户名,密码,确认密码。性别(单选),兴趣爱好(多选),国籍(下拉列表)。
    隐藏域,自我评价(多行文本域)。重置,提交。-->
    
    <!--
    form标签就是表单
                input type=text     是文件输入框  value设置默认显示内容
                input type=password 是密码输入框  value设置默认显示内容
                input type=radio    是单选框    name属性可以对其进行分组   checked="checked"表示默认选中
                input type=checkbox 是复选框   checked="checked"表示默认选中
                input type=reset    是重置按钮      value属性修改按钮上的文本
                input type=submit   是提交按钮      value属性修改按钮上的文本
                input type=button   是按钮          value属性修改按钮上的文本
                input type=file     是文件上传域
                input type=hidden   是隐藏域    当我们要发送某些信息,而这些信息,不需要用户参与,就可以使用隐藏域(提交的时候同时发送给服务器)
    
                select 标签是下拉列表框
                option 标签是下拉列表框中的选项 selected="selected"设置默认选中
    
                textarea 表示多行文本输入框 (起始标签和结束标签中的内容是默认值)
                    rows 属性设置可以显示几行的高度
                    cols 属性设置每行可以显示几个字符宽度
                    -->
    <form>
        <h1 align="center">用户注册</h1>
        <!--利用table标签进行表单格式化-->
        <table align="center">
            <tr>
                <td>用户名称:</td>
                <td><input type="text" value="默认值"/></td>
            </tr>
            <tr>
                <td>用户密码:</td>
                <td><input type="password"/></td>
            </tr>
            <tr>
                <td>确认密码:</td>
                <td><input type="password"/></td>
            </tr>
            <tr>
                <td>性别:</td>
                <td><input type="radio" name="gender" checked="checked"/>男<input type="radio" name="gender"/>女</td>
            </tr>
            <tr>
                <td>兴趣爱好:</td>
                <td><input type="checkbox"/>Java<input type="checkbox"/>JavaScript<input type="checkbox"/>C++</td>
            </tr>
            <tr>
                <td>国籍:</td>
                <td><select>
                    <option>请选择国籍</option>
                    <option selected="selected">中国</option>
                    <option>美国</option>
                    <option>日本</option>
                </select></td>
            </tr>
            <tr>
                <td>自我评价:</td>
                <td><textarea rows="10" cols="20">默认值</textarea></td>
            </tr>
            <tr>
                <td><input type="reset"/></td>
                <td><input type="file"/></td>
                <td><input type="submit"/></td>
            </tr>
    
        </table>
    
          <!--<input type="button" value="abc"/><br/>-->
    
    
    </form>
    </body>
    

    表单提交的细节

    <body>
    
    
    <!--
    form标签是表单标签
                action属性设置提交的服务器地址
                method属性设置提交的方式GET(默认值)或POST
    
            表单提交的时候,数据没有发送给服务器的三种情况:
                1、表单项没有name属性值
                2、单选、复选(下拉列表中的option标签)没有添加value属性,服务器无法获取具体的值
                3、表单项不在提交的form标签中
    
            GET请求的特点是:
                1、浏览器地址栏中的地址是:action属性[+?+请求参数]
                    请求参数的格式是:name=value&name=value
                2、不安全
                3、它有数据长度的限制
    
            POST请求的特点是:
                1、浏览器地址栏中只有action属性值
                2、相对于GET请求要安全
                3、理论上没有数据长度的限制
                    -->
    <form action="https://www.baidu.com/" method="post">
        <input type="hidden" name="action" value="login"/>
        <h1 align="center">用户注册</h1>
        <table align="center">
            <tr>
                <td>用户名称:</td>
                <td><input type="text" name="username" value="默认值"/></td>
            </tr>
            <tr>
                <td>用户密码:</td>
                <td><input type="password" name="password" value="123"/></td>
            </tr>
            <tr>
                <td>性别:</td>
                <td><input type="radio" name="gender" checked="checked" value="boy"/>男
                    <input type="radio" name="gender" value="girl"/>女</td>
            </tr>
            <tr>
                <td>兴趣爱好:</td>
                <td><input name="hobby" type="checkbox" value="Java"/>Java
                    <input name="hobby" type="checkbox" value="JavaScript"/>JavaScript
                    <input name="hobby" type="checkbox" value="C++"/>C++</td>
            </tr>
            <tr>
                <td>国籍:</td>
                <td><select name="country">
                    <option value="none">请选择国籍</option>
                    <option selected="selected" value="CN">中国</option>
                    <option value="US">美国</option>
                    <option value="JP">日本</option>
                </select></td>
            </tr>
            <tr>
                <td>自我评价:</td>
                <td><textarea name="desc" rows="10" cols="20">默认值</textarea></td>
            </tr>
            <tr>
                <td><input type="reset"/></td>
                <td><input type="file"/></td>
                <td><input type="submit"/></td>
            </tr>
    
        </table>
    
          <!--<input type="button" value="abc"/><br/>-->
    
    
    </form>
    </body>
    
  11. 其他标签

    <body>
        <!--
        需求1:div、span、p标签的演示
                div标签       默认独占一行
                span标签      它的长度是封装数据的长度
                p段落标签     默认会在段落的上方或下方各空出一行来(如果已有就不再空)
        -->
        <div>div标签1</div>
        <div>div标签2</div>
        <span>span标签1</span>
        <span>span标签2</span>
        <p>p标签1</p>
        <p>p标签2</p>
    </body>
    

CSS

1. 概述

Cascading Style Sheets(层叠样式表)简写:CSS

CSS用于控制(增强)网页样式并允许将样式信息与网页内容分离的一种标记性语言

2. 语法规则

div{							/*div:选择器*/
    border: 1px solid blue;		/*border:属性;1px solid blue:值*/
}

选择器:浏览器根据”选择器“决定受CSS样式影响的HTML元素(标签)

属性(property):要改变的样式名,每个属性都有一个值;属性和值被冒号分开,由花括号包围,共同构成了一个完整的样式声明

多个声明:每个声明之间使用分号隔开

3. CSS和HTML的结合方式

  1. 在标签的style属性上设置”key:value;“,修改标签样式

    <body>
    <!--需求1:分别定义两个 div、span标签,分别修改每个 div 标签的样式为:边框1个像素,实线,红色。-->
    <div style="border: 1px solid red">div标签1</div>
    <div style="border: 1px solid red">div标签2</div>
    <span style="border: 1px solid red">span标签1</span>
    <span style="border: 1px solid red">span标签2</span>
    </body>
    

    问题:

    • 标签如果数量多,样式数量也多,整体代码量非常庞大
    • 可读性差
    • CSS代码没有复用性
  2. 在head标签中,使用style标签来定义需要的CSS样式

    <head>
        <meta charset="UTF-8">
        <title>2-CSS.html</title>
        <!--style标签专门用来定义css样式代码-->
        <style type="text/css">
            /* 需求1:分别定义两个 div、span标签,分别修改每个 div 标签的样式为:边框1个像素,实线,红色。*/
            div{
                border: 1px solid red;
            }
            span{
                border: 1px solid red;
            }
        </style>
    </head>
    <body>
    
    <div>div标签1</div>
    <div>div标签2</div>
    <span>span标签1</span>
    <span>span标签2</span>
    </body>
    

    问题:

    • 只能在同一页面复用代码,不能再多个页面中复用CSS代码
    • 实际项目中页面数量繁多,维护不方便
  3. 把CSS样式写成一个单独的css文件,再通过link标签引入复用

    css文件内容

    div{
        border: 1px solid blue;
    }
    span{
        border: 1px solid red;
    }
    

    html文件内容

    <head>
        <meta charset="UTF-8">
        <title>3-CSS.html</title>
        <!--link标签专门用来引入css样式代码-->
        <link rel="stylesheet" type="text/css" href="1.css"/>
    </head>
    <body>
    
    <div>div标签1</div>
    <div>div标签2</div>
    <span>span标签1</span>
    <span>span标签2</span>
    </body>
    

4. CSS选择器

  1. 标签名选择器

    <head>
       <meta charset="UTF-8">
       <title>CSS选择器</title>
       <style type="text/css">
          div{
             border: 1px solid yellow;
             color: blue;
             font-size: 30px;
          }
          span{
             border: 5px dashed red;
             color: yellow;
             font-size: 20px;
          }
       </style>
    </head>
    <body>    
       
       
       <!-- 
       需求1:在所有div标签上修改字体颜色为蓝色,字体大小30个像素。边框为1像素黄色实线。
       并且修改所有span 标签的字体颜色为黄色,字体大小20个像素。边框为5像素蓝色虚线。
        -->
       <div>div标签1</div>
       <div>div标签2</div>
       <span>span标签1</span>
       <span>span标签2</span>
       
    </body>
    
  2. id选择器

    <head>
       <meta charset="UTF-8">
       <title>ID选择器</title>
       <style type="text/css">
          #id001{
             border: 1px solid yellow;
             color: blue;
             font-size: 30px;
          }
          #id002{
             border: 5px dotted yellow;
             color: red;
             font-size: 20px;
          }
       </style>
    </head>
    <body>    
       
       <!-- 
       需求1:分别定义两个 div 标签,
       第一个div 标签定义 id 为 id001 ,然后根据id 属性定义css样式修改字体颜色为蓝色,
       字体大小30个像素。边框为1像素黄色实线。
       
       第二个div 标签定义 id 为 id002 ,然后根据id 属性定义css样式 修改的字体颜色为红色,字体大小20个像素。边框为5像素蓝色点线。
        -->
       
       <div id="id001">div标签1</div>
       <div id="id002">div标签2</div>
       
    </body>
    
  3. class选择器(类选择器)

    <head>
    <meta charset="UTF-8">
    <title>class类型选择器</title>
       <style type="text/css">
          .class01{
             color: blue;
             font-size: 30px;
             border: 1px solid yellow;
          }
          .class02{
             color: grey;
             font-size: 26px;
             border: 1px solid red;
          }
       </style>
    </head>
    <body>
    
       <!-- 
          需求1:修改 class 属性值为 class01的 span 或 div 标签,字体颜色为蓝色,字体大小30个像素。边框为1像素黄色实线。
          需求2:修改 class 属性值为 class02的 div 标签,字体颜色为灰色,字体大小26个像素。边框为1像素红色实线。
        -->
    
       <div class="class01">div标签class01</div>
       <div class="class02">div标签</div>
       <span class="class01">span标签class01</span>
       <span>span标签2</span>
    
    </body>
    
  4. 组合选择器

    <head>
    <meta charset="UTF-8">
    <title>class类型选择器</title>
        <style type="text/css">
            .class01,#id01{
                color: blue;
                font-size: 20px;
                border: 1px solid yellow;
            }
        </style>
    </head>
    <body>
    
       <!-- 
       需求1:修改 class="class01" 的div 标签 和 id="id01" 所有的span标签,
       字体颜色为蓝色,字体大小20个像素。边框为1像素黄色实线。
        -->
    
       <div class="class01">div标签class01</div> <br />
       <span id="id01">span 标签</span>  <br /> 
       <div>div标签</div> <br />
       <div>div标签id01</div> <br />
    
    </body>
    

5. 常用样式

  1. 字体颜色

    color:red;

    颜色可以写颜色名,如:black,blue,green等

    颜色也可以写rgb值和十六进制表示值,如:rgb(255,0,0),#00F6DE

  2. 宽度

    width:19px;

    宽度可以写像素值:19px;也可以写百分比值:20%

  3. 高度

    heitht:20px;

    高度可以写像素值:20px;也可以写百分比值:20%

  4. 背景颜色

    background-color:#00F6DE;

  5. 字体样式

    color:#FF0000; 字体颜色红色

    font-size:20px; 字体大小

  6. 边框

    border:1px solid red;

  7. 标签居中

    margin-left:auto;

    margin-right:auto;

  8. 文本居中

    text-align:center;

  9. 超链接去下划线

    text-decoration:none;

  10. 表格

    table{

    ​ border:1px solid black; 设置边框

    ​ border-collapse:collapse; 将边框合并

    }

    td,th{

    ​ border:1px solid black; 设置边框

    }

  11. 列表去除修饰

    ul{

    ​ list-style:none;

    }

示例

<head>
<meta charset="UTF-8">
<title>06-css常用样式.html</title>
    <style type="text/css">
        div{
            color: red;
            border: 1px yellow solid;
            width: 300px;
            height: 300px;
            background-color: green;
            font-size: 30px;
            margin-left: auto;
            margin-right: auto;
            text-align: center;
        }
        table{
            border: 1px red solid;
            border-collapse: collapse;
        }
        td{
            border: 1px red solid;
        }
        a{
            text-decoration: none;
        }
        ul{
            list-style: none;
        }
    </style>
</head>
<body>
    <ul>
        <li>1111111</li>
        <li>1111111</li>
        <li>1111111</li>
        <li>1111111</li>
        <li>1111111</li>
        <li>1111111</li>
        <li>1111111</li>
    </ul>
<table>
    <tr>
        <td>1.1</td>
        <td>1.2</td>
    </tr>
</table>
<a href="https://www.baidu.com/">百度</a>
<div>我是div标签</div>
</body>
posted on 2021-04-12 10:43  来点番茄酱  阅读(99)  评论(0)    收藏  举报