所有可视化自定义和大多数行为自定义均通过创建自定义CSS来完成。
建议的工作流程是获取相应查看器的默认CSS文件,将其复制到其他位置,对其进行自定义,然后在 style=
命令。
可以在以下位置找到默认CSS文件:
<s7_viewers_root>/html5/InlineZoomViewer.css
自定义CSS文件必须包含与默认文件相同的类声明。 如果省略类声明,则查看器将无法正常运行,因为它没有为用户界面元素提供内置的默认样式。
此外,由于内联缩放功能需要,因此请务必保留默认查看器CSS中的以下CSS声明:
.s7flyoutviewer .s7flyoutzoomview .s7flyoutzoom {
width: 100%;
height: 100%;
left: 0;
top: 0;
border: none;
z-index:999;
}
提供自定义CSS规则的另一种方法是直接在网页或其中一个链接的外部CSS规则中使用嵌入样式。
创建自定义CSS时,请记住,查看器分配 .s7flyoutviewer
类到其容器DOM元素。 如果您使用传递的外部CSS文件 style=
命令,使用 .s7flyoutviewer
类作为CSS规则的后代选择器中的父类。 如果您在网页上执行嵌入样式,则还可以使用容器DOM元素的ID来限定此选择器,如下所示:
#<containerId>.s7flyoutviewer
可以根据用户的设备或特定网页布局,在CSS中定位不同的设备和嵌入大小,以使内容以不同的方式显示。 此功能包括但不限于,不同的网页布局、用户界面元素大小和图稿分辨率。
查看器支持两种创建响应式设计CSS的方法: CSS标记和标准CSS媒体查询。 您可以单独或同时使用这些方法。
CSS标记
为了帮助创建响应式设计CSS,查看器支持CSS标记,这些标记是动态分配给顶级查看器容器元素的特殊CSS类。 分配基于运行时查看器大小和当前设备上使用的输入类型。
第一组CSS标记包括 .s7size_large
, .s7size_medium
、和 .s7size_small
类。 它们根据查看器容器的运行时区域应用。 即,如果查看器区域等于或大于普通台式机显示器的大小 .s7size_large
使用;如果该区域的大小与普通平板电脑设备接近 .s7size_medium
已分配。 对于类似于移动电话屏幕的区域, .s7size_small
设置。 这些CSS标记的主要用途是为不同的屏幕和查看器大小创建不同的用户界面布局。
第二组CSS标记包括 .s7mouseinput
和 .s7touchinput
. 标记 .s7touchinput
如果当前设备具有触摸输入功能,则设置为;否则, .s7mouseinput
已使用。 这些标记旨在为不同的输入类型创建具有不同屏幕大小的用户界面输入元素,因为通常触摸输入需要更大的元素。 如果设备同时具有鼠标输入和触摸功能, .s7touchinput
已设置,并且查看器呈现一个触屏友好的用户界面。
以下示例CSS将放大按钮大小设置为28 x 28像素(在具有鼠标输入的系统上)和56 x 56像素(在触控设备上)。 此外,如果查看器变小,它将完全隐藏按钮:
.s7flyoutviewer.s7mouseinput .s7swatches .s7thumb {
width: 28px;
height: 28px;
}
.s7flyoutviewer.s7touchinput .s7swatches .s7thumb {
width: 56px;
height: 56px;
}
.s7flyoutviewer.s7size_small .s7swatches {
visibility: hidden;
}
要定位具有不同像素密度的设备,请使用CSS媒体查询。 以下媒体查询块将包含特定于高密度屏幕的CSS:
@media screen and (-webkit-min-device-pixel-ratio: 1.5)
{
}
使用CSS标记是构建响应式设计CSS的最灵活方式。 它不仅允许Target设备屏幕大小,还允许目标查看器实际大小,这对于响应式设计的网页布局可能很有用。
CSS媒体查询
也可以使用纯CSS媒体查询完成设备感知。 给定媒体查询块中包含的所有内容仅在其在对应的设备上运行时适用。
应用于移动设备查看器时,使用四个CSS媒体查询,它们在CSS中按以下顺序定义:
仅包含特定于所有触控设备的规则。
@media only screen and (max-device-width:13.5in) and (max-device-height:13.5in) and (max-device-width:799px),
only screen and (max-device-width:13.5in) and (max-device-height:13.5in) and (max-device-height:799px)
{
}
仅包含特定于具有高分辨率屏幕的平板电脑的规则。
@media only screen and (max-device-width:13.5in) and (max-device-height:13.5in) and (max-device-width:799px) and (-webkit-min-device-pixel-ratio:1.5),
only screen and (max-device-width:13.5in) and (max-device-height:13.5in) and (max-device-height:799px) and (-webkit-min-device-pixel-ratio:1.5)
{
}
仅包含特定于所有手机的规则。
@media only screen and (max-device-width:9in) and (max-device-height:9in)
{
}
仅包含特定于具有高分辨率屏幕的手机的规则。
@media only screen and (max-device-width:9in) and (max-device-height:9in) and (-webkit-min-device-pixel-ratio: 1.5),
only screen and (device-width:720px) and (device-height:1280px) and (-webkit-device-pixel-ratio: 2),
only screen and (device-width:1280px) and (device-height:720px) and (-webkit-device-pixel-ratio: 2)
{
}
使用媒体查询方法,您应该使用设备感知来组织CSS,如下所示:
无需在每个媒体查询中复制整个查看器CSS。 只有特定于给定设备的属性才会在媒体查询中重新定义。
许多查看器用户界面元素使用位图图进行样式设置,并具有多个不同的可视状态。 一个很好的示例是一个按钮,该按钮通常至少具有三种不同的状态:“up”、“over”和“down”。 每个状态都需要为其指定自己的位图图稿。
使用经典样式设置方法时,对于用户界面元素的每个状态,CSS将对服务器上的单个图像文件进行单独引用。 以下是用于设置滚动按钮样式的CSS示例:
.s7flyoutviewer .s7swatches .s7scrollleftbutton[state="up"]{
background-image:url(images/v2/ScrollLeftButton_up.png);
}
.s7flyoutviewer .s7swatches .s7scrollleftbutton[state="over"]{
background-image:url(images/v2/ScrollLeftButton_over.png);
}
.s7flyoutviewer .s7swatches .s7scrollleftbutton[state="down"]{
background-image:url(images/v2/ScrollLeftButton_down.png);
}
.s7flyoutviewer .s7swatches .s7scrollleftbutton[state="disabled"]{
background-image:url(images/v2/ScrollLeftButton_disabled.png);
}
这种方法的一个缺点是当元素首次交互时,最终用户会遇到用户界面响应闪烁或延迟的情况。 发生此操作是因为尚未下载新元素状态的图像图稿。 此外,由于对服务器的HTTP调用数量增加,此方法可能会对性能产生轻微的负面影响。
CSS sprite是一种不同的方法,其中所有元素状态的图像图稿都合并到名为“sprite”的单个PNG文件中。 此类“sprite”具有依次定位的给定元素的所有可视状态。 在样式化带有拼写的用户界面元素时,同一个sprite图像会引用到CSS中的所有不同状态。 此外, background-position
属性用于每个状态,以指定使用“sprite”图像的哪个部分。 您可以以任何适当的方式构建“sprite”图像。 查看器通常将其垂直栈叠。 下面是基于“sprite”的示例,用于从上方为同一滚动按钮设置样式:
.s7flyoutviewer .s7scrollleftbutton[state] {
background-image: url(images/v2/ScrollLeftButton_light_sprite.png);
}
.s7flyoutviewer .s7swatches .s7scrollleftbutton[state="up"]{
background-position: -56px -504px;
}
.s7flyoutviewer .s7swatches .s7scrollleftbutton[state="over"]{
background-position: -0px -504px;
}
.s7flyoutviewer .s7swatches .s7scrollleftbutton[state="down"]{
background-position: -56px -448px;
}
.s7flyoutviewer .s7swatches .s7scrollleftbutton[state="disabled"]{
background-position: -0px -448px;
}
!IMPORTANT
样式查看器元素不支持规则。 特别是, !IMPORTANT
规则不应用于覆盖查看器或查看器SDK提供的任何默认样式或运行时样式。 原因是它可能会影响适当组件的行为。 您应该改用具有适当特定性的CSS选择器来设置本参考指南中记录的CSS属性。background-image
属性。width
和 height
用户界面元素的属性定义其逻辑大小。 传递到的位图的大小 background-image
不会影响逻辑大小。-webkit-background-size:contain
属性,用于将后台缩小到逻辑用户界面元素大小。display:none
到其CSS类。rgba(R,G,B,A)
. 否则,可以使用格式 #RRGGBB
.以下是适用于弹出查看器的用户界面元素参考文档: