CSS альтернатива этому коду CSS-jQuery? - PullRequest
8 голосов
/ 31 января 2010

У меня есть две колонки рядом, которые разных цветов. Фон также имеет уникальный цвет. Правый столбец содержит текст, который будет расширяться до неизвестной высоты. Другой столбец содержит практически ничего.

<div id="container">
    <div id="leftColumn">
        <p>Only one small paragraph here</p>
    </div>

    <div id="rightColumn">
        <p>Many large paragraphs inside here.</p>
    </div>
</div>

Мне бы хотелось, чтобы левая колонка была точно такой же высоты, как правая колонка.

Вот CSS ...

#leftColumn {
    display:inline-block;
    width: 200px;
}
#rightColumn {
    display:inline-block;
    width: 600px;
    vertical-align: top;
}

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

$(document).ready(function() {
    $('#leftColumn').css('height', $('#rightColumn').innerHeight());
});

Есть ли способ сделать это только с помощью CSS?

Ответы [ 3 ]

4 голосов
/ 31 января 2010

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

Методы включают в себя:

  • Использование дисплея: таблица элементов
  • Искусственные столбцы (фоновое изображение на родительском элементе)
  • Добавление нескольких контейнеров div для каждого фона
  • Используйте таблицу (не очень популярная по понятным причинам)

Все они имеют различные преимущества, недостатки, и каждый из них вносит свою головную боль в разработку сайта. Я бы проголосовал за использование поддельных столбцов, потому что он поддерживает HTML простейшим и совместим со всеми браузерами.

Дополнительное чтение:

0 голосов
/ 31 января 2010

Я не уверен, есть ли чистый способ CSS сделать это (возможно, в CSS3). Но вы должны прочитать эту статью и посмотреть, работает ли она для вас.

http://www.alistapart.com/articles/fauxcolumns/

Если нет, вы можете рассмотреть эту технику (которая требует много глупой разметки).

http://matthewjamestaylor.com/blog/equal-height-columns-3-column.htm

0 голосов
/ 31 января 2010

это можно легко сделать с помощью <table>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...