CSS - страница с 3 колонками - PullRequest
0 голосов
/ 28 января 2011

Я пытаюсь сделать страницу с 3 столбцами, и у меня проблема.Мой HTML:

<?php
$this->headMeta()
    ->setIndent(8)
    ->appendHttpEquiv('Content-Type', 'text/html;charset=utf-8')
    ->appendName('keywords', 'story')
;

$this->headTitle()
    ->setIndent(8)
    ->setSeparator(' - ')
    ->headTitle('Your Story')
;

echo $this->doctype();
?>

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <base href="<?php echo $this->baseUrl(); ?>" />

    <link rel="stylesheet" type="text/css"
          href="<?php echo $this->baseUrl('/styles/site.css'); ?>" />
          <?php
          echo "{$this->headMeta()}
        {$this->headTitle()}
        {$this->headLink()}"
          ?>
</head>
<body>
    <div id="BODY">
        <div id="HEADER">
            <div id="headerLogin">
                <div id="logged-in-as">
                    <?php echo $this->loggedInAs(); ?>
                </div>
            </div>
            <div id="IMAGE">
               <img src="../images/write.png" alt="" height="20%" width="90%" />
            </div>
            <div id="LOGO">
               <img src="../images/logo.png" alt="Your true Story..." height="30%" width="160%"/>
            </div>
            <div id="USER">
            </div>
        </div>

        <div id="MENU">Menu:
            <div id="MENU_IN">
                <div id="LIST">
                    <ul>
                    <?php
                            echo $this->menuLinks();
                    ?>
                    </ul>
                </div>
            </div>
        </div>

        <div id="CONTENT">
            <img src="../images/ScG.png" alt="" height="10%"/>
            <div id="CONTENT_IN">

                <?php echo $this->layout()->content ?>
                <img src="../images/ScD.png" alt="" height="10%" />
            </div>
        </div>

        <div id="INFORMATIONS">
            <?php
                $auth = Zend_Auth::getInstance();
                if ($auth->hasIdentity()) {
            ?>
                    Your profile:
                    <div id="INFORMATIONS_IN"
                         <div id="LIST">
                            <ul>
                            <?php
                                echo $this->usersProfilLinks();
                            ?>
                            </ul>
                        </div>
                    </div>
            <?php } ?>
        </div>

        <div id="FOOT">Iwona Jamroz</div>

    </div>
</body>

Мой CSS:

    body
{
    background-image: url(../images/back.png);

    background-repeat: repeat;
    padding-top: 10px;
    padding-left: 10px;
    padding-right: 10px;
    overflow: visible; 
    height: 100%;

}

#IMAGE {
    margin-top: 15px;
    margin-left: 8%;
    float: left;
}

#LOGO{
    margin-top: 5px;
    margin-right: 25%;
    float: right;
}

#HEADER{
     margin-bottom: 15%;
}
#MENU {
    width: 20%;
        height: 10%;
        background-image: url(../images/texMenuBack.png);
        margin-right: 5px;
        float: left;
}

#MENU_IN
{
    margin-top:10%;
    height: 10%;
    margin-bottom: 5px;
    margin-left: 5px;
    margin-right: 5px;
    background-image: url(../images/texMenuMid.png);
}

#CONTENT{

    margin-left: 21%;
    margin-right: 21%;
        float: left;
}

#CONTENT_IN {
        padding-left: 8px;
        padding-right: 5px;
        padding-top: 5px;
        padding-bottom: 5px;

        background-image: url(../images/texM.png);
        background-repeat: repeat;
        min-height: 150px;
}

#INFORMATIONS {
    width: 18%;
        background-image: url(../images/texMenuBack.png);
        margin-left: 5px;
        float: right;
}

#INFORMATIONS_IN{
    margin-top: 14%;
    margin-bottom: 4px;
    margin-left: 3px;
    margin-right: 3px;
    background-image: url(../images/texMenuMid.png);
}

#FOOT {
    clear: both;
        vertical-align: middle;
}

#headerLogin a{ color: white;
    text-align: left;
    word-spacing: 3px;
    font-family: fantasy;
    font-size: 24px;
}
#headerLogin {
    color: whitesmoke;
    font-family: monospace;
    font-size: 24px;
}

#LIST {
}

И у меня есть 3 столбца, но один за другим, и я не могу понять это, поскольку я прочитал, чтоЧтобы сделать 3 колонки, достаточно написать в CSS float: left, float: left, float: right, но у меня все время есть один за другим, а не в одной строке: / Почему?

Это выглядит так:

aaa
.......aaaaaa
...................aaa

Ответы [ 2 ]

2 голосов
/ 29 января 2011

Поплавки сложны, и вы должны попробовать протестировать их в разных браузерах.Тем не менее, я заметил это

#CONTENT{
  margin-left: 21%;
  margin-right: 21%;
  float: left;
}

Попробуйте удалить поля left-left и margin-right, потому что это, вероятно, вызывает эффект, который вы описываете.

Попробуйте вместо этого:

#CONTENT{
 width: 20%;
 float: left;
}
0 голосов
/ 29 января 2011

Я хотел бы рассмотреть возможность использования CSS Framework, такого как 960 или Blueprint CSS , это сделает макеты с колоннами невероятно простыми и совместимыми с различными браузерами. В CSS-фреймворках нет необходимости писать макет CSS, что устраняет необходимость в значительном тестировании совместимости браузера и помогает поддерживать чистоту и порядок вашего презентационного CSS.

Ваш HTML будет выглядеть примерно так (пример в 960)

<div class="container_24">
<div class="grid_8"></div>
<div class="grid_8"></div>
<div class="grid_8"></div>
</div>

Объяснение: Контейнер из 24 столбцов, где каждый столбец имеет ширину 8 столбцов, приведет к макету из 3 столбцов.

...