手机购彩

杭州网站设计:如何使用Web组件创建自己的HTML元素

2019.08.02 mf_web

178

Web组件目前正(zheng)兴奋地(di)被(bei)称为(wei)即将到来(lai)的(de)“ 网络开发的(de)构造(zao)转变(bian) ”,承诺永久地(di)重塑网页设计(ji)前景。大型企业正(zheng)在向前发展,将网络组件变(bian)为(wei)现实。Google和Mozilla都已逐(zhu)步推出(chu)原(yuan)生(sheng)浏览器支持。

你(ni)问的(de)(de)网(wang)页组(zu)件是(shi)什么(me)?杭州(zhou)网(wang)站(zhan)设计简而言之,Web组(zu)件为您(nin)提供了一种创建自(zi)己的(de)(de)自(zi)定义HTML元(yuan)(yuan)素的(de)(de)方(fang)法,这些元(yuan)(yuan)素可以执行您(nin)需要的(de)(de)任何内容。您(nin)可以将所有内容整理成漂亮,整洁的(de)(de)小(xiao)型(xing)自(zi)定义HTML元(yuan)(yuan)素,而不是(shi)使用详细(xi)标记,长(zhang)脚本(ben)和重复代(dai)码来(lai)加载(zai)您(nin)的(de)(de)网(wang)站(zhan)。

了解Web组件

了解(jie)Web组件如何允(yun)许(xu)自(zi)定义(yi)HTML元(yuan)素(su)的最(zui)简单(dan)方(fang)法是首先查看我们(men)已经从HTML5中了解(jie)的现有元(yuan)素(su):<video>标记。使用此元(yuan)素(su),您只(zhi)需几行(xing)代(dai)码(ma)即(ji)可放置视频,例如:

您可能只看到上面的几行HTML,但这里是<video>元素在幕后的真实情况:

默认(ren)情况下(xia),浏览器隐藏所有详细(xi)的代码,因此您(nin)不(bu)需要查看它或(huo)担心在您(nin)想要放置视频(pin)时编写(xie)它。你只重击在你<video>和(he)<source>标(biao)签,你是(shi)启动和(he)运行。 

以(yi)前,只有浏览器供应(ying)商才能以(yi)这种方式创(chuang)建元素。但(dan)想象一(yi)下,如(ru)果您(nin)可以(yi)将自己的(de)相(xiang)同方法(fa)用于(yu)其他(ta)类型的(de)内(nei)容吗? 

以图片(pian)(pian)幻(huan)灯(deng)(deng)(deng)片(pian)(pian)为例。通(tong)常(chang),您(nin)需要几轮带有(you)特定类名称(cheng)的嵌(qian)套(tao)div来处理幻(huan)灯(deng)(deng)(deng)片(pian)(pian)包(bao)装,包(bao)装每张幻(huan)灯(deng)(deng)(deng)片(pian)(pian)以及添加标题和缩略图。您(nin)还需要通(tong)过(guo)一些(xie)内联(lian)jQuery / JavaScript为幻(huan)灯(deng)(deng)(deng)片(pian)(pian)转换效果设置任何整体幻(huan)灯(deng)(deng)(deng)片(pian)(pian)选(xuan)项。

如(ru)果你可(ke)以跳过所有这些而只是(shi)使用:

1
2
3
4
<slide-show transition="fade">
<slide src="slideone.jpg" thumb="slideone_thumb.jpg" caption="Look at this image">
<slide src="slidetwo.jpg" thumb="slidetwo_thumb.jpg" caption="Look at this other image">
</slide-show>

使用Web组件,这正是您可以做的。 

创建自己的HTML元素

如果您(nin)想提供一种(zhong)简洁,易于与放置内容的方法进行(xing)交互,否则这些内容会变得臃肿和笨拙,您(nin)可以(yi)继续创建自己的Web组(zu)件(jian)。

Web组件也可(ke)以(yi)轻松共(gong)享,因此当开发人员加入(ru)时,您可(ke)以(yi)轻松获取最常见手(shou)机购彩(cai)要求的预构建Web组件。我们已(yi)经看到自由共(gong)享的组件从   语音识别中弹出来。 

以  展示建设者 ..

让我(wo)们来(lai)看看Web组件幕后的内容。

是什么使Web组件

目前(qian)存在的(de)Web组件由四部分组成:

  • 自定义元素

  • 影子DOM

  • 模板

  • HTML导(dao)入

自定义元素

自定义(yi)元素正(zheng)是它(ta)们听起来(lai)的(de)样子:可以(yi)命名为您(nin)选择的(de)任何元素,并以(yi)您(nin)想要的(de)任何方式操作。当我以(yi)任何方式说(shuo)什么(me)时,我的(de)意思是。例(li)如,我提出了<x-gangnam-style>元素:

现场演示 - 将鼠标悬停在栏上

自定(ding)义(yi)元素以最(zui)简单的(de)形式声(sheng)明,如下所示:

1
2
3
<element name="x-gangnam-style">
...
</element>

