为什么不是't my css `content:`在多个浏览器中工作,并总体上提高跨浏览器兼容性
Why isn't my css `content:` working in multiple browsers, and improving cross-browser compatibility in general
我正在进行我的第一个实践HTML/CSS项目,并试图使所有内容在浏览器之间兼容。我的代码目前适用于Firefox、IE和Edge。它只是在Chrome中不起作用。我在一个按钮中有文本,应该显示一个上下箭头,点击时切换。我很想知道如何提高兼容性,但我现在会具体说明。
我最初询问过如何在这个线程中尝试将所需的向上箭头更改为向下箭头效果,我使用的代码是唯一的答案。代码和JSFiddle如下。JSFiddle似乎完美地复制了这个问题——在Firefox中运行良好,而在Chrome中则不然。
JSFiddle
JavaScript:
function funcAbout() {
var btn = document.getElementById("undernavbtn");
btn.classList.toggle("active")
}
HTML:
<button type="button" id="undernavbtn" onclick="funcAbout()"><span>Button</span></button>
CSS:
#undernavbtn span::after {
content: " '23f6";
}
#undernavbtn.active span::after {
content: " '23f7";
}
关于如何更改此代码以使其显示在多个浏览器中,有什么想法吗?
谢谢你的帮助!
这是因为不是每个字体的字形集中都有每个字符。此外,并不是每个浏览器都使用相同的默认字体系列。例如,Chrome,至少在我的Windows 10操作系统上,默认为Times New Roman、Arial和Consolas。而Firefox默认为Segoe UI Symbol和Tahoma,至少对于UI界面元素是这样。
使字符在大多数浏览器中可见的一种方法是使用您知道的包含该字形的字体族。因此,例如,由于Segoe UI符号包括可以进行的箭头
#undernavbtn.active span::after {
content: " '23f7";
font-family:Segoe UI Symbol;
}
演示
function funcAbout() {
var btn = document.getElementById("undernavbtn");
btn.classList.toggle("active")
}
#undernavbtn span::after {
content: " '23f6";
font-family:Segoe UI Symbol;
}
#undernavbtn.active span::after {
content: " '23f7";
font-family:Segoe UI Symbol;
}
<button type="button" id="undernavbtn" onclick="funcAbout()"><span>Button</span></button>
当然,如果用户没有安装字体,这将不起作用。因此,你可能必须使用字体规则,该规则使用字体文件(如woff2字体格式),就像你使用谷歌字体一样。
这一定是某种字符编码问题。我在UTF-8工具中尝试过,它显示在firefox中,但没有显示在chrome中。如果你想自己测试,这里有链接。
不知道你为什么决定使用这个特定的字符,但既然你说这是你第一次使用HTML和CSS,我想这可能无关紧要,只需选择另一个字符。
虽然这是一个有趣的问题,它甚至可能是chrome中的一个错误,但我建议在做出这样的声明之前进行更彻底的研究。
- 如何使用modalDialog来显示可以在所有浏览器中工作的弹出窗口
- Javascript的某些部分在Chrome中不起作用,但在其他浏览器中可以完美工作
- 如何隐藏空<span>在IE中使用javascript.(注意,在其他浏览器中工作正常)
- Javascript字母选择没有'我不能在谷歌浏览器上工作
- 我如何使HTML5<输入类型=月份>以在所有浏览器上工作
- 我的时间倒计时脚本在谷歌浏览器中工作正常,但在其他浏览器中打开时它显示为南楠
- 使用一个Javascript函数提交多个表单可以在FF中工作,而不需要其他浏览器
- Json到CSV下载,可以在chrome中工作,但不能在IE浏览器中工作
- 有没有人能够得到这个要求或调试NPM模块在浏览器中工作
- 是否可以在浏览器中创建类似谷歌浏览器工作区的东西
- JAX-RS Web Service 通过浏览器工作,但不通过 XMLHTTPRequest
- 如何使旋转图像与javascript跨浏览器工作
- jQuery:如何使css('line-height')跨浏览器工作
- 填写用户名和密码后,当我按下一个回车键无法登录ie,但谷歌浏览器工作正常.如何来
- 未捕获的语法错误与jquery插件和chrome,在其他浏览器工作正常
- Javascript函数不能跨浏览器工作
- 如何将all()函数转换为跨浏览器工作
- indexOf在IE8抛出错误,但在所有其他浏览器工作
- 缓存破坏不与android浏览器工作
- JS播放器——错误:我的返回错误不与IE10工作,但与所有其他浏览器工作