1. 表格标签
1.1创建表格
表格标签是一种用来处理,显示表格式数据的常用标签。
注意:
1. tr 用于定义表格中的一行,必须嵌套在 table标签中,在 table中包含几对 tr,就有几行表格。
2.td /td:用于定义表格中的单元格,必须嵌套在<tr></tr>标签中,一对 <tr> </tr>中包含几对<td></td>,就表示该行中有多少列(或多少个单元格)。
<body> <!-- 表格创建 --> <!-- table 定义表 th 定义表头 tr 定义行 td 定义单元格 --> <!-- 表格属性 --> <!-- align 设置对其方式 center 水平方向对其 left 左对齐 right右对齐 cellpadding 设置单元格内容与单元格边框之间的空白间距 cellspacing 设置单元格到边框之间的空白间距 border 设置边框 width 设置表格宽度 --> <!-- 表格标题 --> <!-- caption 定义表格的标题 1. caption标签只存在表格里面,必须紧随 table 标签之后。 2. 只能对每个表格定义一个标题。通常这个标题会被居中于表格之上。 --> <table cellpadding="10" cellspacing="0" width="500" align="center" border="1"> <!-- 定义标题 --> <caption>信息表</caption> <!-- 定义表头 --> <thead> <tr> <th>姓名</th> <th>年龄</th> <th>性别</th> </tr> </thead> <tbody align="center"> <tr> <td>张三</td> <td>18</td> <td>男</td> </tr> <tr> <td>李四</td> <td>19</td> <td>女</td> </tr> </tbody> </table> </body>
复制
1.2 表格合并
跨行合并:rowspan
跨列合并:colspan
合并单元格思想:将多个内容合并的时候,就会有多余的东西,把它删除,例如:把3个td合并,那就多余了2个td,需要删除。
公式:删除的个数=合并的个数-1
合并的顺序:先上 后下 先左 后右
1. 先确定是跨行还是跨列合并
2. 根据先上 后下 先左 后右 的顺序找到目标单元格
3. 删除单元格 删除的个数=合并的个数-1
<body> <table cellpadding="10" cellspacing="0" align="center" width="500" border="1"> <tr> <!-- 跨列合并 --> <th colspan="3">学生信息</th> <th colspan="2">成绩</th> </tr> <tr> <th>姓名</th> <th>性别</th> <th>专业</th> <th>课程</th> <th>分数</th> </tr> <tr align="center"> <td>张三</td> <td>男</td> <!-- 跨行合并 --> <td rowspan="2">计算机</td> <td>java</td> <td>98</td> </tr> <tr align="center"> <td>李芳</td> <td>女</td> <td>mysql</td> <td>96</td> </tr> </table> </body>
复制
2. 表单标签
2.1 表单的作用
表单,在网页中的作用不可小视,主要负责数据采集的功能,比如你可以采集访问者的名字和e-mail地址、调查表、留言簿等等。
一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。 表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。
应用场景:主要应用于数据的提交,比如点击按钮向服务端发送数据。
2.3 表单中常用控件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <table align="center" width="500" border="1" cellspacing="0" cellpadding="4"> <caption><h2>人员信息录入表</h2></caption> <hr> <!-- 表单创建:form用于定义表单域 action="url" 将数据提交到哪里,一般是后端提供的接口路由 method="请求方式" 一般为get或post get:明文传输,相对不安全,传递数量较少,但是效率较高,一般用于向服务器索要数据 post: 请求体传输(非明文),相对安全,传递数量较多,但是效率低,一般用于给服务器发送数据 name="表单名" 当我们提交表单时,会携带表单内容输入的数据进行传递 传递方式:action路由?name=value&name=value... --> <form action="" method="get" name="information"> <!-- input 用户输入控件 name : 控件名称 value : 默认值 type :输入类型 hidden 隐藏域 --> <input type="hidden" name="id" value=""> <tr> <td> <!-- label 无语义标签 可以在点击的时候,在对应id的输入框获取焦点 --> <label for="a">用户名:</label> </td> <td> <!-- 普通文本输入框 placeholder 提示信息 --> <input id="a" placeholder="请输入用户名" type="text" name="username" value=""> </td> </tr> <tr> <td><label for="b">密码:</label></td> <!-- 密码输入框 --> <td><input id="b" placeholder="请输入密码" type="password" name="password"></td> </tr> <tr> <td>性别:</td> <td> <!-- 单选框,多个单选框时name必须保持一致 checked 默认选项 --> <input checked type="radio" name="sex" value="男">男 <input type="radio" name="sex" value="女">女 </td> </tr> <tr> <td>爱好:</td> <!-- 复选框 checked 默认选项 --> <td> <input type="checkbox" name="likes" value="唱">唱 <input type="checkbox" name="likes" value="跳">跳 <input type="checkbox" name="likes" value="篮球">篮球 <input checked type="checkbox" name="likes" value="学习">学习 </td> </tr> <tr> <!-- 文件上传使用 --> <td>头像:</td> <td> <input type="file"> </td> </tr> <tr> <!-- 下拉框 select的传递方式 select的value=选中的option的value --> <td>学历:</td> <td> <select name="edu" id=""> <option value="小学">小学</option> <option value="中学">中学</option> <option value="大学">大学</option> </select> </td> </tr> <tr> <!-- 多行文本域 --> <td>自我介绍:</td> <td> <textarea name="" id="" cols="30" rows="10"></textarea> </td> </tr> <tr> <!-- 按钮 --> <td colspan="2"> <input type="button" value="普通按钮"> <input type="submit" value="提交按钮"> <input type="reset" value="重置按钮"> <button>button按钮-可提交</button> </td> </tr> </form> </table> </body> </html>
复制
页面显示
3. CSS初识
3.1 CSS介绍
CSS(Cascading Style Sheets) 主要用于美化样式。
CSS通常称为CSS样式表或层叠样式表(级联样式表),主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局等外观显示样式。
CSS以HTML为基础,提供了丰富的功能,如字体、颜色、背景的控制及整体排版等,而且还可以针对不同的浏览器设置不同的样式。
3.2 样式表
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <!-- 内部样式表 可以控制当前页面的所有样式,但是并没有完全和html分离 --> <style> /* 编写CSS代码 */ /* 选择器:找到要操作的标签 选择器{属性:值;属性:值;...} */ h1{ color: blueviolet; } </style> <!-- 外部样式表 会重新创建一个后缀为.css的文件,存放CSS代码 可以控制整个站点,只要能找到这个CSS文件 内容和样式也是完全分离的 缺点:需要link导入 --> <link rel="stylesheet" href="./test.css"> </head> <body> <h1>标题一</h1> <!-- 行内样式表 通过标签的style属性进行CSS编码,只能影响一个标签 和HTML完全混淆在一起,但是权重高 --> <p style="color: blue;"></p> </body> </html>
复制
三种样式表总结
样式表 | 优点 | 缺点 | 使用情况 | 控制范围 |
行内样式表 | 书写方便,权重高 | 没有实现样式和结构相分离 | 较少 | 控制一个标签(少) |
内部样式表 | 部分结构和样式相分离 | 没有彻底分离 | 较多 | 控制一个页面(中) |
外部样式表 | 完全实现结构和样式相分离 | 需要引入 | 最多,强烈推荐 | 控制整个站点(多) |
3.3 CSS基础选择器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> /* 标签选择器 每一个标签名就是一个标签选择器 用于选择页面中所用相同的标签,设置相同的样式 */ p{ color: blue; } /* 类选择器 每一个标签都有class属性 选择所有class值相同的标签,设置相同的样式 class用.表示 .class值{属性:值;...} */ .one{ color: red; } /* ID选择器 每个标签都有ID属性 ID一般代表唯一性,适合对页面中某个特定的标签设置单独的样式 ID选择器使用#表示 #id值{属性:值;...} */ #two{ color: purple; } /* 通配符 选择页面中所有标签,对所有标签设置相同的样式 一般用于清理标签的默认内外边距 */ *{ color: green; } /* 优先级:* < 标签 < 类 < id */ </style> </head> <body> <h1 class="one">标题1</h1> <h2 id="two">标题2</h2> <h3>标题3</h3> <p class="one">段落1</p> <p>段落2</p> </body> </html>
复制
页面显示
3.4 CSS复合选择器
复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的,目的是为了可以选择更准确更精细的目标元素标签。
3.4.1 交集选择器
交集选择器由两个选择器构成,其中一个为标签选择器,第二个为class选择器,两个选择器之间不能有空格。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> /* 所有class为a的标签 */ .a { color: red; } /* class为a的p标签 */ p.a{ font-size: 40px; } </style> </head> <body> <p class="a">段落1</p> <p>段落2</p> <h3 class="a">标题3</h3> </body> </html>
复制
3.4.2 并集选择器
并集选择器(CSS选择器分组)是各个选择器通过<strong style="color:#f00">逗号</strong>连接而成的,任何形式的选择器(包括标签选择器、class类选择器id选择器等),都可以作为并集选择器的一部分。如果某些选择器定义的样式完全相同,或部分相同,就可以利用并集选择器为它们定义相同的CSS样式。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> /* 并集选择器 用于对多个选择器设置相同的格式 */ p,div{ color: blue; } </style> </head> <body> <p>段落</p> <div>文本</div> </body> </html>
复制
3.4.3 子元素和后代选择器
子元素选择器只能选择作为某元素子元素的元素。其写法就是把父级标签写在前面,子级标签写在后面,中间跟一个 进行连接,注意,符号左右两侧各保留一个空格。
后代选择器又称为包含选择器,用来选择元素或元素组的后代,其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔。当标签发生嵌套时,内层标签就成为外层标签的后代。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> /* 直接子代 使用> 格式:选择器>选择器>选择器...{} */ div>a{ color: red; } /* 空格表示后代 可以是子代,也可以是子代的子代 格式:选择器 选择器 选择器...{} */ div a{ font-size: 40px; } </style> </head> <body> <div> <a href="">div子代</a> <p><a href="">div子代p的子代</a></p> </div> </body> </html>
复制
3.4.4 伪类选择器
伪类选择器用于向某些选择器添加特殊效果。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> /* 未访问状态 */ a:link{ color: red; text-decoration: none; } /* 已访问状态 */ a:visited{ color: #888; } /* 鼠标移入状态 */ a:hover{ color: blue; text-decoration: underline; } /* 选定状态,鼠标按下不松开 */ a:active{ color: aqua; } </style> </head> <body> <a href="#1">按钮</a> </body> </html>
复制
3.4.5 属性选择器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> /* 选择器[属性] 获取选择器中某个有指定属性的标签 */ /* 获取有id属性的input */ input[id]{ color: red; } /* 选择器[属性=值] 获取选择器中某个有指定属性和值标签 */ input[type=text]{ color: aqua; } /* ^=以什么开头 $=以什么结尾 */ a[href^='http']{ color: red; } a[href$='com']{ font-size: 40px; } </style> </head> <body> <input type="text"> <input type="button" value="按钮" id=""> <a href="http://baidu.com">百度一下,你就知道</a> <a href="taobao.com">淘宝</a> </body> </html>
复制
4. CSS字体样式属性
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> p { /* 字体大小 */ font-size: 50px; /* 字体粗细 */ font-weight: 900; /* 字体倾斜 */ font-style: oblique; /* 字体 */ font-family: SimSun; } div{ /* 综合写法 : 风格 粗细 大小 字体 大小和字体必须要加,否则不生效 */ font: oblique 500 30px SimSun ; } </style> </head> <body> <p>文本内容1</p> <div>文本内容2</div> </body> </html>
复制
5. CSS外观属性
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div { /* 字体颜色 */ color: blue; /* 字体大小和样式 */ font: 30px SimSun; /* 背景颜色 */ background-color: rgb(229, 228, 165); /* 边框 1px 实线 黑色*/ border: 1px solid black; /* 文本水平方向对齐 左中右 */ text-align: center; /* 高度 */ height: 100px; /* 行高 当行高和高度一致时,垂直居中*/ line-height: 100px; /* 文本修饰:下划线 */ text-decoration: underline; /* 鼠标样式 */ cursor: pointer; } a{ /* 去除文本修饰 */ text-decoration: none; } </style> </head> <body> <a href="">静夜思</a> <div>床前明月光</div> <div>疑是地上霜</div> <div>举头望明月</div> <div>低头思故乡</div> </body> </html>
复制
6.CSS颜色属性
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> p{ /* 英文单词 */ color: red; /* 三位十六进制整形值 由高到低分别代表红、绿、蓝 0为最小值,f为最大值 */ color: #333; /* 六位十六进制整形值 每两位分别代表红、绿、蓝 */ color: #ff5547; /* 使用rgb函数,填写百分比 分别为红、绿、蓝所占比 */ color: rgb(50%, 50%, 50%); /* 使用rgb函数,填写0——255数字 */ color: rgb(23, 166, 88); /* 使用rgba函数 前三位与上两种相同,第四位为透明度设置,0-1的小数 0 为完全透明,1为不透明 */ color: rgba(0, 0, 0, 0.5); } </style> </head> <body> <p>文本颜色</p> </body> </html>
复制
7. CSS书写规范
7.1 空格规范
【强制】选择器与{之间必须包含空格.
/* 示例 */ select {}
复制
【强制】属性名与之后的:之间不允许包含空格,: 与属性值之间必须包含空格
/* 示例 */ font-size: 10px;
复制
7.2 选择器规范
【强制】当一个rule包含多个selector时,每个选择器声明必须独占一行。
/* good */ .post, .page, .comment { line-height: 1.5; } /* bad */ .post, .page, .comment { line-height: 1.5; }
复制
【建议】选择器的嵌套层级应不到于3级,位置靠后的限定条件应尽可能精确。
/* good */ #username input {} .comment .avatar {} /* bad */ .page .header .login #username input {} .comment div * {}
复制
7.3 属性规范
【强制】属性定义必须另起一行。
/* good */ .selector { margin: 0; padding: 0; } /* bad */ .selector { margin: 0; padding: 0; }
复制
【强制】属性定义后必须以分号结尾。