整合营销服务商

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

免费咨询热线:

《小白HTML5成长之路31》半透明背景的弹窗是怎么用CSS布局的

方的冬天最怕有风,空气虽然好了,但是异常的冷,吸几口冷风感觉肺都结了冰。一大早小白来到办公室琢磨用户交互方面的问题,看了几个网站发现很多网站的弹窗都是自定义的,而且还把弹窗周围的区域做成了半透明状,看上去非常不错。于是小白也准备自己通过css布局一个弹窗试试,一来以后肯定会用上这个功能,二来熟悉一下最近掌握的CSS+HTML布局。

说干就干,小白打开webStrom做起了弹窗的布局。他首先用一个容器layer作为弹窗的容器,然后里面放了窗口容器(dialog),窗口容器里面还包含了三个子容器,分别是标题(layerTitle)、内容区域(layerContent)、按钮区域(layerBTContainer)。

小白想:“layer要充满并遮挡整个浏览器窗口,而且滚动页面它还得一直保持遮挡的状态,把它设置为浮动类型(position:fixed)的容器最合适。里面的dialog需要保持在浏览器的最中心位置,因此最好把dialog设置成固定宽度和高度,这样可以很好的实现居中。”,于是小白先把layer和dialog以及dialog内部的容器设定了一个初步的CSS样式。

layer的position设置为fixed,上下左右距离都设置成0,就可以达到占用整个窗口。里面的dialog容器小白根据刚学习的CSS溢出法让dialog上下都居中。dialog如果是绝对定位,设置上下左右距离都为0它会占用整个父容器区域,但是如果CSS中限制了dialog的宽和高并且设置了marin为auto,它就会基于父容器居中

为了测试transition属性,小白还把确定按钮上面设置了一个鼠标移上去以后渐变的效果,做完以后就是这个样子:

看到布局好的弹窗小白心里非常高兴,突然他想到一个问题,这个弹窗背景还没设置半透明,于是赶紧往layer上增加了opacity:0.5这个半透明属性,小白满怀信息的刷新了页面,当看到结果时小白发现背景和窗口都变成了半透明。

正好这时老朱从小白身边经过,随口跟小白说了一句:“小白,你是不是把窗口的父容器设置成半透明了?”

“是啊!父容器背景是黑色,所以我把父容器设置成了半透明!”

“可是父容器设置半透明会对他的子元素产生影响啊,这样会导致它里面的所有元素都变成半透明,你为啥不给窗口添加一个兄弟容器来实现这个效果呢?”

小白仔细想了想,说道:“哦!我明白了,我可以在layer容器里面放一个跟layer一样大的容器,这样就不会冲突了,我再试试!”

不一会小白找到老朱,说道:“我改好了,现在我给dialog添加了一个layerbg容器作为背景层,然后把layer之前的背景色和透明度去掉,放到了新增加的背景层上面,背景层高和宽与layer一样所以这样就不会把dialog也变成半透明了。你看看效果。”

老朱说:“嗯!不错,你现在通过HTML和CSS布局的这个弹窗还能做很多完善,比如出现弹窗时增加一个动画效果、给它添加一个关闭按钮或者取消按钮等等。除了提示功能以外,你现在做的这个还能再进行深入修改,把它变成可以输入文字的prompt框,点击确定以后可以对页面或者数据库数据进行修改。”


想学H5的朋友可以关注老炉,您的关注是我持续更新《小白HTML5成长之路》的动力!


TML基础

HTML历史

早在1969年,美国就建立了世界上第一个电脑网络—阿帕网。但由于当时的电脑网络只是为了数据运算而建,与人们的日常生活相距甚远,故而网络的发展非常缓慢,直到1985年,连接在阿帕网上的电脑主机也只有1961台。

相对于电脑网络来说,网站的出现要晚得多。1989年,欧洲粒子物理实验室研究员Tim Berners-Lee,发明了一种用于网上交换文本的格式,即基于标记的语言HTML,并创建了网上软件平台World Wide Web(万维网)。HTML最吸引人的地方,在于其超文本链接技术,通过超链接,可以非常方便地跳转到其他任何一个网页上。万维网实现了媒体思想家特德·纳尔逊于1965年提出的超文本设想。万维网的出现,带动了网站的裂变式发展,到2006年11月,全球互联网网站总数就已经超过了一亿大关。

1990年11月,第一个Web服务器nxoc01.cern.ch开始运行,Tim Berners-Lee在自己编写的图形化Web浏览器“World Wide Web”上,看到了最早的Web页面。

