2

我正在尝试将所有宽度和边距以及填充转换为百分比,以使我正在处理的网站具有响应性。我得到了没有问题的标题,但现在我被卡住了。

当我更改我的 li 项目的填充时,布局会中断。在整个站点上,内边距应该是 6px,但即使我将内边距设置为一个百分比,即使小到 0.1%,它也会将其中一个元素向下颠倒。该网站尚未上线,但我提供了一些屏幕截图和一些代码。有任何想法吗?

aside#footer-brands ul  {
margin:0;
padding:0;
}

aside#footer-brands ul li {
padding:6px;
float:left;
list-style: none;   
}

aside#footer-brands ul li a {
background-image: url(/images/csr/footer/brands/sprite-brands.png);
background-repeat:  no-repeat;
display: block;
text-indent: 100%;
white-space: nowrap;
overflow: hidden;
}

<aside id="footer-brands">
            <h6>Our Brands</h6>
            <ul>
                <li><a class="keurig-logo" href="http://www.keurig.com">Keurig</a></li>
                <li><a class="gmcr-logo" href="http://www.greenmountaincoffee.com">Green Mountain Coffee</a></li>
                <li><a class="tullys-logo" href="http://www.tullys.com">Tullys</a></li>
                <li><a class="timothys-logo" href="http://www.timothys.com">Timothys</a></li>
                <li><a class="diedrich-logo" href="http://www.diedrich.com">Diedrich</a></li>
                <li><a class="vanhoutte-logo" href="http://www.keurig.com/shop/k-cups/all-k-cups?hdnCategoryFacets=Brand:Van%20Houtte&hdnBaseFacets=Brand">Van Houtte</a></li>
            </ul>
</aside>

第一个问题,所以我不能发布图片,但它应该是这样的......

https://img.skitch.com/20120514-ng553b28ana6khsss619cag72e.jpg

以及当我将填充更改为百分比时的外观...

https://img.skitch.com/20120514-j94cgs2g8dppktcacbns3jmig2.jpg

编辑添加网址:

您可以在http://nightowlsrock.com/3-col.html查看页面

4

2 回答 2

0

你试过 CSS3 flexbox 吗?它不需要任何百分比(只是比例和浏览器本身处理宽度)。它还确保事物总是在同一条线上(不会像浮动那样颠簸)。

http://www.html5rocks.com/en/tutorials/flexbox/quick/

至于填充,我认为大多数浏览器都存在宽度小于 1px 的问题,因此如果您希望事情“像素完美”,您可能必须使用媒体查询的固定像素宽度来实现这一点。但我发现你通常可以使用 flexbox 获得“足够接近”的东西。

于 2012-05-31T20:01:55.370 回答
0

编辑:忽略我之前说的。

W3C 关于填充的页面说

百分比是根据生成框的包含块的宽度计算的,即使对于“padding-top”和“padding-bottom”也是如此。如果包含块的宽度取决于此元素,则结果布局在 CSS 2.1 中未定义。

是的,未定义的行为就是你所看到的。.8%通过将值设置为,等1%,我可以产生截然不同的结果。 所以答案似乎是您应该首先将 UL 设置为某个预定宽度。1.2%

于 2012-05-16T17:09:58.237 回答