Jquery IE11的条件注释脚本不可能?解决方案
在创建一个网站(queenalright.co.uk)时,我遇到了IE中固定div居中的问题。这变得更加困难,因为我试图创建一个响应性布局,因此各种元素的宽度需要流动。我用一个名为“头到目标”的脚本解决了这个问题。从那时起,IE11已经发布,并且(在它的前瞻性思维中)删除了条件注释,但没有添加对固定或绝对div元素居中的支持 解决问题的最佳方法是什么?或者是否有一种更简单的方法来解决这个问题,我不知道 以下是脚本:Jquery IE11的条件注释脚本不可能?解决方案,jquery,css,conditional-comments,internet-explorer-11,Jquery,Css,Conditional Comments,Internet Explorer 11,在创建一个网站(queenalright.co.uk)时,我遇到了IE中固定div居中的问题。这变得更加困难,因为我试图创建一个响应性布局,因此各种元素的宽度需要流动。我用一个名为“头到目标”的脚本解决了这个问题。从那时起,IE11已经发布,并且(在它的前瞻性思维中)删除了条件注释,但没有添加对固定或绝对div元素居中的支持 解决问题的最佳方法是什么?或者是否有一种更简单的方法来解决这个问题,我不知道 以下是脚本: // script to achieve horizontal centerin
// script to achieve horizontal centering in internet exporer! Grrrrr!
function topSize() {
// get screen width
var screenWidth = $(window).width();
// resize
var halfScreenWidth = screenWidth/2;
var topWidth = $('#top').width();
var topBGWidth = $('#top-bg').width();
var minusMarginInner = (-1)*(topWidth/2);
var minusMarginBG = (-1)*(topBGWidth/2);
$('#top').css({
"left":"50%",
"right":"auto", // overwrites the right 1% property previously used for centering
"margin-left":minusMarginInner + "px"
});
$('#top-bg').css({
"left":"50%",
"right":"0", // overwrites the right 1% property previously used for centering
"margin-left":minusMarginBG + "px"
});
}
$(document).ready(function() {
var screenWidth = $(window).width();
if (screenWidth >= 1096) {
topSize();
}
}); // document ready test window size and run topsize function
$(window).resize(function() {
var screenWidth = $(window).width();
if (screenWidth >= 1096) {
topSize();
}
}); // window resize test window size and run topsize function
如果你发现自己在问如何单独瞄准IE,你最好休息一下,重新考虑一下你正在采取的方法。Internet Explorer可以像任何其他浏览器一样完全集中/固定元素。在这种情况下,您采用的方法不是最适合跨浏览器的。我可以提出一个替代方案吗
.center{
位置:固定;
左:50%;
转化:translateX(-50%);
}
这种方法在所有现代浏览器中都是一样的,给你一个一致的体验。我创建了一个小的演示小提琴来演示这一点:。IE11不支持有条件的评论,事情到此为止。您必须解析userAgent字符串或使用其他方法来检测浏览器,并使用
var soAndSo=function(){
而不是function soAndSo(){
并将其放入检查IE11的if
语句中,该语句在userAgent字符串中没有提供任何标识自身为IE的内容。这非常感谢。为了安全起见,我保留了IE9以下版本的脚本。