jQuery Height 无法正常工作
jQuery Height not working corrently
我试图将一些文本居中放在一个 100px x 100px 的圆形框中;
我正在研究的网站在这里:http://www.blackcountrydesigns.co.uk/the1theme/
我正在使用以下jQuery脚本来实现这一点
$(document).ready(function()
{
$('.header .menu li a').each(function(){
padding = (100 - $(this).innerHeight())/2
alert($(this).height());
$(this).css({'padding-top' : padding+'px' , 'padding-bottom' : padding+'px'})
});
});
我遇到的问题是,当某些盒子仅在一个框上时,它认为某些框或行上
。希望你能帮到你!
谢谢
很可能是因为进行计算时使用的字体不是您请求的自定义字体,因为自定义字体在某些浏览器中是异步加载的。
因此,当使用默认字体时,文本在两行中,但是当加载自定义字体时,它显示在一行中。如果您删除谷歌字体样式表,您将看到字体显示在第一和第三个菜单项内的两行中。这就是chrome在DOMready上检测到的。
这是没有自定义字体的原型的小提琴:http://jsfiddle.net/z7n7H/
要解决此问题,如果您知道没有菜单项不应换行,则可以在锚点上强制使用不间断空格:
.header .menu li a{ white-space: nowrap }
或者尝试侦听字体加载事件(如果存在)并从那里进行计算:https://developers.google.com/webfonts/docs/webfont_loader
您也可以尝试使用与您正在使用的自定义字体宽度相同的默认字体,尽管这很容易中断。
另一种选择是使用 window.onload
事件,因为届时应该已经下载并应用了字体。
一个,当你的样式在 Firefox 和 IE 中被破坏时,使用一个图像会很好,如果为什么使用 javascript 为其分配填充......如果你应用相同的
底部填充:36px;顶部填充:36px;
它将是统一的 P.S 注意填充是用于<a href></a>
标签
浏览器中使用它都可以工作
$('.header .menu li a').each(function(){
var a=$('.header .menu li').height();
alert(a);
var padding = a-65;
$(this).css({'padding-top' : padding+'px' , 'padding-bottom' : padding+'px'})
});
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- 最大高度转换不;不工作,工作缓慢
- Gulp-rev:不是第一次工作,而是在第一次工作之后工作
- JQuery - Ajax: encodeUriComponent不工作(EncodeUri工作)