From Head First HTML CSS
12 HTML5标记
将div换成特定的元素
article
页面中一个独立的组成部分,如一个博客帖子,用户论坛帖子或新闻报道。
nav
页面的导航链接
<nav>
<ul>
<li class="selected"><a href="index.html">HOME</a></li>
<li><a href="blog.html">BLOG</a></li>
<li><a href="">INVENTIONS</a></li>
<li><a href="">RECIPES</a></li>
<li><a href="">LOCATIONS</a></li>
</ul>
</nav>
nav {
background-color: #efe5d0;
margin: 10px 10px 0px 10px;
}
nav ul {
margin: 0px;
list-style-type: none;/*删去列表的项目符号*/
padding: 5px 0px 5px 0px;
}
nav ul li {
display: inline;/*列表项的表现形式由块级转化为内联级*/
padding: 5px 10px 5px 10px;
}
nav ul li a:link, nav ul li a:visited {
color: #954b4b;
border-bottom: none;
font-weight: bold;
/*
text-shadow: 1px 1px 3px #e2c2c2;
text-transform: uppercase;
*/
}
nav ul li.selected {
background-color: #c8b99c;
}
header
放在页面顶部或者某个区域的顶部
通常页面最顶端的首部元素会将它加入一个类top中,与页面中其他的元素区分开。
footer
放在页面底部或者某个区域的底部
time
包含一个日期或者时间
<time datatime="2020-02-18>2/18/2020</time>"
aside
包含的是对页面的补充如插图或者边栏
section
一个主题性内容分组,一般包括一个头部一个底部。
video
为页面添加视频媒体
- 这些特定元素的css规则不需要加上
#
视频元素video
<vedio controls autoplay width="512" height="288" src="video/test.mp4"></video>
autoplay:自动播放,布尔属性controls: 一组控件来控制播放暂停调节音量等,布尔属性poster: 一个视频未播放时的封面图像路径src:视频的源位置loop: 视频结束之后是否会重复播放preload: 细粒度的控制视频如何加载,取值有none(用户真正播放视频之前不下载视频)metadata(下载视频元数据,但不下载视频内容)auto(浏览器来决定)
- 视频格式
- 容器: WebM,MP4,Ogg
- 视频编码:Vp8 , H2.64 , Theora
- 音频编码:Vorbis,AAC,Vorbis
<source>元素
<vedio>元素中<source>元素可以对应每种视频格式,提供一组视频,对于每个source元素,浏览器会加载视频文件的元数据,查看是否能播放这个视频,这个过程十分耗时,我们可以为浏览器提供更多信息来解决这一问题。<source src="video/test.ogv" type='video/ogg; codecs="theora, vorbis"'>
- type属性使用单引号,首先是指出视频文件的MIME类型,指定容器格式;接着codecs指明对视频和音频使用什么编解码器。
- 元素
<progress>:显示任务的完成进度<canvas>:在页面中显示用JavaScript绘制的图像和动画<meter>:显示某个范围的度量
13 表格与更多列表
- HTML建立表格
<table> <tr> <td>
<body>
<table>
<caption>
name<!-- 表格的标题 -->
</caption>
<tr>
<th>City</th><!--表头 -->
<th>Date</th>
<th>Temperature</th>
<th>Altitude</th>
<th>Population</th>
<th>Diner Rating</th>
</tr>
<tr>
<td>Walla Walla, WA</td>
<td>June 15th</td>
<td>75</td>
<td>1,204 ft</td>
<td>29,686</td>
<td>4/5</td>
</tr>
</table>
</body>
html表格允许你使用HTML标记指定表格的结构,而CSS表格显示提供了一种方法,可以使用一种类似表格的方式展示块级元素。
- 表格的CSS
- 单元格之间的空间叫做边框间距(border-spacing),所以我们不用对单元格设置外边距,而是有边框间距这个属性,这是针对整个表格设置的。
- 折叠边框
border-spacing: 0px;border-collapse: collapse;
- 单元格颜色
- 为每一行元素加颜色,指定tr到某个类
nth-child伪类
>伪类会根据元素的状态指定元素的样式,对于nth-chlid伪类,状态则是一个元素相对于它的兄弟元素的数字顺序。
/*假如再一个section元素中嵌入四个p元素*/
p:nth-child(even){
background-color: red;
}
p:nth-child(odd){
background-color: green;
}
p:nth-child(n){/*n=1,是第一个段落*/
background-color: green;
}
- 单元格跨多行-
rowspan
<tr>
<td rowspan="2">Truth or Consequences, NM</td>
<td class="center">August 9th</td>
<td class="center">93</td>
<td rowspan="2" class="right">4,242 ft</td>
<td rowspan="2" class="right">7,289</td>
<td class="center">5/5</td>
</tr>
<tr>
<td class="center">August 27th</td>
<td class="center">98</td>
<td class="center">4/5</td>
</tr>
效果:
- 嵌套表格
<tr>
<td rowspan="2">Truth or Consequences, NM</td>
<td class="center">August 9th</td>
<td class="center">93</td>
<td rowspan="2" class="right">4,242 ft</td>
<td rowspan="2" class="right">7,289</td>
<td class="center">5/5</td>
</tr>
<tr>
<td class="center">August 27th</td>
<td class="center">98</td>
<td>
<table>
<tr>
<th>Tess</th>
<td>5/5</td>
</tr>
<tr>
<th>Tony</th>
<td>4/5</td>
</tr>
</table>
</td>
覆盖嵌套表格的表头颜色:
table table th {
background-color: white;
}
14 HTML表单
-<form>
<form action="http://wickedlysmart.com/hfhtmlcss/content.php" method="POST">
...
</form>
action:该属性包含Web服务器的URL/脚本所在的文件夹/将处理表单数据的服务器脚本名method: 确定表单数据如何发送到服务器
- 常用的表单元素
<input>
- 文本输入
eg:<input type="text" name="fullname">type属性表示希望得到文本输入,大多数表单元素都需要一个name,服务器脚本将使用 这个名字。- 提交输入
eg:<input type="submit">创建一个提交按钮- 单选按钮输入
eg:<input type="radio" name="hotornot" value="hot">
<input type="radio" name="hotornot" value="not">创建包含多个按钮的控件- 复选框输入
eg:<input type="checkbox" name="spice" value="Salt">
<input type="checkbox" name="spice" value="Pepper">- 数字输入 eg:
<input type="number" min="0" max="20">- 范围输入 eg:
<input type="range" min="0" max="20" step="5">- 颜色输入 eg:
<input type="color">- 日期输入 eg:
<input type="date">- email输入 eg:
<input type="email">- tel输入 eg:
<input type="tel">- url输入 eg:
<input type="url"><fileset> <legend>将公共元素组织在一起
<fieldset>
<legend>Condiments</legend>
<input type="checkbox" name="spice" value="salt">Salt<br>
...
</fieldset>
- 密码输入 eg:
<input type="password" name="secret">- 文件输入 eg:
<input type="file" name="doc">- 多选菜单eg:
<select name="character" mutiple>...</select>-placeholder属性:为字段填写格式做出提示required属性:指示一个域是必须的,是一个布尔属性
<textarea>
eg:
<textarea name="comments" rows="10" cols="48"> </textarea>开始和结束标识之间的文本会成为浏览器文本控件中的初始文本。
<select> <option>
会在页面中创建一个菜单控件。菜单提供了一种从一组选项中做出选择的方法。select元素和option元素结合使用可以创建一个菜单。
<select name="characters">
<option value="Buckaroo">Buckaroo Banzai</option>
<option value="Tommy">Perfect Tommy</option>
<option value="Penny">Penny Priddy</option>
<option value="Jersey">New Jersey</option>
method方法
- GET 打包表单数据,并把数据追加到URL;对于可以加书签的请求,用GET;
- POST 打包表单数据,并把它作为请求的一部分发送到服务器;如果表单数据是私有的或者表单数据很多,如包括
<textarea>或者file<input>元素的
- 可访问性
<lable>
<input type="radio" name="hotornot" value="hot" id="hot"> <label for="hot"> hot</label>
想用label先为表单元素添加id属性,然后for属性对应相应的id。标签可以放在与它关联的控件的前面或者后面。