而世界上第一个网站(当时的网址是http://nxoc01.cern.ch/hypertext/www/theproject.html)早在1992年就关闭了,然而幸运的是这一界面却被保留了下来,只要单击下面这个链接:Multiple Choices

HTML基础

HTML是目前在网络上应用最为广泛的语言,也是构成网页文档的主要语言。HTML文档是由HTML标签组成的描述性文本,HTML标签可以标识文字、图形、动画、声音、表格、链接等。

HTML语言作用

HTML作为一种网页内容标识语言,易学易懂,熟悉使用该语言可以制作功能强大、美观大方的网页。HTML语言的主要作用说明如下:

 使用HTMl语言标识文本。例如,定义标题文本、段落文本、列表文本、预定义文本等。

 使用HTML语言建立超链接,通过超链接可以访问互联网上的所有信息,当使用鼠标单击超链接时,会自动跳转到链接页面。

 使用HTML语言创建列表,把信息有序地组织在一起,以方便浏览。

 使用HTMl语言在网页中显示图像、声音、视频、动画等多媒体信息,把网页设计得更富冲击力。

 使用HTML语言可以制作表格,以方便显示大量数据。

 使用HTML语言制作表单,允许在网页内输入文本信息,执行其他用户操作,方便信息互动。

 HTML文档基本结构

HTML文档一般都应包含两部分:头部区域和主体区域。HTML文档基本结构由3个标签负责组织:<html>、<head>和<body>。其中<html>标签标识HTML文档,<head>标签标识头部区域,而<body>标签标识主体区域。一个完整的HTML文档基本结构如下:每个标签都是成对组成,第一个标签(如<html>)表示标识的开始位置,而第二个标签(如</html>)表示标识的结束位置。<html>标签包含<head>和<body>标签,而<head>和<body>标签是并列排列。

HTML基础

编写HTML文档时,必须遵循HTML语法规范。HTML文档实际上就是一个文本文件,它由标签和信息混合组成,当然这些标签和信息必须遵循一定的组合规则,否则浏览器是无法解析的。

HTML语言的规范条文不多,相信读者也很容易理解。从逻辑上分析,这些标签包含的内容就表示一类对象,也可以称为网页元素。从形式上分析,这些网页元素通过标签进行分隔,然后表达一定的语义。很多时候,我们把网页标签和网页元素混为一团,而实际上,网页文档就是由元素和标签组成的容器。

 所有标签都包含在“<”和“>”起止标识符中,构个标签。例如,<style>、<head>、<body>和<div>等。

 在HTML文档中,绝大多数元素都有起始标签和结束标签,在起始标签和结束标签之间包含的是元素主体。例如,<body>和</body>中间包含的就是网页内容主体。

 起始标签包含元素的名称,以及可选属性,也就是说元素的名称和属性都必须在起始标签中。结束标签以反斜杠开始,然后附加上元素名称。例如:

<tag>元素主体</ta

 元素的属性包含属性名称和属性值两部分,中间通过等号进行连接,多个属性之间通过空格进行分隔。属性与元素名称之间也是通过空格进行分隔。例如:

HTML常用标签

HTML定义的标签很多,下面对常用标签进行说明,随着读者学习不断深入,相信会完全掌握HTML所有标签的用法和使用技巧。

1.文档结构标签

文档结构标签主要用来标识文档的基本结构,主要标签说明如下。

 <html>...</html>:标识HTML文档的起始和终止。

 <head>...</head>:标识HTML文档的头部区域。

 <body>...</body>:标识HTML文档的主体区域。

文本格式标签

文本格式标签主要用来标识文本区块,并附带一定的显示格式,主要标签说明如下。

 <title>...</title>:标识网页标题。

 <hi>...</hi>:标识标题文本,其中i表示1、2、3、4、5、6,分别表示一级、二级、三级等标题。

 <p>...</p>:标识段落文本。

 <pre>...</pre>:标识预定义文本。

 <blockquote>...</blockquote>:标识引用文本。字符格式标签

字符格式标签主要用来标识部分文本字符的语义,很多字符标签可以呈现一定的显示效果。例如,加粗显示、斜体显示或者下划线显示等。

在HTML文档中,列表结构可以分为两种类型:有序列表和无序列表。无序列表使用项目符号来标识列表,而有序列表则使用编号来标识列表的项目顺序。

XHTML文档基本结构

完整的XHTML文档结构如下:

XHTML代码不排斥HTML规则,在结构上也基本相似,但如果仔细比较,它有两点不同。

定义文档类型

在XHTML文档第一行新增了<!DOCTYPE>元素。

声明命名空间

在XHTML文档根元素中必须使用xmlns属性声明文档的命名空间。xmlns是XHTML NameSpace的缩写,中文翻译为命名空间(也有人翻译为名字空间、名称空间)。命名空间是收集元素类型和属性名字的一个详细DTD,它允许通过一个URL地址指向来识别命名空间。

XHTML是HTML向XML过渡的标识语言,它需要符合XML规则,因此也需要定义名字空间。又因为XHTML 1.0还不允许用户自定义元素,因此它的命名空间都相同,就是“Er是根据XML语法简化而来的,因此它遵循XML文档规范。同时XHTML又大量继承HTML语言语法规范,因此与HTML语言非常相似,不过它对代码的要求更加严谨。遵循这些要求,对于培养良好的XHTML代码书写习惯是非常重要的。

 XHTML文档类型

XHTML 1.0支持3种DTD(型定义)声明:过渡型(Transitional)、严格型(Strict)和框架型(Frameset)。

1.过渡型

这种文档类型对于标签和属性的语法要求不是很严格,允许在页面中使用HTML 4.01的标签(符合XHTML语法标准)。过渡型DTD语句如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w1.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


2.严格型

这类文档类型对于文档内的代码要求比较严格,不允许使用任何表现层的标签和属性。严格型DTD语句如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

"http://www.w1.org/TR/xhtml1/DTD/xhtml1-strict.dtd">


在严格型文档类型中,以下元素将不被支持。

 center:居中(属于表现层)。

 font:字体样式,如大小、颜色和样式(属于表现层)。

 strike:删除线(属于表现层)。

 s:删除线(属于表现层)。

 u:文本下划线(属于表现层)。

 iframe:嵌入式框架窗口(专用于框架文档类型或过渡型文档)。

 isindex:提示用户输入单行文本(与input元素语义重复)。

 dir:定义目录列表(与dl元素语义重复)。

 menu:定义菜单列表(与ul元素语义重复)。

 basefont:定义文档默认字体属性(属于表现层)。

 applet:定义插件(与object元素语义重复)。

在严格型文档类型中,以下属性将不被支持。

 align(支持table包含的相关元素:tr、td、th、col、colgroup、thead、tbody、tfoot)。

 language。

 background。

 bgcolor。

 border(table元素支持)。

 height(img和object元素支持)。

 hspace。

 name(在HTML 4.01 Strict中支持,在XHTML 1.0 Strict中的form和img元素不支持)。

 noshade。

 nowrap。

 target。

 text、link、vlink和alink。

 vspace。

 width(img、object、table、col和colgroup元素支持)。

框架型

这是一种专门针对框架页面所使用的DTD,

实际上,DTD是一套关于标签的语法规则。DTD文件是一个ASCII的文本文件,后缀名为.dtd。利用DOCTYPE声明中的URL可以访问指定类型的DTD详细信息。例如,对于XHTML 1.0过渡型DTD的URL为http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd,在Dreamweaver中打开XHTML 1.0过渡型DTD文档,代码显示如图2.4所示。

XHTML 1.0过渡型DTD文档

一个DTD文档包含元素的定义规则,元素间关系的定义规则,元素可使用的属性、实体或符号规则。这些规则用于标签Web文档的内容。此外还包括了一些其他规则,它们规定了哪些标签能出现在其他标签中。文档类型不同,它们对应的DTD也不相同。

 DOCTYPE结构图

DOCTYPE声明中各个部分说明如下。

 顶级元素:指定DTD中声明的顶级元素类型,这与声明的SGML文档类型相对应。HTML文档默认顶级元素为html。

 可用性:指定正式公开标识符(FPI)是可公开访问的对象(PUBLIC)还是系统资源(SYSTEM)。默认为PUBLIC,SYSTEM系统资源包括本地文件或URL。

 注册:指定组织是否由国际标准化组织(ISO)注册。“+”(默认)表示组织名称已注册,“-”表示组织名称未注册。W3C是属于非注册的ISO组织,所以显示为“-”符号。

 组织:指定在!DOCTYPE声明引用的DTD(文档类型定义)的创建和维护的团体或组织的名称。HTML语言规范的创建和维护组织为W3C。

 类型:指定公开文本的类,即所引用的对象类型。HTML默认为DTD。

 标签:指定公开文本的描述,即对所引用的公开文本的唯一描述性名称,后面可附带版本号。HTML默认为HTML,XHTML默认为XHTML,后面跟随的是语言版本号。

 定义:指定文档类型定义,包含Frameset(框架集文档)、Strict(严格型文档)和Transitional(过渡型文档)。Strict(严格型文档)禁止使用W3C规范中指定将逐步淘汰的元素和属性,而Transitional(过渡型文档)可以包含除frameset元素以外的全部内容。

 语言:指定公开文本的语言,即用于创建所引用对象的自然语言编码系统。该语言定义已编写为ISO 639语言代码(两个字母要大写),默认为EN(英语)。

名字空间

在XHTML文档中,读者还需要注意另一个容易忽略的问题:给<html>标签定义名字空间。

HTML元信息

在HTML文档结构的头部区域,存储着文档的各种基本信,这些信息主要被浏览器所采用,不会显示在网页正文中。另外,搜索引擎也会检索这些信息,因此重视并设置这些头部信息将有助于提高网页的访问率。

TML针对不同的内容有不同类型的标记,这些标记是HTML5文档的基础,你知道有哪些吗?

1.单标记和双标记

为了方便学习和理解,通常将HTML5标记分为两大类,即双标记和单标记。

a.双标记:

双标记双标记也称为体标记,分为开始标记和结束标记,其基本语法为:

<标记名>内容</标记名>

如:

<p>我是一个双标记</p>

b.单标记:

单标记也称空标记,是指用一个标记就可以完整的描述某个功能,其基本语法为:

<标记名/>

如:

<hr/>

上面hr标记表示一条水平线,后面会提到

2.注释标记

注释标记是HTML的一种特殊标记,它是一段便于阅读理解的不需要在页面中显示的注释文字。其基本语法格式为:

<!-- 注释语句 -->

如:

<p>这是一段文本</p>   <!-- 这是注释文本,不会在页面中显示 -->

上图即为浏览器中的结果。

3.标记的属性

HTML标记的默认样式是无法满足页面开发的需求的,如果想要为某段文本设置特定的样式,就需要用到HTML标记的属性了,其基本语法格式为:

<标记名 属性1="属性值1" 属性2="属性值2" 属性3="属性值3"...>内容</标记名>

下面以一个例子来展示:

网页第一行是一个二级居中的标题,第二行是一个局中的段落,第三行是一个大小为2px,颜色为灰色的水平线,第四行是一段正常的段落,部分词语被加粗

<!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>
</head>
<body>
    <h2 align="center">我是居中的二级标题</h2> 
    <p align="center">我是居中的段落</p> 
    <hr size="2" color="#ccc"/>
    <p>我是一个正常的段落,这是<strong>关键字</strong>,其他的都是正常内容。<p/>
</body>
</html>

效果如图所示:

多学一招(键值对):

“键值对”简单地说即为对“属性”设置“值”

例如:

color = "red";width:"200px";

上面的color和width就相当于属性1和属性2,red和200px就是对应的属性值1和属性值2,如果顺序出错,是没有效果的

总结:

在HTML开始标记中,可以通过 属性=“属性值”的方式为标记添加属性,其中“属性”和“属性值”是以“键值对”的形式出现的

4.HTML5文档头部相关标记(拓展)

1.title

一个HTML文档只能含有一对<title></title>标记,<title></title>之间的内容将显示在浏览器窗口的标题栏中。

基本语法格式:

<title>网页标题名称</title>

2.meta

meta定义页面元信息:

设置网页关键字》》》<meta name=”keywords” content=”JAVA、php”/>

设置网页描述》》》<meta name=”description” content=”IT培训教育”/>

设置网页作者》》》<meta name=”author” content=”传智播客”/>

设置字符集》》》<meta http-equiv=”Content-Type” content=”text/htm; charset=utf-8l”/>

设置页面自动刷新与跳转》》》<meta http-equiv=”refresh” content=”10;url=http://www.itcast.cn”/>

3.link

基本语法格式:

<link 属性=”属性值” />

属性名

常用属性值

描述

href

URL

指定引用外部文档

rel

stylesheet

指定当前文档与引用外部文档的关系,该属性值通常为stylesheet,表示定义一个外部样式表

type

text/css

引用外部文档的类型为CSS

type

text/javascript

引用外部文档的类型为JavaScript脚本

4.style

基本语法格式:

<style 属性=”属性值”>样式内容</style>

在HTML中使用style标记时,常常定义其属性为type,相应的属性值为text/css,表示使用内嵌式的CSS样式