CSS 3 Column float (2 фиксированных, 1 динамический) - PullRequest
8 голосов
/ 18 июля 2009

Я создаю заголовок, который состоит из 3 частей.

Страница должна быть текучей: min-width:940px; max-width:1200px;

Первые две части заголовка будут фиксированного размера:

   left       middle        right
<---------><---------><----------------->
   134px      183px       (Fill the remaining space)

Я бы хотел, чтобы нужная часть менялась в зависимости от размера страницы, я вставлю то, что у меня есть, но моя проблема в том, чтобы заполнить пробел полностью.

HTML:

<div class="main">

<div class="left"></div>
<div class="middle"></div>
<div class="right"></div>

CSS:

    .main{
        margin:auto;
        min-width:940px;
        max-width:1200px;
        background-color:#000;
    }

    .left{
    float: left;
    width: 134px;
    height: 191px;
    background-color:#0000ff;
    }
    .middle{
    float: left;
    width: 183px;
    height: 191px;
    background-color:#ffff00;
    }

    .right{
    float: left;
    width: 60%;
    height: 191px;
    background-color:#ff0000;
    }

Ответы [ 2 ]

10 голосов
/ 18 июля 2009

Попробуйте это:

<html>
<head>
<title>Three columns</title>
<style type="text/css">
div.main { background-color: #000; }
div.left { float: left; width: 134px; height: 191px; background-color:#0000ff; }
div.middle { float: left; width: 183px; height: 191px; background-color:#ffff00; }
div.right { height: 191px; background-color: #ff0000; margin-left: 317px; }
</style>
</head>
<body>
<div class="main">
<div class="left"></div>
<div class="middle"></div>
<div class="right"></div>
</div>
</body>
</html>
2 голосов
/ 19 октября 2010

У меня недостаточно репутации, чтобы комментировать, но я просто хотел подтвердить правильность предыдущего ответа. Я искал что-то немного другое: исправил жидкость, исправил, так что изменил это следующим образом:

<html>
<head>
<title>Three columns</title>
<style type="text/css">
div.main { background-color: #000; }
div.left { float: left; width: 134px; height: 191px; background-color:#0000ff; }
div.middle { height: 191px; background-color: #ff0000; margin-left: 134px; margin-right: 183px;}
div.right { float: right; width: 183px; height: 191px; background-color:#ffff00; }
</style>
</head>
<body>
<div class="main">
<div class="left"></div>
<div class="right"></div>
<div class="middle"></div>
</div>
</body>
</html>

Ключевые моменты, на которые следует обратить внимание: - поля с поплавком используются для предотвращения наложения тела на края. - в моем случае, вам нужно изменить порядок div в html - вам на самом деле не нужен div для "середины". Один сайт, который обходится без этого, - это блог quirksmode (он просто устанавливает поля непосредственно для элемента body): http://www.quirksmode.org/blog/archives/browsers/index.html

...