我目前正在建设一个流体布局的网站。 主流流体模板没有在那里实际配股票水平导航作为窗口在不同的宽度调整或负载,可以自行调节。
我已经通过网上教程和其他堆栈溢出的解决方案,试图解决类似问题的涌出,一些非常聪明,都非常接近,但没有一个是能够处理块状悬停效果a {display:block; padding:10px 40px;} a:hover {background:#ccc;}
a {display:block; padding:10px 40px;} a:hover {background:#ccc;}
其他人使用创建是与widht窗口调整相同宽度块链接的聪明的方式; 然而,这是不够准确的,我不希望链接块中创建相同的宽度,但有联系之间是相同的左/右填充。 这是更为精确的链接之间的距离是相同的。
我已经放弃了与CSS这样做,也许别人有用于处理可变填充,或者一些行为非常接近的解决方案。 在任何情况下,我决定尝试在jQuery的进行这项工作。
我从来没有实际写入任何的jQuery之前,但有几个插件工作多年。 我想我至少应该尝试拿出的东西,然后再发布。 我有工作, 我想知道是否有可能增加它在飞行中调整,如果用户调整窗口的大小,而不是仅仅在页面加载的能力 。 我也想知道是否有什么不对的,他们的方法我都做到了。
这里是一个链接,我已经得到了: http://jsfiddle.net/XZxMc/3/
该HTML:
<div class="container">
<div class="row">
<div class="twelvecol">
<ul>
<li><a href="#">short</a></li>
<li><a href="#">longer</a></li>
<li><a href="#">even-longer</a></li>
<li><a href="#">really-really-long</a></li>
<li><a href="#">tiny</a></li>
</ul>
</div>
</div>
</div>
CSS的:
.container {
background:#ccc;
font-family:arial, helvetica;
}
.row {
width: 100%;
max-width: 700px;
min-width: 600px;
margin: 0 auto;
overflow: hidden;
background:white;
}
.row .twelvecol {
width:100%;
float:left;
}
ul {
text-align:center;
}
ul li {
display:inline-block;
zoom:1;
*display: inline;
}
ul li a {
padding:12px 39px;
display:block;
}
a {text-decoration:none;}
a:hover {background:blue; color:white;}
JavaScript的:
// Initial left/right padding of links set in css
var paddingIni = 39;
// Initial max-width of .row
var widthIni = 700;
// Number of links multiplied by 2; 2 because we will be reducing the padding by multiples of 2px total, 1px left, 1px right
var linkQ = 5*2;
// Current width of link container
var twelveWidth = $(".row .twelvecol").width();
// (Initial width / 10) - (Current width / 10); this gives us how much to subtract from our inital padding of 39
// Is there anything wrong with the way this is written?
var paddingSub = (widthIni/linkQ)-(twelveWidth/linkQ);
// Simply subtracting above computation from our inital padding of 39
var paddingNew = paddingIni-paddingSub;
$("ul li a").css("padding-left",paddingNew);
$("ul li a").css("padding-right",paddingNew);
另外,如果有人不介意,解释为什么这不工作,这是我尝试做这一切在一个公式:
var whyisthiswrong = 39 - ( (700/(5*2)) / ($(".row .twelvecol").width()/(5*2)) );