我已经阅读了https://github.com/ampproject/amphtml/blob/master/docs/create_page.md关于CSS的使用,但我不确定格式允许什么CSS选择器。对选择器/属性有任何限制吗?
样式声明可以放在<html>
的任何地方还是只能放在<head>
中?
是否可以包含任何外部样式表?
来自官方AMP GitHub文档:
-
您可以在DOM的
<head>
中包含1<style>
标签。您必须像这样将amp-custom
附加到<style>
标签:<style amp-custom>your style rules here</style>
-
不能修改
body
元素的margin
属性 -
您不能通过
@import
加载或导入外部样式表 -
不能给元素添加样式属性
-
不能使用
!important
限定符 -
您永远不能使用以下任何属性:
-
behavior:
-
overflow: scroll
-
overflow: auto
-
transition:
-
filter
-
animation
-
-moz-binding
-
-
您可以使用以下选择器:
-
.class
例如.row
-
#id
例#sidebar
-
tag-name
例section
- 选择器,如
.row, .clearfix
或#sidebar, #main-body, article
- 媒体查询,例如
@media (max-width:48em){}
-
-
你可以使用以下伪选择器:
-
:hover
-
:active
-
:visited
-
-
你不能使用任何
input
元素,除了button
(因为这些是用来与AMP Web组件交互的)。 -
您必须避免使用以
-amp
或-amp-
为前缀的类名,以避免与AMP组件冲突。如果你愿意,可以重写这些组件的样式。 -
样式规则不能超过50KB
-
您可以通过白名单字体供应商(…谷歌字体)或通过@font-face通过HTTP/HTTPS —即不通过
data:
或JavaScript插件(因为JS是被禁止的)。
"transition" css属性不是不允许的,它只局限于gpu加速属性(目前是不透明,变换和-vendorPrefix-transform)。
https://www.ampproject.org/docs/guides/responsive/style_pages