创建自定义元素时,可以从头开(kai)始完成,也可以扩展现有(you)的HTML元素(<button>例如(ru)),并(bing)为其提供(gong)所(suo)需(xu)的修(xiu)改功(gong)能或(huo)演示文稿(gao)。

1
2
3
<element name="custom-button" extends="button">
...
</element>

注意:值得指出的是,由于并发症,该<element>标签在2013年已被(bei)弃用。它(ta)可能(neng)会产生回报,但与(yu)此同时(shi)还有polyfill选项,我(wo)们将在稍后讨论。感(gan)谢Addy Osmani  指出这一点!

暗影DOM

Shadow DOM实(shi)际上是Web组件工作方(fang)(fang)式(shi)的(de)(de)核心方(fang)(fang)面。之前,我们查看了HTML5 <video> 元(yuan)素,并展(zhan)示了尽管只(zhi)看到几行代码(ma)(ma),但实(shi)际上默认隐(yin)(yin)藏(zang)了相(xiang)当(dang)多的(de)(de)代码(ma)(ma)。隐(yin)(yin)藏(zang)代码(ma)(ma)所在的(de)(de)地方(fang)(fang)称为“Shadow DOM”。

浏(liu)览器供(gong)应商多(duo)年来一直使用(yong)这个(ge)shadow DOM来本地实现(xian)输入,音(yin)频,视频等元素(su)。通过Web组件,任(ren)何开(kai)发人员现(xian)在都可以使用(yong)它。

一(yi)般的想法是你(ni)在标记放置(zhi)期间获取所(suo)有(you)不需要看到的代码(ma),并在Shadow DOM中(zhong)隐藏它(ta),这样(yang)它(ta)就不会妨碍它(ta)。这使您(nin)只需处理(li)相关(guan)信息(xi),例(li)如使用<video>元素时的高度(du),宽度(du)和(he)源文件位(wei)置(zhi)。

使用Shadow DOM最酷的(de)事情之一就是每个(ge)实例都是它自(zi)己的(de)小自(zi)包(bao)含世界。因此,如果您在元素中包(bao)含样式和脚本,则它们不(bu)会意外泄(xie)漏并影响页面上(shang)的(de)任何其他内容。 

相(xiang)反,页面上其他地方的CSS和JavaScript不(bu)会(hui)影(ying)响(xiang)您的Web组件,除了您可能(neng)专门创建的样式挂钩(gou)以(yi)允许外部CSS定位。所(suo)有这一(yi)切都意味(wei)着不(bu)再担(dan)心命名(ming)空间的ID和类名(ming)以(yi)避免冲突。

如果你想看看影(ying)子(zi)DOM的(de)(de)样子(zi),那(nei)很(hen)简单(dan)(dan)。确保您(nin)正在运行(xing)Chrome的(de)(de)最(zui)新(xin)安装,打开(kai)开(kai)发(fa)工具,单(dan)(dan)击齿轮图(tu)标以打开(kai)设置,然后选中标记为显示用户代理阴(yin)影(ying)DOM的(de)(de)框:

然后,当(dang)您使用shadow DOM检(jian)查任何元素时,您将看到其(qi)完整代(dai)码(ma)。通过检(jian)查<x-gangnam-style>带(dai)有(you)和(he)不(bu)带(dai)有(you)阴影DOM 的元素来试(shi)试(shi):http:  //html5-demos.appspot.com/gangnam

对于影(ying)子(zi)DOM的(de)完整纲要,请(qing)查看(kan):  Shadow DOM手机购彩

模板

我们已(yi)经介绍了自(zi)定(ding)义元素(su)(su)如何只关(guan)注相关(guan)信(xin)息,而所有剩(sheng)余代码都在shadow DOM中被隐(yin)藏。Web组件中的模(mo)板包(bao)含(han)剩(sheng)余代码的所有表示(shi)元素(su)(su)。

作为定义标记(ji)<template>...</template>放置(zhi)的Web组件(jian)的代码(ma)的一部分,在(zai)这些标记(ji)之间(jian)包含组件(jian)所(suo)需的任何HTML和CSS。

例如,查看创建(jian)<x-gangnam-style>Web组件的(de)代(dai)码。它的(de)开(kai)始(shi)<template>标记位于(yu)第4行,其(qi)结束</template>标记位于(yu)第201行。在这些标记之间,您将看到负责创建(jian)定位和动(dong)画的(de)所有(you)CSS,以及(ji)放(fang)置所涉及(ji)的(de)每个图像的(de)HTML。 

HTML导入

HTML导(dao)(dao)入(ru)允许(xu)您(nin)采用上(shang)述所有内容并实际使(shi)(shi)其(qi)在您(nin)的(de)页面上(shang)运行(xing)。Web组件(jian)在外部HTML文(wen)件(jian)中定(ding)义,因(yin)此需(xu)要导(dao)(dao)入(ru)该文(wen)件(jian)才能使(shi)(shi)自定(ding)义元素起作用。HTML导(dao)(dao)入(ru)通过<link>标(biao)(biao)记(ji)来(lai)处理(li),您(nin)可以通过标(biao)(biao)记(ji)导(dao)(dao)入(ru)外部CSS文(wen)件(jian)。

