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或postget:明文传输,相对不安全,传递数量较少,但是效率较高,一般用于向服务器索要数据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; }
【强制】属性定义后必须以分号结尾。