整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

设置div高度等于动态宽度

目中有时候会遇到这个问题:一行有3个div,希望这3个div平分屏幕宽度,并且高度等于宽度。

第一个问题:平分屏幕宽度

可以对div设置百分比宽度,而不是直接用px宽度,这里用到了响应式设计的思想,可以参考这篇文章:自适应网页设计(Responsive Web Design)

第二个问题:动态设置高度和宽度一致

有两种方法,一种是用js动态设置,一种是直接用CSS设置

先看下html代码

<ul>

<li class="container">

<div class="dummy">

</div>

<div class="element">

some text

</div>

</li>

<li class="container">

<div class="dummy">

</div>

<div class="element">

some text

</div>

</li>

<li class="container">

<div class="dummy">

</div>

<div class="element">

some text

</div>

</li>

</ul>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

公用的CSS

ul,li{

list-style: none;

}

* {

margin: 0;

padding: 0;

outline: 0

}

body {

margin: 0;

padding: 0;

-webkit-appearance: none;

font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;

font-size: 16px;

}

ul{

margin:10px;

}

.container {

display: inline-block;

position: relative;

width: 32%;

text-align: center;

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

用js动态设置

var cw = $('.dummy').width();

$('.dummy').css({'height':cw+'px'});

$(window).resize(function() {

var cw = $('.dummy').width();

$('.dummy').css({'height':cw+'px'});

});

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

用CSS设置

.dummy {

padding-top: 100%; /* 1:1 aspect ratio */

width: 100%;

background: #333333;

}

  • 1
  • 2
  • 3
  • 4
  • 5

CSS设置padding-top的原理:Use CSS to Specify the Aspect Ratio of a Fluid Element

/———————————————————

然后尝试对图片设置高度等于动态宽度

js方法很简单,跟上面的方法基本相同

<ul>

<li class="container">

<img src="images/test_1.jpg"/>

<div class="element">

some text

</div>

</li>

<li class="container">

<img src="images/test_2.jpg"/>

<div class="element">

some text

</div>

</li>

<li class="container">

<img src="images/test_3.jpg"/>

<div class="element">

some text

</div>

</li>

</ul>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

.container {

display: inline-block;

position: relative;

width: 32%;

text-align: center;

}

.container img{

width: 100%;

height:100%;

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

var cw = $('.dummy').width();

$('.dummy').css({'height':cw+'px'});

$(window).resize(function() {

var cw = $('.dummy').width();

$('.dummy').css({'height':cw+'px'});

});

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

CSS方法

<ul>

<li class="container">

<div class="dummy">

</div>

<div class="element">

some text

</div>

</li>

<li class="container">

<div class="dummy">

</div>

<div class="element">

some text

</div>

</li>

<li class="container">

<div class="dummy">

</div>

<div class="element">

some text

</div>

</li>

</ul>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

.container {

display: inline-block;

position: relative;

width: 32%;

text-align: center;

}

.dummy{

padding-top: 100%; /* 1:1 aspect ratio */

width: 100%;

background:url(images/test_3.jpg) no-repeat;

-webkit-background-size: 100%;

background-size: 100%;

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

通过设置background可以实现。

div包含img的方法没有试验成功,以后继续尝试

/————————————-

还有一个问题,怎么设置div和img之间的padding,又能保证div宽度是屏幕宽度的三分之一?

见标签


1.段落标签<p>

  • <p>标签的默认样式,段前段后都会有空白,如果不喜欢这个空白,可以用css样式来删除或改变它。
  • 改变CSS样式删除段前段后空白处。
<style> 
 p{margin:0px;} 
</style>

2.斜体标签<em>

 <em>斜体</em>

3.粗体标签<strong>

 <strong>加粗</strong>

4.<span>标签

被用来组合文档中的行内元素。使用 <span> 来组合行内元素,以便通过样式来格式化它们。

  • <span> 在CSS定义中属于一个行内元素,在行内定义一个区域,也就是一行内可以被 <span>划分成好几个区域,从而实现某种特定效果。
  • <span>本身没有任何属性。
  • <div>在CSS定义中属于一个块级元素<div>可以包含段落、标题、表格甚至其它部分。这使DIV便于建立不同集成的类,如章节、摘要或备注。在页面效果上,使用<div> 会自动换行,使用<span> 就会保持同行。

例如:

 <style> 
 span{ color:blue; } 
 </style>

这样,<span>标签包含的文本就变成了蓝色的字体。

5.<q>标签

作用:段文本引用

例如:

<p>最初知道庄子,是从一首诗<q>庄生晓梦迷蝴蝶。望帝春心托杜鹃。</q>开始的。虽然当时不知道是什么意思,只是觉得诗句挺特别。后来才明白这个典故出自是庄子的《逍遥游》,《逍遥游》代表了庄子思想的最高境界,是对世俗社会的功名利禄及自己的舍弃。</p>
在上面的例子中,“庄生晓梦迷蝴蝶。望帝春心托杜鹃。” 这是一句诗歌,出自晚唐诗人李商隐的《锦瑟》 。因为不是作者自己的文字,所以需要使用<q></q>实现引用。
注意要引用的文本不用加双引号,浏览器会对q标签自动添加双引号。
这里用<q>标签的真正关键点不是它的默认样式双引号(如果这样我们不如自己在键盘上输入双引号就行了),而是它的语义:引用别人的话。
补充知识:语义化网页结构有助于搜索引擎的收录。同一个效果可以用很多钟方式实现,但这只方便了浏览者,而搜索引擎不知道这里到底是什么内容,这里如果你使用标签,那么就告诉浏览器这里是引用的话。而且在手持设备或移动设备不能很好支持css的基础上,浏览器会使用默认的效果,因而提供较好可读性。

6.<blockquote>标签

作用:长文本引用

例如:

<blockquote>明月出天山,苍茫云海间。长风几万里,吹度玉门关。汉下白登道,胡窥青海湾。由来征战地,不见有人还。 戍客望边色,思归多苦颜。高楼当此夜,叹息未应闲。</blockquote>

注意:浏览器对<blockquote>标签的解析是缩进样式

7.<br>标签

怎么可以让每一句诗词后面加入一个折行呢?那就可以用到<br />标签了,在需要加回车换行的地方加入<br />,<br />标签作用相当于word文档中的回车。

语法:

xhtml1.0写法:

 <br/>

html4.01写法:

 <br>

现在一般使用 xhtml1.0 的版本的写法(其它标签也是),这种版本比较规范。

与以前我们学过的标签不一样,<br />标签是一个空标签,没有HTML内容的标签就是空标签,空标签只需要写一个开始标签,这样的标签有<br />、<hr />和<img />。

讲到这里,你是不是有个疑问,想折行还不好说嘛,就像在 word 文件档或记事本中,在想要折行的前面输入回车不就行了吗? 不好意思,在 html 中是忽略回车和空格的,你输入的再多回车和空格也是显示不出来的。

8.<hr>标签

在信息展示时,有时会需要加一些用于分隔的横线,这样会使文章看起来整齐些。

语法:

html4.01版本

<hr>

xhtml1.0版本

<hr/>

注意:

  • <hr />标签和<br />标签一样也是一个空标签,所以只有一个开始标签,没有结束标签。
  • <hr />标签的在浏览器中的默认样式线条比较粗,颜色为灰色,可能有些人觉得这种样式不美观,没有关系,这些外在样式在我们以后学习了css样式表之后,都可以对其修改。
  • 大家注意,现在一般使用 xhtml1.0 的版本(其它标签也是),这种版本比较规范

9.<address>标签

一般网页中会有一些网站的联系地址信息需要在网页中展示出来,这些联系地址信息如公司的地址就可以<address>标签。也可以定义一个地址(比如电子邮件地址)、签名或者文档的作者身份。

语法:

 <address>联系地址信息</address>

如:

<address>文档编写:lilian 北京市西城区德外大街10号</address>

10.<code>标签

在介绍语言技术的网站中,避免不了在网页中显示一些计算机专业的编程代码,当代码为一行代码时,你就可以使用<code>标签了,如下面例子:

<code>var i=i+300;</code>

注意:在文章中一般如果要插入多行代码时不能使用<code>标签了。

语法:

<code>代码语言</code>

:如果是多行代码,可以使用<pre>标签。

11.<pre>标签

主要作用:预格式化的文本。被包围在 pre 元素中的文本通常会保留空格和换行符。

语法:

<pre>语言代码段</pre>

如下代码:

<pre> 
 var message="欢迎"; 
 for(var i=1;i<=10;i++) { 
 alert(message); 
 } 
</pre>

效果如下:

注意:<pre> 标签不只是为显示计算机的源代码时用的,在你需要在网页中预显示格式时都可以使用它,只是<pre>标签的一个常见应用就是用来展示计算机的源代码。

12.<ul>标签

ul-li是没有前后顺序的信息列表。

  • 这样是空心圆,
ul{ list-style:circle; }
  • 这个就是去除前面的点
ul{ list-style:none }
  • 语法:
<ul> 
 <li>信息</li> 
 <li>信息</li> 
 ...... 
</ul>
  • 举例:
<ul> 
 <li>精彩少年</li> 
 <li>美丽突然出现</li> 
 <li>触动心灵的旋律</li> 
</ul>
  • ul-li在网页中显示的默认样式一般为:每项li前都自带一个圆点

13.<ol>标签

ol-li是有前后顺序的信息列表

  • 语法:
<ol> 
 <li>信息</li> 
 <li>信息</li> 
 ...... 
</ol>
  • 举例:
 <ol> 
 <li>前端开发面试心法 </li> 
 <li>零基础学习html</li>
 <li>JavaScript全攻略</li> 
</ol>

<ol>在网页中显示的默认样式一般为:每项<li>前都自带一个序号,序号默认从1开始。

14.<div>标签

  • <div> 可定义文档中的分区或节(division/section)。
  • <div>标签可以把文档分割为独立的、不同的部分。它可以用作严格的组织工具,并且不使用任何格式与其关联。
  • 如果用 id 或 class 来标记 <div>,那么该标签的作用会变得更加有效。
  • <div>是一个块级元素。这意味着它的内容自动地开始一个新行。实际上,换行是 <div>固有的唯一格式表现。可以通过<div> 的 class 或 id 应用额外的样式。不必为每一个 <div> 都加上类或 id,虽然这样做也有一定的好处。
  • 可以对同一个 <div>元素应用 class 或 id 属性,但是更常见的情况是只应用其中一种。这两者的主要差异是,class 用于元素组(类似的元素,或者可以理解为某一类元素),而id 用于标识单独的唯一的元素。

15.<table>标签

  • 常用属性

1)属性:border

作用:规定表格边框的宽度

2)属性:cellpadding

作用:单元格中的文本与单元格边框的间距

3)属性:cellspacing

