【问题标题】:Responsive navigation — from one line to 3-fluid-columns?响应式导航——从一行到三列?
【发布时间】:2012-10-29 02:55:05
【问题描述】:

当使用标准的<nav> & <ul> 时,很容易创建出现在单行上的导航:

桌面:http://jsfiddle.net/Baumr/Be9ma/1/

由于这是用于响应式布局,因此在较小的显示器上,导航将收缩为 3 列(甚至可能是 2 列),并带有媒体查询(代码中未包含):

手机:http://jsfiddle.net/Baumr/Be9ma/

但在美学上没有间隔:

由于nav li 元素的宽度为 33.3333%,因此间距被弄乱了——有些导航项很长,有些则很短。但间距不是流动的。

如何将每列调整为仅与最宽的元素 + 填充/边距一样宽?也就是说,不分离或嵌套 ul,这会破坏语义,并且在宽屏上观看时。

这是简单的 HTML:

<nav>
    <ul>
    <li>Home</li>
    <li>Very Long Link</li>
    <li>Blog</li>
    <li>About</li>
    <li>Also Long Link</li>
    <li>Email</li>
    </ul>
</nav>​

这里是相关的 CSS:

nav {
    clear: both;
    background: pink;
}

    nav ul {
        padding: 20px 10px 0 30px;
        margin: 0;
        overflow: hidden;
        font-size: 16px;
    }

    nav li {
        font-variant: small-caps;
        text-decoration: underline;
        list-style: none;
        display: block;
        float: left;
        padding: 0 0 30px 0;
        margin: 0; 
        width: 33.33333%;
        float: left;
}

很想听听您的想法。提前谢谢!

附:我想强调跨浏览器兼容性和语义

【问题讨论】:

  • 使用基于百分比的填充或边距?不完全确定您要做什么。

标签: html css responsive-design fluid-layout multiple-columns


【解决方案1】:

为移动设备添加一些@media 查询。

http://jsfiddle.net/bf9cB/
您需要打开/收缩中心栏才能看到更改

@media only screen and (max-width: 480px) {
    nav li { max-width:160px; text-align:center } /* This would only allow 3 to fit */
}

@media only screen and (max-width: 320px) {
    nav li { max-width:106px; text-align:center }
}

投注字体大小将是 320 像素宽(仅供参考)的一个因素。 你的问题让我想起了我最近读的一本书:"Mobile First"。简而言之:在移动设备上开始构建,然后从那里“向上”工作。 Def值得一试。

【讨论】:

  • 这是个问题....他们需要设置 MAX/MIN-WIDTH 以保持间距良好。如果“XX”和“XXXX”的最大宽度设置为 4X,则“XX”不会采用任意/刚性宽度。在 100% 布局中,6 列将转换为“16.667%”。 “33.333”似乎适合小型显示器,但资产净值的差距看起来很糟糕。不能同时拥有这两种方式——除非有某种类型的控制——即为父母、孩子等设置一个最大值。(除此之外——不将 4 个字母导航与十二个字母的兄弟姐妹......只是说')
  • @Matt - 当你自己的评论说“不完全确定你想要做什么”时,你怎么告诉我这不是问题??
  • 啊..我错过了 106160 是不同的值,并认为您只是在回答媒体查询建议。
  • 感谢 Dawson,是的,首先构建了这款移动设备(并且很喜欢这本书),但同时也考虑到了 HTML 语义(因此我从桌面示例开始) .你的例子很好,谢谢!一个问题——为什么是第二个媒体查询?此外,由于您的解决方案依赖于设置text-align: center,因此我拥有的长链接长度不同,这看起来有点奇怪。没有办法左对齐列居中,对吧?
  • 新小提琴:jsfiddle.net/s3Xd3。至于文本对齐......我认为宽度无关紧要,但它看起来不正确。奇怪的是,我敢打赌导航在大显示器上也没有“正确”对齐——但我们的眼睛不会像在更窄的区域内压缩所有东西时那样看到它。当我们“放大”时,变化/缺陷也是如此
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-20
相关资源
最近更新 更多