CSS脚本

许多查看器用户界面元素使用位图图进行样式设置,并具有多个不同的可视状态。 一个很好的示例是一个按钮,该按钮通常至少具有三种不同的状态:“up”、“over”和“down”。 每个状态都需要为其指定自己的位图图稿。

使用经典样式设置方法时,对于用户界面元素的每个状态,CSS将对服务器上的单个图像文件进行单独的引用。 以下是用于设置全屏按钮样式的CSS示例:

.s7videoviewer.s7mouseinput .s7playpausebutton[selected='true'][state='up'] {
background-image:url(images/v2/PlayButton_up.png);
}
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='true'][state='over'] {
background-image:url(images/v2/PlayButton_over.png);
}
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='true'][state='down'] {
background-image:url(images/v2/PlayButton_down.png);
}
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='true'][state='disabled'] {
background-image:url(images/v2/PlayButton_disabled.png);
}
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='false'][state='up'] {
background-image:url(images/v2/PauseButton_up.png);
}
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='false'][state='over'] {
background-image:url(images/v2/PauseButton_over.png);
}
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='false'][state='down'] {
background-image:url(images/v2/PauseButton_down.png);
}
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='false'][state='disabled'] {
background-image:url(images/v2/PauseButton_disabled.png);
}
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='true'][replay='true'][state='up'] {
background-image:url(images/v2/ReplayButton_up.png);
}
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='true'][replay='true'][state='over'] {
background-image:url(images/v2/ReplayButton_over.png);
}
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='true'][replay='true'][state='down'] {
background-image:url(images/v2/ReplayButton_down.png);
}
.s7videoviewer.s7mouseinput .s7playpausebutton[selected='true'][replay='true'][state='disabled'] {
background-image:url(images/v2/ReplayButton_disabled.png);
}

此方法的一个缺点是最终用户在首次与元素交互时体验到用户界面响应闪烁或延迟。 发生此操作是因为尚未下载新元素状态的图像图稿。 此外,由于对服务器的HTTP调用数量增加,此方法可能会对性能产生轻微的负面影响。

CSS sprite是一种不同的方法,所有元素状态的图像图稿都合并到称为“sprite”的单个PNG文件中。 此类“sprite”具有给定元素的所有视觉状态,它们彼此相邻。 使用拼写设置用户界面元素的样式时,同一个sprite图像将针对CSS中的所有不同状态引用。 此外,background-position属性用于每个状态,以指定使用“sprite”图像的哪个部分。 您可以以任何适当的方式构建“Sprite”图像。 查看器通常将其垂直栈叠。 下面是基于“sprite”的示例,用于为上方显示的相同全屏按钮设置样式:

.s7videoviewer .s7fullscreenbutton[state][selected]{
 background-image: url(images/v2/FullScreenButton_dark_sprite.png);
}
.s7videoviewer.s7mouseinput .s7fullscreenbutton[selected='true'][state='up'] {
background-position: -84px -1148px;
}
.s7videoviewer.s7mouseinput .s7fullscreenbutton[selected='true'][state='over'] {
background-position: -56px -1148px;
}
.s7videoviewer.s7mouseinput .s7fullscreenbutton[selected='true'][state='down'] {
background-position: -28px -1148px;
}
.s7videoviewer.s7mouseinput .s7fullscreenbutton[selected='true'][state='disabled'] {
background-position: -0px -1148px;
}
.s7videoviewer.s7mouseinput .s7fullscreenbutton[selected='false'][state='up'] {
background-position: -84px -1120px;
}
.s7videoviewer.s7mouseinput .s7fullscreenbutton[selected='false'][state='over'] {
background-position: -56px -1120px;
}
.s7videoviewer.s7mouseinput .s7fullscreenbutton[selected='false'][state='down'] {
background-position: -28px -1120px;
}
.s7videoviewer.s7mouseinput .s7fullscreenbutton[selected='false'][state='disabled'] {
background-position: -0px -1120px;
}

常规样式注释和建议

  • 指向CSS内外部资源的所有路径都是根据CSS位置而不是查看器HTML页面的位置解析的。 将默认CSS复制到其他位置时,请记住考虑此规则。 复制自定义CSS中的默认资源或更新路径。

  • 位图图稿的首选格式为PNG。

  • 使用background-image属性将位图图稿分配给用户界面元素。

  • 用户界面元素的widthheight属性定义其逻辑大小。 传递到background-image的位图的大小不会影响逻辑大小。

  • 若要使用高分辨率屏幕(如Retina)的高像素密度,请指定两倍于逻辑用户界面元素大小的位图图案。 然后,应用-webkit-background-size:contain属性将后台缩小到逻辑用户界面元素大小。

  • 要从用户界面中删除按钮,请将display:none添加到其CSS类。

  • 您可以对CSS支持的颜色值使用各种格式。 如果需要透明度,请使用格式rgba(R,G,B,A)。 否则,您可以使用格式#RRGGBB

  • 使用CSS自定义查看器用户界面时,样式查看器元素不支持使用!IMPORTANT规则。 特别是,!IMPORTANT规则不应用于覆盖查看器或查看器SDK提供的任何默认样式或运行时样式。 原因是它可能会影响正确组件的行为。 您应该使用具有适当特定性的CSS选择器来设置本参考指南中记录的CSS属性。

常见用户界面元素

以下是适用于Video Viewer的用户界面元素参考文档:

Experience Manager