作用:单元格之间的间距

  • 创建表格的四个元素:

table、tbody、tr、th、td

1、<table>…</table>:整个表格以<table>标记开始、</table>标记结束。

2、<tbody>…</tbody>:当表格内容非常多时,表格会下载一点显示一点,但如果加上<tbody>标签后,这个表格就要等表格内容全部下载完才会显示。如右侧代码编辑器中的代码。

3、<tr>…</tr>:表格的一行,所以有几对tr 表格就有几行。

4、<td>…</td>:表格的一个单元格,一行中包含几对<td>...</td>,说明一行中就有几列。

- 常用属性: colspan:规定单元格可横跨的列数,值为数字 rowspan:规定单元格可横跨的行数,值为数字

5、<th>…</th>:表格的头部的一个单元格,表格表头。

6、表格中列的个数,取决于一行中数据单元格的个数。

总结:

  • 1、表头,也就是th标签中的文本默认为粗体并且居中显示
  • 2、table表格在没有添加css样式之前,在浏览器中显示是没有表格线的
  • 3、用css样式,为表格加入边框Table 表格在没有添加 css 样式之前,是没有边框的。

16.<caption>标签

表格还是需要添加一些标签进行优化,可以添加标题和摘要。

  • 摘要

摘要的内容是不会在浏览器中显示出来的。它的作用是增加表格的可读性(语义化),使搜索引擎更好的读懂表格内容,还可以使屏幕阅读器更好的帮助特殊用户读取表格内容。语法:

