他们会…
钥匙要点
>一个很好的例子,说明您何时可能要使用Web组件,那就是当您在浏览器中构建不存在的UI时,例如彩色拾取器,旋转木马,手风琴或打字机等元素。另外,您可能会在各个站点上一直使用一些组件,这些组件每次都厌倦了重建。这些是社交按钮,订阅表格或通知之类的东西。使用Web组件,您可以使用HTML标签将标记,样式和脚本捆绑到封装的模块中,例如
> Web组件使您可以构建一次UI零件并在任何地方使用它们。这对于像Living StyleGuide这样的项目是理想的选择,您想为每个组件构建一个带有真理来源的库。这种方法意味着重复更少的代码并拥有您或您的团队可以简单地将引用到界面中的便携式组件。
>>使用Web组件的另一个重要优势是能够将这些组件包装好并与其他开发人员或网站所有者共享。本质上,消费者可以在其网页中放置一个导入语句,例如:
<span><span><span><link</span> rel<span>="import"</span> </span></span><span> <span>href<span>="http://url.com/subscribe-form.html"</span>></span></span>
>我觉得最好的演示方法是例子,所以我将继续使用订阅表单,这是一个常见的UI,在不同的站点和实现之间不会改变太大。
在我的Web组件模板中,我有一些对表单的基本标记。
<span><span><span><ul</span> class<span>="form"</span>></span> </span> <span><span><span><li</span> class<span>="form__item"</span>></span> </span> <span><span><span><label</span> for<span>="name"</span>></span>Name:<span><span></label</span>></span> </span> <span><span><span><input</span> id<span>="name"</span> name<span>="name"</span> type<span>="text"</span>></span> </span> <span><span><span></li</span>></span> </span> <span><span><span><li</span> class<span>="form__item"</span>></span> </span> <span><span><span><label</span> for<span>="name"</span>></span>Email:<span><span></label</span>></span> </span> <span><span><span><input</span> id<span>="name"</span> name<span>="name"</span> type<span>="text"</span>></span> </span> <span><span><span></li</span>></span> </span><span><span><span></ul</span>></span></span>
>
>现在我们都已设置,让我们看一些响应式技术。
><span><span>.form__item</span> { </span> <span>display: table; </span> <span>float: left; </span> <span>width: 50%; </span><span>} </span> <span>label { </span> <span>display: table-cell; </span> <span>width: auto; </span><span>} </span> <span>input { </span> <span>display: table-cell; </span> <span>width: 100%; </span><span>}</span>
>我们所知道和爱的经典方法仍然活着,并且在响应式网络组件内都很好。如果您想在某些断点中烘烤组件,则可以在模板中应用这些模板,也可以将钩子(例如,使用类别使用类)应用于容器,如果您想将该决定留给消费者。在这种情况下,我们需要做的就是剥离浮子并将其调整为完全宽度。
<span><span><span><link</span> rel<span>="import"</span> </span></span><span> <span>href<span>="http://url.com/subscribe-form.html"</span>></span></span>
但是,媒体查询这次不足以拯救我们。
>>我对我的注册表格样式感到满意,并且在体内效果很好,但是当网站作者想将其塞入侧边栏中时会发生什么?突然,我的表格看起来被压扁了,并不是真正可用的。
>这是因为组件不知道其边界 - 它没有上下文。
> Web组件的全部要点是您可以将它们放在任何地方,它们可以正常工作吗?因此,显然这不会做到,但是您可以使用一些技术来确保您的组件响应迅速且上下文。> Flexbox Trickery
通过将容器设置为显示:flex; flex-inp:包装,.form__Item元素将出现并排,但是我们仍然需要进行一些调整,以便当容器变得太小时,它们会很好地堆叠。
> 在.form__Item内部,我使用了flex的flex速记:1 0 320px;它以柔性术语转换为 - 一个生长,柔性收缩为零,柔性基础为320像素。将Flex包装设置为包装,这意味着它不会比我们设置的基础小(320px)小,但是将其设置为Flex意味着它将占用其余可用空间。>
我给出了与标签和输入元素类似的处理。他们的柔性柔性值总计320,这意味着它们在较小的容器尺寸下的行为将按照所需的方式行为。<span><span><span><ul</span> class<span>="form"</span>></span> </span> <span><span><span><li</span> class<span>="form__item"</span>></span> </span> <span><span><span><label</span> for<span>="name"</span>></span>Name:<span><span></label</span>></span> </span> <span><span><span><input</span> id<span>="name"</span> name<span>="name"</span> type<span>="text"</span>></span> </span> <span><span><span></li</span>></span> </span> <span><span><span><li</span> class<span>="form__item"</span>></span> </span> <span><span><span><label</span> for<span>="name"</span>></span>Email:<span><span></label</span>></span> </span> <span><span><span><input</span> id<span>="name"</span> name<span>="name"</span> type<span>="text"</span>></span> </span> <span><span><span></li</span>></span> </span><span><span><span></ul</span>></span></span>
好得多!但是,有多种方法可以使猫皮肤。
>元素查询元素查询的想法是,您能够模拟媒体查询类型功能,但在组件级别 - 对于响应式Web组件非常方便。本质上,想象能够在您的CSS中写下类似的东西:
>
不幸的是,由于浏览器供应商关注导致无限循环的潜力,因此该技术不可用。但是,一些聪明的人已经编写了插件来启用此功能。
>在我的示例中,我使用了Marc J Schmidt的CSS元素查询,这是一个非常不错的实现。也有以下类似的项目:
>
<span><span><span><link</span> rel<span>="import"</span> </span></span><span> <span>href<span>="http://url.com/subscribe-form.html"</span>></span></span>
>
属性
<span><span><span><ul</span> class<span>="form"</span>></span> </span> <span><span><span><li</span> class<span>="form__item"</span>></span> </span> <span><span><span><label</span> for<span>="name"</span>></span>Name:<span><span></label</span>></span> </span> <span><span><span><input</span> id<span>="name"</span> name<span>="name"</span> type<span>="text"</span>></span> </span> <span><span><span></li</span>></span> </span> <span><span><span><li</span> class<span>="form__item"</span>></span> </span> <span><span><span><label</span> for<span>="name"</span>></span>Email:<span><span></label</span>></span> </span> <span><span><span><input</span> id<span>="name"</span> name<span>="name"</span> type<span>="text"</span>></span> </span> <span><span><span></li</span>></span> </span><span><span><span></ul</span>></span></span>
>
在阴影dom中,包含的元素被称为:主机。一个例子看起来像:然后,这将允许组件消费者编写一些简单的JavaScript,以在您提供的不同尺寸之间翻转。这意味着您可以将其留给消费者,以决定如何将其挂在模块中。这使您的组件能够成为更多的未来证明。
<span><span>.form__item</span> { </span> <span>display: table; </span> <span>float: left; </span> <span>width: 50%; </span><span>} </span> <span>label { </span> <span>display: table-cell; </span> <span>width: auto; </span><span>} </span> <span>input { </span> <span>display: table-cell; </span> <span>width: 100%; </span><span>}</span>
>自己尝试!
>安装CORS Chrome Extension并将其打开。这是为了允许HTML导入从外部站点工作。
<span><span>@media (max-width: 30em)</span> { </span> <span><span>.form__item</span> { </span> <span>float: none; </span> <span>width: 100%; </span> <span>} </span><span>}</span>
<span><span>.form</span> { </span> <span>display: flex; </span> <span>flex-wrap: wrap; </span><span>} </span> <span><span>.form__item</span> { </span> <span>align-items: center; </span> <span>display: flex; </span> <span>flex: 1 0 320px; </span> <span>flex-wrap: wrap; </span> <span>max-width: 100%; </span><span>} </span> <span>label { </span> <span>flex: 1 0 90px; </span><span>} </span> <span>input { </span> <span>flex: 1 0 230px; </span> <span>width: 100%; </span><span>}</span>
>如果您在了解有关响应式网络设计的更多方面有趣 >响应式Web组件上的经常询问问题(FAQ)
>
> CSS容器查询如何有助于响应式组件?>
>我如何确保可以访问我的响应式Web组件?设计响应式Web组件时的关键考虑。这包括确保在所有屏幕尺寸上都可以阅读文本,交互式元素足够大,可以轻松地在触摸屏上挖掘,并且该站点可为无法使用鼠标的人提供键盘。此外,您应该使用语义HTML为屏幕读者提供上下文和含义,并确保对视觉障碍的人的颜色对比足以。一些常见的挑战包括处理不同的屏幕尺寸和分辨率,确保与不同的浏览器和设备的兼容性以及优化性能。可以通过使用移动优先方法,在各种设备上进行测试,使用功能检测来确保兼容性以及优化性能的图像和脚本。
响应式Web组件可以对SEO产生积极影响。 Google的算法喜欢移动友好的网站,而响应式设计是其中的关键方面。此外,拥有一个单个响应网站而不是单独的桌面和移动版本避免了重复内容的问题,这可能会对SEO产生负面影响。
>)的在线工具如何适应。响应式Web组件的未来可能涉及更先进的技术和技术。这可能包括当前正在开发的容器查询之类的内容,以及更多地使用AI和机器学习根据用户行为和偏好调整布局。
>>有许多资源可用于了解响应式Web组件。其中包括在线教程和课程,书籍和社区论坛。此外,尝试创建自己的响应组件并研究他人的代码可能是一种学习的好方法。
以上是您今天如何使用响应迅速的网络组件的详细内容。更多信息请关注PHP中文网其他相关文章!