例如,在使用<x-gangnam-style>Web组(zu)件之(zhi)前,您必须导入定义它的HTML文件,如下所示:

1
<link rel="import" href="/components/x-gangnam-style.html">

浏览器支持和Polyfill

潜在客(ke)户(hu)首先使用它们的(de)想法非常(chang)吸引(yin)人(ren),但目(mu)前(qian)浏览器支持还不可行。目(mu)前(qian)的(de)支持状态(tai)如下:

http://jonrimmer.github.io/are-we-componentized-yet/

原生支持正(zheng)在为Chrome,Opera和Firefox实施,但(dan)尚未完成(cheng)。IE和Safari还没(mei)有公布他(ta)们的(de)计划(hua),但(dan)是考虑到大多数  浏(liu)(liu)览器(qi)最终将支持Web组件(jian),其(qi)他(ta)浏(liu)(liu)览器(qi)可能会效仿。

现在(zai),如(ru)果(guo)您想(xiang)开始使用(yong)(yong)Web组件,则需要使用(yong)(yong)其中一(yi)个可用(yong)(yong)的polyfill。好消息是(shi)两(liang)个最流行的手(shou)机(ji)购彩是(shi)由Google和Mozilla创建的,因(yin)此我们可以期待看到与本机(ji)支持(chi)最终运营方式的一(yi)致性。

Google的聚合物

很难(nan)不倾(qing)向于(yu)使用Polymer,  因为Chrome现在是(shi)使用最广泛的浏览器(qi),您可能会考(kao)虑(lv)在开发过程中考(kao)虑(lv)如(ru)何将(jiang)Google组件代码编入索引(yin)。

Polymer附带了一个完整的(de)预构(gou)建Web组件库(ku)。它包(bao)括(kuo)功能导向的(de)“ 聚合物核心元(yuan)素 ”和面(mian)向设计的(de)“ 纸(zhi)元(yuan)素”。

使(shi)(shi)用Polymer创建自(zi)定(ding)义元素时,而不是(shi)使(shi)(shi)用<element name="...">您使(shi)(shi)用  的(de)格式  <polymer-element name="...">。

聚合物将(jiang)自己(ji)描(miao)述为处于“开(kai)发者预览(lan)”状态(tai),而不是绝(jue)对生产(chan)就绪,但他们也说 

...尽管标签很多人已经在生产中使用聚合物取得了成功。

浏览器支持

  • Chrome Android

  • 加纳利

  • 火狐

  • IE 10+

  • Safari 6+

  • 移动Safari

如果你需(xu)要迎合IE9,估计它占据(ju)了  1.9%  到  5.11%  的市场份(fen)额,不幸的是你对Polymer来说运气不好。但(dan)是,您仍然可以(yi)使用Mozilla的X-Tags。

Mozilla的X-Tags

X-Tags是由Mozilla创建的JavaScript库,目前,它比(bi)Polymer更(geng)具优势,因为它的浏览器(qi)支持范围更(geng)广。如果这是您的主(zhu)要考虑因素,X-Tags可(ke)能是您的首选。

浏览器支持

  • Firefox 5+桌面(mian)和移动

  • Chrome 4+

  • Chrome Android 2.1+

  • Safari 4+桌面和移动设备

  • IE9 +

  • Opera 11+桌面和移动(dong)设备

IE8支持

现在(zai),如果您(nin)需要支(zhi)持(chi)IE8,那么遗憾的是,Web组件可能不(bu)适合您(nin),因为可用的polyfill支(zhi)持(chi)IE9 +。估计(ji)IE8用户大约在(zai)2.1%  到3.82%之间,但当然如果你自(zi)己(ji)的统计(ji)数据有所不(bu)同,那么你必须对你的浏览器支(zhi)持(chi)应该延伸多久做出判断。

Ember.js和AngularJS组件

您可以准备过(guo)渡到使(shi)用(yong)Web组(zu)件(jian)(jian)的(de)一种可能方法是暂时(shi)使(shi)用(yong)Ember.js或(huo)AngularJS  。两(liang)者都有(you)自(zi)己的(de)组(zu)件(jian)(jian)创(chuang)建系统(tong),并且都承(cheng)诺在完全可用(yong)时(shi)转换为利用(yong)本机Web组(zu)件(jian)(jian)代码。

结论

杭州网站设计(ji)我(wo)希望您(nin)喜欢阅读这些Web组件的(de)概(gai)述以及您(nin)应该关注的(de)原因!还有很多内容可(ke)以深入研究,但是考(kao)虑到这些基础知识,我(wo)们有很多机会可(ke)以获得有关实(shi)际构建自(zi)定义(yi)Web组件的(de)教程。你(ni)怎么(me)看(kan)?在(zai)什(shen)么(me)情(qing)况下你(ni)会看(kan)到自(zi)己使用(yong)它们?

关键词(ci)

最(zui)新案例

联系电话 400-6065-301

留言

手机购彩(www.angelakelso.com)手机购彩【488推荐】是为当前国内知名的游戏平台网站,是值得您信赖的专业彩票网站,聚集了十多种优秀的经典游戏。提供官方数据,实时开奖,有权威,有保障...