【发布时间】:2015-07-21 12:09:46
【问题描述】:
我正在构建一个将显示在网页底部的小部件。仅当用户将 javascript 代码嵌入其网页时,才会显示此小部件。
基本上,我遇到了小部件样式部分的问题。我意识到在指定或不指定元视口标签的网页上,小部件的显示方式不同。
<meta name="viewport" content="width=device-width, initial-scale=1">
带有元标记视口标记的网页看起来很好。但是,没有 metatag 视口标签的网页看起来非常小。
我使用 .em 作为我的字体大小。
下面是我的 style.css 的代码 sn-p
.mywidget li a{
color:#304FFE;
font-size:2.0em;
}
主要关心的是我需要我的小部件(样式)与移动响应或非移动响应网页兼容和无缝。
非常感谢专家的建议。我做错了吗?
我想知道像 zopim 这样的公司是如何做到的!
即使您的网站没有针对移动设备进行优化,聊天按钮看起来也很漂亮。无论您缩放多少,它都保持相同的大小和相同的位置。无论您的客户在看什么,您只需一个聊天按钮即可。
我当前的解决方案(我认为不是最好的 - 寻找更多见解)
我使用 css3 媒体查询。当我检测到没有指定视口元标记时,我包含并链接到我的特定 css(带有媒体查询)。
var viewport = document.querySelector("meta[name=viewport]");
if(viewport === null){
//create my media css element
}
在我的媒体查询中,我将字体大小增加了几个 em。例如
@media only screen and (min-width : 320px) {
.mywidget li a {
font-size: 3.5em!important;
}
}
这个解决方案的问题是我不知道要增加多少 em。我希望小部件在移动响应和非移动响应网页中看起来完全相同。任何建议都非常感谢!
【问题讨论】:
-
您需要/想要实现哪种兼容性?对于 IE9+,你应该使用
rem单位:就像em一样,无需处理父元素的大小。虽然使用 em 和 JS,你可以找到你的父元素应该有的大小,在 JS 中相应地设置它,然后你的所有后代元素都会继承。使用 IE10+,您可以将 API matchMedia 用于那些没有元视口的页面
标签: javascript jquery css widget