<table summary="表格简介文本">
  • 标题

用以描述表格内容,标题的显示位置:表格上方。语法:

<table> 
 <caption>标题文本</caption> 
 <tr> 
 <td>…</td> 
 <td>…</td> 
 … 
 </tr> 
 … 
</table>

17.<a>标签

  • _blank --在新窗口中打开链接
  • _parent --在父窗体中打开链接
  • _self --在当前窗体打开链接,此为默认值
  • _top --在当前窗体打开链接,并替换当前的整个窗体(框架页)
  • 一个对应的框架页的名称 -在对应框架页中打开
  • href:Hypertext Reference的缩写。意思是超文本引用。
  • 使用<a>标签可实现超链接,它在网页制作中可以说是无处不在,只要有链接的地方,就会有这个标签。语法:
 <a href="目标网址" title="鼠标滑过显示的文本">链接显示的文本</a>

例如:

 <a href="http://www.imooc.com" title="点击进入慕课网">click here!</a>

上面例子作用是单击click here!文字,网页链接跳转到http://www.imooc.com这个网页。

  • <a>标签在默认情况下,链接的网页是在当前浏览器窗口中打开,有时我们需要在新的浏览器窗口中打开。如下代码:
 <a href="目标网址" target="_blank">click here!</a>
  • title属性的作用,鼠标滑过链接文字时会显示这个属性的文本内容。这个属性在实际网页开发中作用很大,主要方便搜索引擎了解链接地址的内容(语义化更友好)。
  • 注意:还有一个有趣的现象不知道小伙伴们发现了没有,只要为文本加入a标签后,文字的颜色就会自动变为蓝色(被点击过的文本颜色为紫色),颜色很难看吧,不过没有关系后面我们学习了css样子就可以设置过来(a{color:#000}),下面会详细讲解。
  • 使用mailto在网页中链接Email地址

<a>标签还有一个作用是可以链接Email地址,使用mailto能让访问者便捷向网站管理者发送电子邮件。

注意:如果mailto后面同时有多个参数的话,第一个参数必须以“?”开头,后面的参数每一个都以“&”分隔。引号只有一对!

例子:
<a href="mailto:yy@qq.com? cc=xx@qq.com & bcc=aa@qq.com & subject=邮件主题 & body=邮件内容">
  • 如果:A 发送邮件给B1、B2、B3,抄送给C1、C2、C3,密送给D1、D2、D3。
那么:
1)A知道自己发送邮件给了B1、B2、B3,并且抄送给了C1、C2、C3,密送给了D1、D2、D3。
2)B1知道这封是A发送给B1、B2、B3的邮件,并且抄送给了C1、C2、C3,但不知道密送给了D1、D2、D3。
3)C1知道这封是A发送给B1、B2、B3的邮件,并且抄送给了C1、C2、C3,但不知道密送给了D1、D2、D3。
4)D1知道这封是A发送给B1、B2、B3的邮件,并且抄送给了C1、C2、C3,而且密送给了自己,但不知道密送给了D2、D3。
5)邮箱地址
 mailto: <a href="mailto:qiujie@staff.weibo.com">发送</a>
6)抄送地址
cc: <a href="mailto:qiujie@staff.weibo.com?cc=zz@sina.com">发送</a>
7)密件抄送地址
用分号分隔: <a href="mailto:qiujie@staff.weibo.com?bcc=zz@sina.com">发送</a>
8)多个收件人、抄送人、密送人 ;
bcc: <a href="mailto:qiujie@staff.weibo.com;zz@sina.com">发送</a>
9)邮件主题
subject: <a href="mailto:qiujie@staff.weibo.com?subject=邮件主题">发送</a>
10)邮件内容
body: <a href="mailto:qiujie@staff.weibo.com?body=邮件正文">发送</a>
例子:
<a href="mailto:yy@imooc.com;10001@qq.com?cc=10002@qq.com&bbc=madanteng@qqhelp.com&subject=观了不起的盖茨比有感。&body=你好,对此评论有些想法。">对此影评有何感想,发送邮件给我</a>

18.<img>标签

在网页的制作中为使网页炫丽美观,肯定是缺少不了图片,可以使用

标签来插入图片。

  • 语法:
 [站外图片上传中……(2)] <img src = "myimage.gif" alt = "My Image" title = "My Image" />
  • 讲解:
src:标识图像的位置;
alt:指定图像的描述性文本,当图像不可见时(下载不成功时),可看到该属性指定的文本;
title:提供在图像可见时对图像的描述(鼠标滑过图片时显示的文本);
图像可以是GIF,PNG,JPEG格式的图像文件。
路径有两种填写方式:绝对路径、相对路径
相对路径:相对于我们当前 html 文件的位置来写路径即可!
./表示当前目录,../表示上一级目录

