Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css IE7中的流体宽度导航_Css_Internet Explorer 7 - Fatal编程技术网

Css IE7中的流体宽度导航

Css IE7中的流体宽度导航,css,internet-explorer-7,Css,Internet Explorer 7,正在改造客户的网站,他们的要求之一是改变导航以适应任何大小的文本。诀窍是:我不能更改html,只能更改css和javascript。哦,站点上jquery的版本是1.4.4-这也不能更改 我已经有了一个基于javascript的解决方案,它可以在所有现代浏览器上运行——但我似乎无法让它在IE7中运行。该解决方案依赖于所有导航元素以其本机宽度进行渲染(即环绕而不是调整大小),以便计算必要的宽度更改。在IE7中,导航项不清楚——最后一个缩小到一个很小的尺寸以适应第一行,因此javascript无法判

正在改造客户的网站,他们的要求之一是改变导航以适应任何大小的文本。诀窍是:我不能更改html,只能更改css和javascript。哦,站点上jquery的版本是1.4.4-这也不能更改

我已经有了一个基于javascript的解决方案,它可以在所有现代浏览器上运行——但我似乎无法让它在IE7中运行。该解决方案依赖于所有导航元素以其本机宽度进行渲染(即环绕而不是调整大小),以便计算必要的宽度更改。在IE7中,导航项不清楚——最后一个缩小到一个很小的尺寸以适应第一行,因此javascript无法判断是否需要计算大小调整

javascript应该可以正常工作,主要的问题是我需要知道我的css在IE7中没有做什么来强制最后一个元素换行而不是调整大小。我尝试了大量的组合
display:inline块
空白:nowrap,和
浮动:左无效


我把有问题的导航隔离开来,把它放在一把小提琴里。如果有人有任何想法,或者知道我可以实施的更好的方法,请让我知道-欢迎所有建议

我这里有两个版本的jsFiddle可以比较并验证这就是您想要的。我清理了一下你的CSS,但我做的主要事情是在导航中的
li
上设置
percentage width
。你有6个元素,所以100/6=16.6666%。我也不应该在下面的jsFiddles中删除jQuery

CSS

正文{
保证金:0;
}
#顶部导航{
填充顶部:30px;
宽度:940px;
}
#导航{
颜色:#FFF;
字体大小:12px;
保证金:0;
填充:0;
文本转换:大写;
最小高度:49px;
背景色:#007369;
溢出:隐藏;
}
#导航>李{
显示:块;
浮动:左;
列表样式类型:无;
保证金:0;
填充:9px0;
宽度:16.6666%;
}
#导航>李>a{
显示:块;
框大小:边框框;
文本对齐:居中;
填充:7px 12px 17px 12px;
线高:16px;
利润率:0.4px;
颜色:#fff;
文字装饰:无;
-webkit边框左上半径:3px;
-webkit边框右上角半径:3px;
-左上角moz边界半径:3px;
-moz边框半径右上角:3px;
边框左上半径:3px;
边框右上角半径:3px;
溢出:隐藏;
}
#导航>李>a:悬停{
背景:#b0a893;
}
#导航>李>a:悬停{
文字装饰:无;
}

我这里有两个版本的JSFIDLE,可以与之进行比较,并验证这是您想要的。我清理了一下你的CSS,但我做的主要事情是在导航中的
li
上设置
percentage width
。你有6个元素,所以100/6=16.6666%。我也不应该在下面的jsFiddles中删除jQuery

CSS

正文{
保证金:0;
}
#顶部导航{
填充顶部:30px;
宽度:940px;
}
#导航{
颜色:#FFF;
字体大小:12px;
保证金:0;
填充:0;
文本转换:大写;
最小高度:49px;
背景色:#007369;
溢出:隐藏;
}
#导航>李{
显示:块;
浮动:左;
列表样式类型:无;
保证金:0;
填充:9px0;
宽度:16.6666%;
}
#导航>李>a{
显示:块;
框大小:边框框;
文本对齐:居中;
填充:7px 12px 17px 12px;
线高:16px;
利润率:0.4px;
颜色:#fff;
文字装饰:无;
-webkit边框左上半径:3px;
-webkit边框右上角半径:3px;
-左上角moz边界半径:3px;
-moz边框半径右上角:3px;
边框左上半径:3px;
边框右上角半径:3px;
溢出:隐藏;
}
#导航>李>a:悬停{
背景:#b0a893;
}
#导航>李>a:悬停{
文字装饰:无;
}

调整窗口大小时,我看不到任何情况。动态宽度文本的示例是什么?对不起,我应该澄清一下-导航需要容纳不确定大小的文本。一旦页面加载,它永远不会改变,但他们希望在导航中自由更改名称,而不必担心它是否会损坏。我不确定定期更改导航的值是否是一个好主意。我认为你指的是字符的数量而不是大小(即28px与100px),尽管这会引起类似的问题。我完全同意你@hungerstar的观点-但不幸的是,这是我得到的规格,我没有能力改变它=(哦,那些讨厌的客户!当你调整窗口大小时,我没有看到任何事情发生。动态宽度文本的例子是什么?对不起,我应该澄清一下-导航需要适应不确定大小的文本。一旦页面加载,它永远不会改变,但他们希望在导航中自由更改名称,而不必担心它是否会改变。)o中断。我不确定定期更改导航的值是否是一个好主意。我认为你指的是字符数而不是大小(即28px与100px),尽管这会引起类似的问题。我完全同意你@hungerstar-但不幸的是,这是我收到的规范,我没有能力更改它=(哦,那些讨厌的客户!我应该记下舍入问题。这就是为什么我们喜欢IE的原因!虽然这是一个聪明的解决方案,而且我希望能够在不同的情况下使用,但这并不能解决我的问题-如果它像将所有导航元素设置为相同的宽度那样简单,我已经做了。结果我做不到o说服他们将此作为IE7的备用方案。干杯!我应该记下舍入问题。这就是为什么我们喜欢IE!虽然这是一个聪明的解决方案,我希望能够在不同的情况下使用,但这并不能解决我的问题-如果它像设置一样简单,我已经做到了