Google Form 虽然强大,但并未提供自定义表单的功能。不过,它也留了后门。
后门就是页面源代码。打开一个表单的页面,查看页面源代码,把所有代码都复制下来,保存到一个网页文件里,这样,我们就可以随心所欲地去修改它了。
粘过来的代码,需要做一点点修改:因为Google Form外联的样式表是放在自己的服务器上,所以路径直接用的/,我们把这里改成https://,如图:
(把原来的“/spreadsheets”改成“https://spreadsheets”)
因为内嵌样式表(style标签内定义的样式)的优先级比外联样式表要高,所以我们直接在head标签内增加需要修改的样式,不想改的直接继承。 这一次主要讲讲Google Form里的一些常用的CSS样式(不全,可能有错),并提供两个例子以供参考。一、常用CSS样式可以下载这张图片对比每个样式:
CSS属性浅析
这里是实现上面这个样子的代码,有点难看,为了说事儿,忍了。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
<!--
.ss-base-body{background-color:yellow;}
.ss-form-container{width:90%;border:5pt dotted blue}
.ss-form-heading{font-family:楷体_gb2312;font-size:30pt;text-align:center;background:url(backgroundimg.png)}
.ss-form-title{color:purple;}
.ss-form-desc{font-size:20pt;color:red;background:#cccccc;margin:3pt;border:2pt dashed #ff0;text-align:left}
.ss-required-asterisk{text-align:left;}
.ss-q-title{color:purple}
.ss-q-help{color:blue;background-color:#ccddff;font-size:12pt}
.ss-item{font-size:15pt;color:red;border:1pt}
.ss-form-entry{}
.ss-section-header{}
.ss-section-title{color:blue}
.ss-section-description{color:yellow}
.ss-choices{color:green;background-color:pink}
.ss-choice-label{background-color:blue}
.ss-choice-item{color:red}
.ss-radio{background-color:red}
.ss-select{background-color:pink}
.ss-scale{background-color:pink}
.ss-scalenumbers{color:purple}
.ss-scalenumber{color:blue}
.ss-scalerow{background-color:yellow}
.ss-leftlabel{color:green}
.ss-rightlabel{color:blue}
.ss-grid{color:orange}
.ss-gridnumbers{color:blue}
.ss-gridrow{color:red}
.ss-paragraph-text{background:url(backgroundimg.png)}
.ss-text{background-color:#EED419}
.ss-footer{border:1em double gray}
.ss-legal{color:blue}
.ss-terms{background-color:gray}
.s1{width:80%}
--> |
1.全局样式
.ss-base-body:整个页面的背景,可以控制背景的颜色、背景图等
.ss-form-container:浮在ss-base-body上方的表单容器,是表单的主体,整个表单都在里面
.ss-form-heading:表单的“题头”,包括表单标题、说明、以及“必填”字样
.ss-form-title:表单的标题
.ss-form-desc:表单的说明,即“卷首语”
.ss-required-asterisk:“必埴”样式
.ss-q-title:问题的标题
.ss-q-help:问题的说明
.ss-item:表单条目
.ss-form-entry:表单条目
2.具体题型章节
.ss-section-header:章节样式
.ss-section-title:章节标题
.ss-section-description:章节说明多重选择
.ss-radio 复选框
.ss-choices:复选框样式
.ss-choice-label:选项标签
.ss-choice-item:选项条目从列表中选择
.ss-select:从列表中选择样式比例
.ss-scale:比例样式
.ss-scalenumbers:比例的数字
.ss-scalenumber:比例的数字
.ss-scalerow:比例所在的一行,包括左标签、选项、右标签
.ss-leftlabel:比例左标签
.ss-rightlabel:比例右标签网格
.ss-grid:网格样式
.ss-gridnumbers:网格横坐标,“行”的样式
.ss-gridrow:网格纵坐标,“列”的样式文本
.ss-text 段落文本
.ss-paragraph-text,.ss-legal,.ss-terms Google版权相关
.ss-footer:底部
自定义CSS另解:Google Docs 的 CSS 注入漏洞使你可以自定义 CSS 样式(已修正,无法使用)
Flemming Steffensen找到了一个通过CSS注入从而自己修改Google Docs 生成提交表单的CSS样式的技巧。
比如你的一个表单的地址是这样的:
http://spreadsheets.google.com/embeddedform?key=0Ato1MNFt5ld1cExhRTl0c1ZMcF8zcWZJRTNPSGhLQkE
你可以新增一些CSS规则作为f参数的变量:
结果见此。
备注:
- 注入的CSS要以“;}”为开头
- 你需要使用“!important”来强制修改一些已有的变量
- 你可以看看Google Docs页面的源代码,找出他们使用class的方式
- Google可能随时会修复这个小漏洞
两个例子
例1:这是一个订购毕业衫的下订单用的表单,查看。
例2:这是一个心理学小实验,要实现的是把被试分为四个组,做不同的问卷(我用Google Form做了四个表单),进入首页点击链接会随机进入一个表单,查看。