19.<form>标签

注意:

1、所有表单控件(文本框、文本域、按钮、单选框、复选框等)都必须放在<form></form>标签之间(否则用户输入的信息可提交不到服务器上哦!)。

2、method:post/get的区别这一部分内容属于后端程序员考虑的问题。

  • 网站怎样与用户进行交互?答案是使用HTML表单(form)。表单是可以把浏览者输入的数据传送到服务器端,这样服务器端程序就可以处理表单传过来的数据。

语法:

<form method="传送方式" action="服务器文件">
  • 讲解:
<form> :<form>标签是成对出现的,以<form>开始,以</form>结束。
action :浏览者输入的数据被传送到的地方,比如一个PHP页面(save.php)。
method : 数据传送的方式(get/post)。
 <form method="post" action="save.php"> 
 <label for="username">用户名:</label> 
 <input type="text" name="username" /> 
 <label for="pass">密码:</label> 
 <input type="password" name="pass" /> 
 </form>

20.<input>标签

  • 当用户要在表单中键入字母、数字等内容时,就会用到文本输入框。文本框也可以转化为密码输入框。

语法:

 <form> 
 <input type="text/password" name="名称" value="文本" /> 
 </form>
  • 属性:
举例:
 <form> 
 姓名: <input type="text" name="myName"/><br/> 
 密码: <input type="password" name="pass"/> 
 </form>
 value="xxx" 替换为 placeholder="xxx" 的体验更好一些,placeholder属性为 HTML 5 的新属性。placeholder 属性提供可描述输入字段预期值的提示信息(hint)。该提示会在输入字段为空时显示,并会在字段获得焦点时消失。

语法:

<input placeholder="text"/>
注释:placeholder 属性适用于以下的 <input> 类型:text, search, url, telephone, email 以及 password。

注意:同一组的单选按钮,name 取值一定要一致,比如上同一个名称“gender”,这样同一组的单选按钮才可以起到单选的作用!

type:

  • 当type="text"时,输入框为文本输入框;
  • 当type="password"时, 输入框为密码输入框。
  • hidden 定义隐藏输入字段
  • image 定义图像作为提交按钮
  • number 定义带有 spinner 控件的数字字段
  • password 定义密码字段。字段中的字符会被遮蔽
  • radio 定义单选按钮
  • checkbox 定义复选框按钮
  • range 定义带有 slider 控件的数字字段
  • reset 定义重置按钮。重置按钮会将所有表单字段重置为初始值
  • search 定义用于搜索的文本字段
  • submit 定义提交按钮。提交按钮向服务器发送数据
  • text 默认。定义单行输入字段,用户可在其中输入文本。默认是 20 个字符
  • url 定义用于 URL 的文本字段

name:为文本框命名,以备后台程序ASP 、PHP使用。

value:为文本输入框设置默认值。(一般起到提示作用)

21.<textarea>标签

  • 当用户需要在表单中输入大段文字时,需要用到文本输入域。

语法:

 <textarea rows="行数" cols="列数">文本</textarea>
  1. <textarea>标签是成对出现的,以<textarea>开始,以</textarea>结束。
  2. cols :多行输入域的列数。
  3. rows :多行输入域的行数。
  4. 在<textarea></textarea>标签之间可以输入默认值。

举例:

 <form method="post" action="save.php"> 
 <label>联系我们</label> 
 <textarea cols="50" rows="10" >在这里输入内容...</textarea> 
 </form>

22.<select>标签

  • 使用下拉列表框,节省空间。下拉列表在网页中也常会用到,它可以有效的节省网页空间。既可以单选、又可以多选。

语法:

 <select> 
 <option value="提交的值">显示的值</option> ... 
 </select>
 设置selected="selected"属性,则该选项就被默认选中。 
 selected="selected"
  • 若想实现多选
<select multiple="multiple"> 然后选择时候按ctrl点鼠标选中
  • 若想让某个选项不可选
<option disabled="disabled">
  • optgroup 标签

把相关的选项组合在一起

属性 label:给选项组命名

属性 disabled:禁用该选项组

23.<label>标签

  • label标签不会向用户呈现任何特殊效果,它的作用是为鼠标用户改进了可用性。如果你在 label 标签内点击文本,就会触发此控件。就是说,当用户单击选中该label标签时,浏览器就会自动将焦点转到和标签相关的表单控件上(就自动选中和该label标签相关连的表单控件上)。
  • 语法:
 <label for="控件id名称">

注意:标签的 for 属性中的值应当与相关控件的 id 属性值一定要相同。

  • 例子:
 <form> 
 <label for="male">男</label> 
 <input type="radio" name="gender" id="male" /> <br /> 
 <label for="female">女</label> 
 <input type="radio" name="gender" id="female" /> 
 <label for="email">输入你的邮箱地址</label> 
 <input type="email" id="email" placeholder="Enter email"> 
 </form>

24.<map>标签

使用 map 标签可以给图片某块区域加超链接

使用方法:

1)为 map 标签首先加上 id 属性用来为 map 标签定义一个唯一的名称

2)为了保证兼容性再加上 name 属性,属性值与 id 的值相同

3)为 map 标签所作用的图片加上 usemap 属性,属性值为 #id 名称

4)在 map 标签内嵌套 area 标签来实现给指定区域加链接

 <area shape="" coords="" href ="" alt="" />
 shape 属性:定义链接区域的形状,常用值 rect、circle
 coords 属性:确定区域的精确位置。填写坐标即可,以父元素左上角为原点,可借助qq截图来得到想要的坐标
 href 属性:填写链接地址即可
 alt 属性:给链接加一些说明信息

