-1

背景

我一直在寻找具有 960px 宽度和两列的布局:

  • 主要内容:右对齐,宽度550px,从容器右边距插入;
  • 侧边栏:左对齐,宽度为 250px,在顶部、左侧和底部边缘与容器齐平;

我一直在努力解决的问题是设置背景,使侧边栏背景占用 250px 宽度,100% 父级高度,并与父级左边缘齐平,让主要内容占用剩余宽度和 100% 高度父母。

我看过一些技术,但它们似乎相对不灵活,例如,虽然它很优雅,但 Faux Columns 似乎不太合适http://www.alistapart.com/articles/fauxcolumns/

考虑了一下,我决定尝试将内容的渲染与背景的渲染分开。具体来说,我将主要内容向右浮动,侧边栏向左浮动,然后 aclear:both以便容器将调整为两列中较大的一个。

接下来,虽然仍在容器内但在 之后clear:both,我有两个绝对定位的空 div,侧边栏的高度为 100%,宽度为 250px,left:0主要内容的宽度为 100%。我还调整了 z-index 以便侧边栏在前面。

还有其他必要的 CSS(例如容器包装器必须相对定位),但请参阅下面的源代码。

问题

这与我在带有 Safari 的 Mac 上所希望的完全一样,两个背景都根据最高的列展开,并且源代码中的标记是有效的。但是,我的两个主要担忧是:

  1. 我不确定这将如何在其他浏览器中呈现,尤其是 IE
  2. 我试图在设计时考虑到 SEO,但我对 SEO 不太了解,因为我还在学习,这对 SEO 有多友好?

其他来源

如何使浮动 div 的高度达到其父级的 100%?

http://brentgrossman.com/348/not-so-fuax-columns/

(可能还有一些,抱歉不记得了!)

源代码

注意我使用了明亮的颜色和调整过的 div 来更好地说明正在发生的事情。

<!DOCTYPE html>
<html lang="en-US" >
<head>
<title>Test Page</title>
<meta charset="UTF-8"/>
<style>

#main {
    
}

#main-outer-wrapper {
    width: 960px;
    margin: 0 auto;
}

#main-inner-wrapper {
    background: red;
    /* This is the fallback background colour */
    position: relative;
    /* Must be relative for the background divs to have 100% height and to ensure z-index functions */
    z-index: -20;
    /* Ensure fallback background is below all other divs */
}

#main-content {
    /* This is where all the actual content will be */
    width: 550px;
    float: right;
    /* IMPORTANT float */
    background: orange;
    /* Background would actually be transparent, here it is for illustration */
    margin: 10px 80px 10px 10px;
    /* Keep content away from edges as part of design only*/
}

#left-primary-sidebar {
    /* This is for the actual sidebar content */
    float: left;
    /* IMPORANT float */
    background: green;
    /* Again, background colour is purely for illustration */
    width: 230px;
    margin: 10px;
    /* I have adjusted the margin for illustration only, in situ width is 250px and margin is 0 */
}

#main-content-background {
    /* This div has no content */
    background: blue;
    /* The intended right column background */
    
    /*  Position MUST be absolute so that the div can 
    *       have its height based on parent container, using
    *       top and bottom. Width can be specific but I have
    *       set it to 100% for maintainability */
    position: absolute;
    width: 100%;
    right: 0;
    top:0;
    bottom: 0;
    z-index:-10;
    /* As width is 100%, it is important that this is placed below the sidebar */
}

#left-primary-sidebar-background {
    /* As above regarding position */
    background: purple;
    position: absolute;
    width: 250px;
    left: 0;
    top:0;
    bottom: 0;
    z-index:-9;
    /* Div must be above right column */
}


.clear { 
    clear: both;
}

</style>
</head>

<body>
    <section id="main">
        <div id="main-outer-wrapper" class="wrapper outer-wrapper">
            <div id="main-inner-wrapper" class="wrapper inner-wrapper">
                <section id="main-content">
                    <div id="main-content-wrapper" class="wrapper">
                    Content
                    </div><!-- #main-content-wrapper -->
                </section><!-- #main-content -->
                <section id="left-primary-sidebar">
                    <div id="left-primary-sidebar-wrapper" class="sidebar">
                    Sidebar
                    </div><!-- #left-primary-sidebar-wrapper -->
                </section><!-- #left-primary-sidebar -->            <div id="main-content-background"></div>
                <div id="left-primary-sidebar-background"></div>
                <div class="clear"></div>
            </div><!-- #main-inner-wrapper -->
        </div><!-- #main-outer-wrapper -->
    </section><!-- #main -->
</body>
</html>

感谢阅读,期待评论!

4

1 回答 1

0

至于它在 IE 中的外观,您可以使用Abobe 的 BrowserLab 之类的工具进行测试。

至于 SEO:设计对 SEO 的影响很小,除非您的设计导致页面加载缓慢,因为页面加载速度确实会产生影响。像谷歌这样的复杂搜索引擎使用文本在源代码中的位置来表示重要性的日子已经一去不复返了。如今,搜索引擎会分析您页面的实际文本内容,并将其与其他页面的文本内容进行比较。在 h1 标记中放置某些内容确实向搜索引擎表明该文本是标题,因此比页面上的其他文本稍微重要,但如果该文本实际上似乎与对文本其余部分的分析无关我认为他们抓住了这一点并丢弃了 h1 文本。

如果您的网站几乎没有竞争,那么您在网页上所做的事情会对您的排名产生巨大影响 - 但如果竞争程度中等,那么链接到您的网页的内容(以及链接的网页数量)给你的)占你页面排名分数的很大一部分,以至于你的页面结构绝对没有可衡量的影响。您页面的排名将取决于其内容与搜索词的相关性,并根据其他匹配页面内容的相对相关性进行加权。这纯粹是关于内容和权威。

所以我不会太担心您的页面结构将如何影响搜索引擎排名。只需确保页面快速加载,并且内容与您想要排名的搜索词尽可能相关。

于 2013-01-20T00:41:05.193 回答