web前端学习(4)
1.1 表单标签
type属性:
1.text:普通的文本输入
2.password:密码输入框
3.checkbox:复选框
4.radio:单选框
5.file:上传文件
6.submit:提交按钮
7.reset:重置按钮`
8.textarea:多行文本
9.select,option:下拉菜单,一般都合在一起用
label:辅助菜单;即:在选择的时候可以点击文字即可选中
还可以利用:
multiple:多选(ctrl+鼠标)
size:显示具体的项目多少字段集:
fieldset>legend
(边框缺口),元素要放在fieldset父元素里面
Type="color”生成一个颜色选择的表单
Type= “tel”唤起拨号盘表单
Type= “search”产生一个搜索意义的表单
Type= “range”产生一个滑动条表单
Type= “number”产生一个数值表单
Type= “email”限制用户必须输入email类型
Type= “url”限制用户必须输入url类型
Type= “date”限制用户必须输入日期
Type= “month”限制用户必须输入月类型
Type= “week”限制用户必须输入周类型
Type=“time”限制用户必须输入时间类型
Type= “datetime-local”选取本地时间
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>document</title>
</head>
<body>
<form action="www.baidu.com">
<h2>输入框:</h2>
<input type="text" placeholder="请输入用户名">
<h2>密码框:</h2>
<input type="password" placeholder="请输入密码">
<h2>多选框:</h2>
<input type="checkbox"checked>苹果
<input type="checkbox">葡萄
<input type="checkbox" disabled>香蕉
<h2>单选框</h2>
<input type="radio" name="123" id="man"><label for="man">man</label>
<input type="radio" name="123" id="woman"><label for="woman">woman</label>
<h2>喜欢的城市</h2>
<select multiple>
<option selcted disabled>请选择</option>
<option>成都</option>
<option>长沙</option>
<option>上海</option>
</select>
<h2>喜欢的人</h2>
<select size="4">
<option selcted disabled>请选择</option>
<option>周杰伦</option>
<option>李白</option>
<option>瓦德</option>
</select>
<h2>上传文件</h2>
<input type="file">
<h2>提交和重置</h2>
<input type="submit">
<input type="reset">
</form>
</body>
</html>
2.1 HTML5 语义化标签
- 类型:
- section元素表示页面中的一个内容区块
- article元素表示一块与上下文无关的独立的内容
- aside元素在article之外的,与article内容相关的辅助信息>
- header元素表示页面中一个内容区块或整个页面的标题>
- footer元素表示页面中一个内容区块或整个页面的脚注
- nav元素表示页面中导航链接部分
- figure元素表示一段独立的流内容,使用figcaption元素为其添加标题(第一个或最后一个子元素的位置)
- main元素表示页面中的主要的内容(ie不兼容)
2. rvideo元素定义视频过
video src="movie.ogg" controls="controls">Video元素</video>
- audio元素定义音频
<audio src="someaduio.wav">Audio元素</audio>
controls属性:如果出现该属性,则向用户显示控件,比如播放按钮。
autoplay属性:如果出现该属性,则视频在就绪后马上播放。
loop属性:重复播放属性。
muted属性:静音属性。
poster属性:规定视频正在下载时显示的图像,直到用户点击播放按钮。
- Datalist :选项列表(一般用于搜索栏下的提示菜单)
例:
<input type="url" list="url_list" name="link"/>
<datalist id="url_list">
<option label="W3School" value="http://www.W3School.com.cn”/>
<option label="Google" value="http://www.google.com" />
<option label="Microsoft" value="http://www.microsoft.com" />
</datalist>
提示: option元素永远都要设置value属性
- autofocus属性:
给文本框、选择框、或者按钮控件加上该属性,当打开页面时,该控件自动获得国标焦点,一个页面只能有一个。
- required属性:
验证输入不能为空
- Multiple:
可以输入一个或多个值,每个值之间用逗号分开例: <input type= "email"multiple/> 还可以应用于file
- pattern
将属性值设为某个格式的正则表达式,在提交时会检查其内容是否符合给定格式。 例:<input pattern
=“[0-9]A-Z”title=“输入内容:一个数与三个大写字母” placeholder=‘输入内容:一个数与三个大写字母’>
3.1 grid布局
3.1.1 grid布局含义
1. 含义:
grid布局也称为网格布局,是将页面中的父元素划分为一个个小格子,然后通过这些小格子进行合并来制作不同的网路效果
2.如何触发grid布局
属性:display: grid / inline-grid
区分:
- grid 表示块状网格,与块元素属性类似
- inline-grid 表示内联块状网格,与内联块的属性差不多
3.哪些特点:
只有触发了grid,才能够将里面的区域进行划分,才能显示网格
4.grid与flex 表格的区别:
- flex: 相同点:都有容器和项目之分,不同点flex为一维布局,只能限制于主轴和侧轴方向的布局,而grid支持行列的布局
- 表格:相同点:都可以进行行列的布局,不同点:表格较为复杂,需要多层嵌套
3.1.2 grid特点
- display:grid
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box1{
width: 500px;
height: 500px;
border: 1px solid gray;
margin: 0 auto;
display: grid;
}
.box{
}
</style>
</head>
<body>
<div class="box">
<span>123</span>
<div class="box1"></div>
<span>465</span>
</div>
</body>
</html>
2. display:inline-grid
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box1{
width: 500px;
height: 500px;
border: 1px solid gray;
margin: 0 auto;
display: inline-grid;
}
.box{
}
</style>
</head>
<body>
<div class="box">
<span>123</span>
<div class="box1"></div>
<span>465</span>
</div>
</body>
</html>
3.1.3 grid基本知识
- grid容器:采用grid布局的父元素
- grid内容:显示项目的区域
- grid项目:grid布局中每一个格子内部放置的元素
- 行:横向的单元格
- 列:竖直方向上的单元格
- 网格线:网络布局中的横向的纵线的线条
- 单元格:横向纵向网格线相交的区域
- 间距:单元格与单元格之间的间距
总结:
- 一个m行n列的网格,需要m+1条横向,n+1条竖线组成
4.1 设置属性
属性:grid-template-rows; grid-template-columns
- 之间可以取数字/ 百分比
- 取重复函数
- 自动填充
- 自动补全
- 片段划分
- minmax()函数
4.1.1 取数字/取百分比
即:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box{
width: 500px;
height: 500px;
border: 5px solid gray;
margin: 100px auto;
display: grid;
grid-template-rows: 100px 100px 100px;
grid-template-columns: 100px 100px 100px;
}
</style>
</head>
<body>
<div class="box">
</div>
</body>
</html>
4.1.2 取重复函数
属性:grid-template-rows: repeat(重复次数 ,重复的距离); grid-template-rows: repeat(重复次数 ,重复的距离)
- 划分一个3行5列的网格
- 每一行行高:100px;
- 每一列列宽:均占总宽度的20%
注意:repeat函数第一个参数是重复的次数第二个参数为需要重复的数值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box{
width: 500px;
height: 500px;
border: 5px solid gray;
margin: 100px auto;
display: grid;
grid-template-rows: repeat(3,100px);
grid-template-columns: repeat(5,20%);
}
</style>
</head>
<body>
<div class="box">
</div>
</body>
</html>
4.1.3 自动填充
属性:grid-template-columns(auto-fill,30%)
注意:
备注: 在这里auto-fill会将列数宽度按照30%的宽度进行划分; 盛放不下的话则不在划分列数
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box{
width: 500px;
height: 500px;
border: 5px solid gray;
margin: 100px auto;
display: grid;
grid-template-rows: repeat(3,100px);
grid-template-columns: repeat(auto-fill,30%);
}
</style>
</head>
<body>
<div class="box">
</div>
</body>
</html>
4.1.4 自动补全
1.设置一个3行3列的网格第1,3行固定高度100px;
2. 第2行高度自适应第2,3列固定宽度100px;
3. 第1列宽度自适应
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box{
width: 500px;
height: 500px;
border: 5px solid gray;
margin: 100px auto;
display: grid;
grid-template-rows: 100px auto 100px;
grid-template-columns: auto 100px 100px;
}
</style>
</head>
<body>
<div class="box">
</div>
</body>
</html>
4.1.5 片段划分
片段划分:为了方便表示比例关系,网格布局提供了fr关键字(fraction 的缩写,意为"片段”)如果两列的宽度分别为1fr和2fr,就表示后者是前者的两倍
划分3行3列的网格
- 其中行高总共划分成6份,第1行占1/;
- 第2行占2/6,第3行占3/6,每一列的宽度为:100px
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box{
width: 500px;
height: 500px;
border: 5px solid gray;
margin: 100px auto;
display: grid;
grid-template-rows: 1fr 2fr 3fr;
grid-template-columns: 100px 100px 100px;
}
</style>
</head>
<body>
<div class="box">
</div>
</body>
</html>