例子:

 <map id="img1" name="img1"> 
 <area shape="rect" coords="184,33,391,258" href="http:www.baidu.com" alt="百度一下" target="_blank" /> 
 <area shape="circle" coords="507,287,20" href="http://www.sifangku.com" alt="私房库我的博客" target="_blank" /> 
 </map>

注意:

  1. 第一个coords的四个参数中,前两个参数为矩形的接近原点的顶角的坐标,后两个参数为对角的坐标。
  2. 第二个coords的三个参数中,前两个为圆心坐标,第三个参数为圆的半径。

25.<iframe>标签

创建包含另外一个文档的内联框架(即行内框架)

属性:

  • frameborder

值:1、0

作用:规定是否显示框架周围的边框。

  • width值:以像素计的宽度值、以包含元素百分比计的宽度值

作用:定义 iframe 的宽度

  • height

作用:定义高度

  • name

作用:给 iframe 命名

  • scrolling

值:yes、no、auto

作用:规定是否在 iframe 中显示滚动条

  • src

作用:规定在 iframe 中显示的文档的 URL

可以是本地的 html 文件,也可以是远程的 html 文件

标签写法与嵌套的讨论


标签写法

  • 元素标记的省略(在 html5 里面有的标记是可以省略不写的)

1)不允许写结束标签的元素

area,base,br,col,command,embed,hr,img,input,keygen,link,meta,paran,source,track,wbr。这些标签都是单标签例如:br 标签,不可以这样<br></br>,只能<br />这样来关闭标签。

2)可以省略结束标记的元素有:

 li,dt,dd,p,rt,rp,optgroup,option,colgroup,thead,tbody,tfoot,tr,td,th。

3)可以省略全部标记的元素有

 html,head,body,colgroup,tbody
  • 具有 boolean 值得属性
 例如:disabled,readonly,checked 等只写属性而不写属性值得时候当做 ture
 不写属性表示 false
  • 属性值的引号可以省略
 要求:属性值不包含 空字符串,<,>,=, ‘

标签嵌套探讨


1.html 规定我们必须要嵌套着写的标签

例如:页面头部是嵌套在 head 标签里面的,主体内容都是嵌套在 body 标签里面的表单的内容是嵌套在 form 标签里面的,dt、dd 是嵌套在 dl 标签里面的,li 是嵌套到ul 标签里面的,等等...

2.块级元素可以嵌套内联元素,但是内联元素不能包含块元素

<div>
 <span>我是一个 span 元素</span>
 </div> —— 对 
<span>
 <div>div 元素</div>
</span> —— 错

3.内联元素可以嵌套内联元素

<a href="#">
 <span></span>
</a> —— 对

4.块级元素与块级元素嵌套注意点

  • div 块级元素是一个容器,几乎可以存放任何常用标签,包括自己,我们为什么要使用 div 来嵌套标签?这个问题可以用用我们国家的省份划分来解释,国家需要划分不同的省份来利于管理,那么我们 html 页面也是的,整个 html 文档元素太多,我们需要使用 div 标签将页面划分成不同的块,这样可以对每块进行分开管理,学完 css 我们就知道怎么进行管理了。
  • 块级元素不能放在 p 标签里面
<p><ol><li></li></ol></p> —— 错 <p><div></div></p> —— 错
  • li 内可以包含 div 标签,li 和 div 标签都是装载内容的容器,地位平等,没有级别之分(例如:h1、h2 这样森严的等级制度) ,要知道 li 标签连它的父级 ul 或者是 ol 都可以容纳的

喜欢前端的小伙伴们可以在评论区留言,寻找和小冯童鞋一样热爱前端的友人,让我们一起玩转前端的世界!



