【问题标题】:Creating a CSS-rule to work for both a one and two column layout创建适用于一列和两列布局的 CSS 规则
【发布时间】:2010-12-16 18:35:31
【问题描述】:

这就是我想要做的:

Example http://img689.imageshack.us/img689/5761/cssautowidth.th.jpg (Larger image.)

<nav> 元素出现在设计中时,我希望它看起来像下面的示例。在#content div 设置了百分比值时是否可以执行此操作?我只是想知道如果不为#content 使用两种不同的样式(两者都具有不同的宽度值),这是否可行。
只是漂浮似乎不行。

我希望#content 在第一个示例中具有百分比值的原因是因为我在#body 中有一个背景图像,它会产生外部发光的错觉。

编辑:我只是通过使用边距消除了使用宽度百分比的需要。

【问题讨论】:

    标签: html css web


    【解决方案1】:

    在此处查看示例:http://css.maxdesign.com.au/floatutorial/tutorial0816.htm

    您应该做的是在您的<nav> 元素上设置float:rightwidth,并让#content 没有任何浮动或宽度,只需设置边距。这样,内容将尝试占据所有给定的空间,并且不会“落入”导航中。

    然后,如果您隐藏 <nav> 元素,内容将自动调整大小(但您还需要从右侧移除填充)。

    这是示例代码:

    <style type="text/css">
        #container { width:700px; margin:0 auto; border:1px solid #000; }
        #nav  { display:none; }
        .double #nav { width:10%; float:right; display:block; }
        #content { margin-right:10%; border-right:1px solid #000; }
    </style>
    
    <div id="container" class="double">
        <div id="nav">nav content</div>
        <div id="content">page content</div>
    </div>
    

    现在,如果您从容器元素中删除 class="double",您将看到内容已正确调整大小以占用给定空间的 90%。如果您想获得 100% - 只需在样式中的 #content 之前添加 .double 即可。

    【讨论】:

    • 好的,概念是不要浮动内容,然后使用边距来限制框的右边缘,使其不与&lt;nav&gt; 相交。但是我仍然需要附加一个类来设置右边距,对吗?有没有办法摆脱这个?
    • 您可以移除margin-right 并在右侧导航中设置高度,这样#content 的内容就不会落在right:float'ed, right navigation 块之下。
    猜你喜欢
    • 2012-10-06
    • 2011-12-03
    • 2021-04-01
    • 2013-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-19
    • 1970-01-01
    相关资源
    最近更新 更多