HTML 是什么?
htyper text markup language 即超文本标记语言。
超文本: 就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。
标记语言: 标记(标签)构成的语言。
什么是标签:
是由一对尖括号包裹的单词构成 例如: <html> *所有标签中的单词不可能以数字开头.
标签不区分大小写.<html> 和 <HTML>. 推荐使用小写.
标签分为两部分: 开始标签<a> 和 结束标签</a>. 两个标签之间的部分 我们叫做标签体.
有些标签功能比较简单.使用一个标签即可.这种标签叫做自闭和标签.例如: <br/><hr/><input/><img/>
标签可以嵌套.但是不能交叉嵌套. <a><b></a></b>
标签的属性:
通常是以键值对形式出现的. 例如 name="nick"
属性只能出现在开始标签 或 自闭和标签中.
属性名字全部小写. *属性值必须使用双引号或单引号包裹 例如 name="nick"
如果属性值和属性名完全一样.直接写属性名即可. 例如 readonly
HTML5基本结构:
将HTML4中的DTD定义为如下结构即可,其他不变。
<!DOCTYPE HTML>
HTML5支持的两种指定页面使用的字符集的方式:
使用Content-Type指定字符集
<meta http-equiv="Content-Type" content="text/html ;charset=UTF-8"/>
直接使用charset指定字符集
<meta charset="UTF-8">
<head> 标签
<title>
<title>Title</title>
<base/>
标签为页面上的所有链接规定默认地址或默认目标。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<base href="http://p_w_picpaths.cnblogs.com/cnblogs_com/suoning/845162/"/>
<base target="_blank" />
</head>
<body>
<img src="o_s.png" alt="图片加载失败。。。"/>
<a href="http://cnblogs.com/suoning/">nick blogs</a>
</body>
</html>
# 上面这段代码中,<img>标签的src属性是一个相对路径,因为<head>中通过base标签设置了链接的默认地址,
所以img的src实际的地址是“http://p_w_picpaths.cnblogs.com/cnblogs_com/suoning/845162/o_s.png”。
同样的,<a>中只是指定了href,并未指定target属性,所以也会使用base中设置的target属性的值。
<link/>
引用外部文档,常见于引用外部样式。重要属性有三个:rel、href、type。
rel 规定文档与被链接文档之间的关系。
rel="dns-prefetch" 预先解析缓存文档中使用的域名,目的是为了提高网页访问速度。使用场景:在一个网页频繁使用其他域名资源时。
rel="shortcut icon"或rel="icon" 在收藏和标题栏上用于显示的图标。示例:<link rel="icon" href="http://p_w_picpaths.cnblogs.com/cnblogs_com/suoning/845162/o_s.png">。注意:IE浏览器只支持ico格式,为了兼容IE,图片文件采用ico格式。
rel="stylesheet" 引用外部样式表。
rel="nofollow" 用于指示搜索引擎不要追踪(爬虫抓取),减少垃圾链接。用于<a>标签,使用场景:网页不被信任或是不希望呗搜索引擎录入的网站。
href 资源的路径(相对路径/绝对路径)。
type 规定被连接文档的MIME类型,用于明确文件的打开方式。例如:.ico文件 p_w_picpath/x-icon。
<meta/>
定义关于HTML文档的元数据。 重要的属性有三个:http-equiv、name、content
http-equiv 把content属性值关联到http头部。
Content-Type(浏览器接受的文档类型,一般是text/html)
refresh(网页刷新,以秒为单位)
expires(设定网页到期时间,一旦过期,必须到服务器上重传)
<meta http-equiv="Content-Type" content="text/html ;charset=UTF-8"/>
<meta http-equiv="Refresh" content="2">
<meta http-equiv="Refresh" content="2;URL=https://www.baidu.com">
<meta http-equiv="expires" content="6 Jun 2016"/>
name 把content属性关联到一个名称。
keywords(搜索关键字,用于搜索引擎抓取信息的显示)
description(搜索到网站后显示的网页内容简描述)
author(站点制作者信息)
generator(用以说明生成工具)
name也可以根据特定的功能自定义,在新浪网中有使用360认证和搜狐认证(<meta name="360-site-verification"content="63349**********"/>、<meta name="sogou_site_verification"content="BVI*******"/>)。
<meta name="keywords" content="搜索关键字">
<meta name="description" content="简要描述">
<meta name="author" content="http://cnblogs.com/suoning">
<meta name="generator" content="用以说明生成工具">
content 定义与http-equiv或name属性相关的元信息,是必要的属性。
<body> 标签
1、块级标签和内联标签
块级标签:<p><h1><table><ol><ul><form><div>
内联标签:<a><input><img><sub><sup><textarea><span>
block(块)元素的特点
① 总是在新行上开始;
② 高度,行高以及外边距和内边距都可控制;
③ 宽度缺省是它的容器的100%,除非设定一个宽度。
④ 它可以容纳内联元素和其他块元素
inline(内联)元素的特点
① 和其他元素都在一行上;
② 高,行高及外边距和内边距不可改变;
③ 宽度就是它的文字或图片的宽度,不可改变
④ 内联元素只能容纳文本或者其他内联元素
对行内元素,需要注意如下
设置宽度width 无效。
设置高度height 无效,可以通过line-height来设置。
设置margin 只有左右margin有效,上下无效。
设置padding 只有左右padding有效,上下则无效。注意元素范围是增大了,但是对元素周围的内容是没影响的。
2、基本标签
<h1>~<h6> 标题标签.
<p>: 段落标签. 包裹的内容被换行.并且也上下内容之间有一行空白.
    style="text-indent: 2em"可以设置样式为首行缩进两个字符。
    <blockquote></blockquote>可以用来设置整个段落的缩进。
<b> <strong>: 加粗标签.
<strike>: 为文字加上一条中线.
<u>: 文字下方加下划线.
<em> <i>: 文字变成斜体.
<sup>和<sub>: 上角标 和 下角标.
<br>:换行.
<hr>:水平线.
<div>
块级标签。块级标签常用于布局,行级标签常用语显示内容。
   div的显示通常使用id或class来标识。id为唯一的标签标识,class为标签的类标识。
   div的大小是由内容来决定的,默认情况下,高度由内容的高度决定,宽度适应屏幕。
   可以容纳其他元素,是一个容器。
<span>
3、特殊符号
  > >
  < <
   空格
  " 引号
  © 版权符号
特殊符号 符号码
" " ;
& & ;
< < ;
> > ;
© ;
® ;
± ± ;
× × ;
§ § ;
¢ ;
¥ ;
· · ;
&euro ;
£ ;
&trade ;

4、<a> 超链接标签(锚标签)
重要属性有三个:href、target、name
href 超链接地址:可以是Web上任意资源,包括图片,网页,样式,脚本文件等。href="#"时,表示被链接页面就是当前页面。
target 文档打开时要显示的目标位置,属性值一般有:_blank(新窗口中打开)、_self(默认,在超链接所在的容器中打开)、_parent(在超链接的父容器中打开)、_top(整个容器中打开)、name(框架名称)。
name 锚记名称。作用:跳转到文档的某个地方。返回首页。
# 跳转网页
<a href="http://cnblogs.com/suoning" target="_blank">Nick Blogs</a>
# 跳转锚记书签名称
<a name="top"><h3>Top!</h3></a>
<div style="height: 800px"></div>
<a href="#top">top</a>
1.标签最简式
<a href="mailto:xxx@xx.com">邮件联系</a>
2.标签帮你填抄送地址
<a href="mailto:xxx@xx.com?cc=xxxx@xx.com">邮件联系</a>
3.标签帮你填暗送地址
<a href="mailto:xxx@xx.com?bcc=xxxx@xx.com">邮件联系</a>
4.暗,抄
<a href="xxxxx@xx.com">邮件联系</a>
5.标签帮你填主题
<a href="mailto:xxx@xx.com?subject=这是主题">邮件联系</a>
6.填邮件内容
<a href="mailto:xxx@xx.com?body=这是内容">邮件联系</a>
7.多址发送
<a href="mailto:xxx@xx.com,xxxx@xx.com">邮件联系</a>
# http://shang.qq.com/v3/widget.html
<a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=630571017&site=qq&menu=yes"><img border="0" src="http://wpa.qq.com/pa?p=2:630571017:51" alt="点击这里给我发消息" title="点击这里给我发消息"/></a>
<a href="tencent://message/?uin=630571017" target="_blank"><img style="border:0px;" src=http://wpa.qq.com/pa?p=1:707321921:13></a>
# 更多图片地址如下:
# http://wpa.qq.com/pa?p=1:707321921:1
# http://wpa.qq.com/pa?p=1:707321921:2
# http://wpa.qq.com/pa?p=1:707321921:3
# http://wpa.qq.com/pa?p=1:707321921:4
# http://wpa.qq.com/pa?p=1:707321921:5
# http://wpa.qq.com/pa?p=1:707321921:6
# http://wpa.qq.com/pa?p=1:707321921:7
# http://wpa.qq.com/pa?p=1:707321921:8
# http://wpa.qq.com/pa?p=1:707321921:9
# http://wpa.qq.com/pa?p=1:707321921:10
# http://wpa.qq.com/pa?p=1:707321921:11
# http://wpa.qq.com/pa?p=1:707321921:12
# http://wpa.qq.com/pa?p=1:707321921:13
5、<img> 图形标签
行级标签,用来显示图片。
重要属性有:src、title、alt、width、height、align。
src 图片地址。
title 鼠标悬浮在图片上的文字。
alt 图片找不到时要替换的文字。如果图片资源使用的是外网资源,则不会显示要替换的文字。如果使用的是本网站的资源(相对路径给出),则找不到图片时会显示替换的文字,并保留图片设置的宽高结构。
align 图片周围文字的垂直对齐情况。常用的属性值有:top(与图片的顶部对齐)、middle(与图片的中部对齐)、bottom(默认,与图片的底部对齐)。
width 图片的宽
height 图片的高 (宽高两个属性只用一个会自动等比缩放.)
<img src="http://p_w_picpaths.cnblogs.com/cnblogs_com/suoning/845162/o_ns.png" alt="图片加载失败。。。" title="The knife girl, kiss"/>
6、列表标签 
<ul> :无序列表标签
<li>:列表中的每一项.
<ol> :有序列表标签
<li>:列表中的每一项.
<li>主要的属性有:type、value两个:
type指明项目的类型,属性值有:A,a,I,i,1,disc(实心圆),square(实心正方形),circle(空心圆)。
value表示序号值从几开始。
<dl> 定义列表
<dt> 列表标题
<dd> 列表项
<ur>
<li type="circle">A</li>
<li type="1">B</li>
<li type="1">C</li>
</ur>
<ol>
<li value="3">3</li>
<li>4</li>
</ol>
<dl>
<dt><i>标题</i></dt>
<dd>第一项</dd>
<dd>第二项</dd>
<dd>第三项</dd>
</dl>
  
7、<table> 表格标签
<table border="1">
<thead>
<tr>
<th>序号</th>
<th>姓名</th>
</tr>
</thead>
<tbody>
<tr>
<th>1.</th>
<td>nick</td>
</tr>
<tr>
<th>2.</th>
<td>jenny</td>
</tr>
</tbody>
</table>
<table> 表格标签
border:(表格边框)
align(水平对齐方式)
bgcolor(背景颜色)
cellpadding(内边距,单元格与内容之间的距离)
cellspacing(外边距,单元格的间距,设置为0时,表格变为实线表格)
width(表格的宽度,可以用%或者像素,最好通过css来设置长宽)
<caption> 表格的标题
<tr> 表格的数据行,table row
<th> 表格的表头名称,与<td>不同在于文字采用加粗居中的形式显示,table head cell
<td> 单元格,用来显示表格内容,table data cell
<thead> 表格头部,使结构更加分明
<tbody> 表格主体部分,使结构更加分明
rowspan 单元格竖跨多少行,作用在th或者td上
colspan 单元格横跨多少列(即合并单元格),作用在th或者td上
<table>
<caption>xxxxxxxxxx</caption>
<thead>
<tr>
<th>序号</th>
<th>姓名</th>
<th>年龄</th>
<th>女神</th>
</tr>
</thead>
<tbody>
<tr>
<th>1.</th>
<td>nick</td>
<td>18</td>
<td>可可西</td>
</tr>
<tr>
<th>2.</th>
<td>jenny</td>
<td>21</td>
<td>nick!!!</td>
</tr>
</tbody>
</table>
8、<form>表单标签
表单属性
HTML 表单用于接收不同类型的用户输入,用户提交表单时向服务器传输数据,从而实现用户与Web服务器的交互。表单标签, 要提交的所有内容都应该在该标签中。
属性:action、method、enctype
action 表单要提交的地址,用于处理表单的内容(一般是提交字典到后台的一个接口,这个接口是java写成的,提交到这个接口后后台就知道如何处理这些数据了)。
method 提交的方法,默认是get方式提交。
get: 1.提交的键值对.放在地址栏中url后面. 2.安全性相对较差. 3.对提交内容的长度有限制.
post:1.提交的键值对不在地址栏. 2.安全性相对较高. 3.对提交内容的长度理论上无限制.
enctype 对表单数据进行编码,默认都是要编码的。格式为:application/x-www-form-urlencoded(表单默认的编码格式,表单发送前对所有字符进行编码。编码规则:空格转换为“+”号,特殊符号转换为ASC HEX值)。提交普通的文本内容到服务器就可以采用这种默认的编码方式。当你需要提交的是一个文件时,编码就需要采用另一种格式:multipart/form-data(不对字符编码,文件上传时使用)。text/plain(是一种纯文本编码,空格转换为“+”号,但是不对特殊字符进行编码)。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="https://www.baidu.com/s">
<input type="text" name="wd">
<input type="submit" value="百度一下">
</form>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="https://www.sogou.com/web">
<input type="text" name="query">
<input type="submit" value="搜狗搜索">
</form>
</body>
</html>
表单元素
<input> type 属性:
text 文本框输入(默认text文本框类型)。
autocomplete(自动完成输入的内容,要求表单元素要有name属性才有自动完成的效果,off表示自动完成不可用,on表示自动完成可用)
disabled(设置或者获取控件的状态,默认是false即可用,等于true时不可用,不能输入内容)
    password 密码框。(以下属性text和password共有)
size(指定表单元素的初始宽度。当type为text或password时,表单元素的大小以字符为单位,对于其他元素,宽度以像素为单位)
maxlength(type为text或password时,表示输入的最大字符数),有利于防止sql的注入攻击
readonly 只读. 
      placeholder 框内预置内容(灰色),写上内容时才消失
radio 单选按钮。属性:
name(将name的值设置为相同值,才表示一组数据,才能实现单选功能)
value(必须要写,提交到服务器的key值,实际开发过程中value一般是编号)
checked(是否被选中的状态)
checkbox 复选框。
name(名字一定要一样一样的,才表示是一组数据,添加到同一value值列表提交到服务器)
value(必须要写,提交到服务器的key值,实际开发过程中value一般是编号)
checked(是否被选中的状态)
file 文件域,上传文件(不同的浏览器表现形式不同)
    submit 提交按钮。用于提交表单。
    reset 重置按钮。清空表单的输入,恢复到表单默认的状态。
button 普通按钮。一般结合javascript使用。
    p_w_picpath 图片按钮,用来提交表单,与submit是一样的效果。
src(图片路径)
    hidden 隐藏字段。
value(隐藏的内容)
    color 颜色标签。value指定颜色值(采用#十六进制数表示)。
    date 日期。value值指定默认的日期,格式为****-**-**(年月日)。
    datetime-local 显示本地时间,value值指定默认的时间,格式为2016-05-20T11:10:10(年月日T时分秒)。
    number 数字向上或者向下滑动。可以填数字然后向上或者向下选择不同的值。
    range 滑动标签。min(指定最小值)、max(指定最大值)、value(指定当前默认值)。
    week 每年的周数。value指定哪一年第几周,格式为2016-W25(2016年第25周)。
<textarea> 文本域标签。默认表现形式是可以输入很多行文本的文本框。
name (表单提交项的key)
    cols(设置文本域宽度)
rows(设置文本域高度,即行数)
<select> 下拉框标签。使用时要结合<option>子标签一起使用。
name:表单提交项的key
size:选项个数
multiple:多选
<option> 下拉选中的每一项
value(表单提交项的值)
selected(selected下拉选默认被选中)
<optgroup>为每一项加上分组
<label> 把元素与文本结合起来
友好设计:不只是选中复选框才能选中并打钩,要求点击对应的文字也能选中该复选框。
这种情况下要用到<label>标签的for属性(设置或获取给定标签对象指定到的对象,值=另一个元素的id号即可)
<label for="name">姓名</label>
<input id="name" type="text">
<fieldset> 对表单中的相关元素进行分组
<fieldset>
<legend>温馨提示</legend>
<div align="middle">不要忘记点赞哦 ==</div>
</fieldset>
value: 表单提交项的值
对于不同的输入类型,value 属性的用法也不同:
type="button", "reset", "submit" - 定义按钮上的显示的文本
type="text", "password", "hidden" - 定义输入字段的初始值
type="checkbox", "radio", "p_w_picpath" - 定义与输入相关联的值
框架
<frameset> 框架
用来划分窗体,不能放在<body>中,否则没有效果。
cols (纵向分割页面。其数值表示方法有三种:“30%、30(或者30px)、*”;数值的个数代表分成的视窗数目且数值之间用“,”隔开。“30%”表示该框架区域占全部浏览器页面区域的30%;“30”表示该区域横向宽度为30像素;“*”表示该区域占用余下页面空间。例如:cols="25%,200,*" 表示将页面分为三部分,左面部分占页面30%,中间横向宽度为200像素,页面余下的作为右面部分。)
rows(横向分割页面。属性和cols一样)
frameborder(设置是否显示框架边框。设定值只有0、1;0 表示不要边框,1 表示要显示边框)
border(框架之间的距离,一般设置为0)
bordercolor(边框的颜色)
framespacing(设置框架与框架间的保留的空白距离)
<frameset cols="40%,*,*"> 第一个框架占整个浏览器窗口的40%,剩下的空间平均分配给另外两个框架。
<frameset cols="*,*,*,*"> 浏览器窗口等分为四部分。
<iframe> 框架
元素会创建包含另外一个文档的内联框架(即行内框架)
name (设置框架名称。此为必须设置的属性)
src (设置此框架要显示的网页名称或路径。此为必须设置的属性)
scrolling (设置是否要显示滚动条。设定值为auto, yes, no)
bordercolor (设置框架的边框颜色)
frameborder (设置是否显示框架边框。设定值只有0、1;0 表示不要边框,1 表示要显示边框)
noresize (设置框架大小是否能手动调节)
marginwidth (设置框架边界和其中内容之间的宽度)
marginhight (设置框架边界和其中内容之间的高度)
width(设置框架宽度)
height (设置框架高度)