Модераторы: Illuminaty

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Два дива в центре экрана, Как это сделать? 
:(
    Опции темы
t77
  Дата 27.10.2010, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 459
Регистрация: 27.7.2008

Репутация: нет
Всего: нет



Доброе время суток.

Код

<body>
    <div>
        <div style="background-color:green; width:250px; height:250px; float:right; border: 1px solid Black;">    
        </div>
        <div style="background-color:red; width:250px; height:250px; border: 1px solid Black;">
        </div>
    </div>    
</body>


Вопрос; как с помощью CSS поставить два дива в центральной части страницы, один рядом сдругим, и чтобы между ними было расстояние скажем в 20 px. ?



PM MAIL   Вверх
ayax2005
Дата 27.10.2010, 01:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


echo $smile
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 17.4.2008
Где: Питер

Репутация: 3
Всего: 11



как-то так
Код

<body>
    <div style="text-align: center;">
        <div style="background-color:green; width:250px; height:250px; border: 1px solid Black; display: inline-block; margin-right: 10px;">    
        </div>
        <div style="background-color:red; width:250px; height:250px; border: 1px solid Black; display: inline-block;margin-left: 10px;">
        </div>
    </div>    
</body>



--------------------
все вопросы - из-за неверной формулировки задачи
PM MAIL ICQ   Вверх
FightInGlory
Дата 27.10.2010, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 14.11.2006

Репутация: 1
Всего: 1



Если я вас правильно понял, то вам надо два блока по середине экрана не зависимо от разрешения. Если это так, то вот вам пример.
Код

*{
    padding:0;
    margin:0;
}
.block{
    width:100%;
}
.l-block{
    position:relative;
    left:50%;
    float:left;
}
.cont{
    float:left;
    position:relative;
    right:50%;
    width:200px;
    height:200px;
    margin-right:20px;
    border:1px solid red;
}

<div class="block">
    <div class="l-block">
        <div class="cont"></div>
        <div class="cont"></div>
    </div>
</div>

PM MAIL   Вверх
t77
Дата 27.10.2010, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 459
Регистрация: 27.7.2008

Репутация: нет
Всего: нет



Оба примера рабочии... smile 
Результат у обоих примеров один и тотже.
Какой из вышеприведенных примеров предподчтительнее..??
Пример ayax2005-а, на мой взгляд проще.
Спасибо

PM MAIL   Вверх
FightInGlory
Дата 27.10.2010, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 14.11.2006

Репутация: 1
Всего: 1



Проще и к тому же не работает в ИЕ 7 и 6.
PM MAIL   Вверх
ayax2005
Дата 27.10.2010, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


echo $smile
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 17.4.2008
Где: Питер

Репутация: 3
Всего: 11



FightInGlory совершенно прав. Свойство inline-block не поддерживается ###браузерами.


--------------------
все вопросы - из-за неверной формулировки задачи
PM MAIL ICQ   Вверх
Violator
Дата 28.10.2010, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 234
Регистрация: 10.1.2009

Репутация: 15
Всего: 15



ayax2005, 
Поддерживаются, но для изначально инлайн-элементов
Поменяйте в своем примере внутренние div на span
PM MAIL   Вверх
SelenIT
Дата 28.10.2010, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 97
Всего: 401



А для изначально неинлайновых замечательно эмулируется комбинацией display:inline + hasLayout в любом виде (чаще всего zoom:1). Так что разметку можно не менять.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Rayled
Дата 7.11.2010, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 1.5.2010

Репутация: 3
Всего: 3



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

Код

<div style="width:420px; margin:0 auto">
 <div style="width:200px; height:200px; background:red; float:left"></div>
 <div style="width:200px; height: 200px; background:green; float:right"></div>
</div>

PM   Вверх
FightInGlory
Дата 8.11.2010, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 14.11.2006

Репутация: 1
Всего: 1



2 Rayled, данный способ подходит лишь в том случае, если знаешь ширину блока(экрана пользователя). Способы которые приведены выше работают одинаково при любом разрешении или при любой ширине блока, позиционирую два блока по середине экрана(блока).
PM MAIL   Вверх
Rayled
Дата 8.11.2010, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 1.5.2010

Репутация: 3
Всего: 3



Цитата(FightInGlory @  8.11.2010,  10:31 Найти цитируемый пост)
данный способ подходит лишь в том случае, если знаешь ширину блока(экрана пользователя)

Скажите, при каком разрешении данный код не будет ставить блоки по центру? По-моему эти три DIV всегда будут по центру родителя стоять и не важно задана у родителя ширина или нет. Кстати ширина дива с 420px установлена для того, чтобы регулировать расстояние между внутренними блоками без всяких margin,
поэтому только в одном случае пример не будет работать. Если неизвестна ширина ВНУТРЕННИХ блоков, а никак не экрана или родителя, но она-то как раз известна...
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title></title>
 </head>
 <body>
  <div style="width:420px; margin:0 auto">
   <div style="width:200px; height:200px; background:red; float:left"></div>
   <div style="width:200px; height: 200px; background:green; float:right"></div>
  </div>
</body>
</html>



Это сообщение отредактировал(а) Rayled - 8.11.2010, 12:36
PM   Вверх
FightInGlory
Дата 8.11.2010, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 14.11.2006

Репутация: 1
Всего: 1



Вы не понимаете, у вас контейнеры фиксированной ширины. Уберите ее и заполните контейнеры текстом. Вы сразу же заметите, что ваш margin:0 auto; не работает. Именно по этой причине выше были предложены два способа центрирования блоков. Примеры приводились с шириной блока, лишь для того, чтобы показать наглядно.

Это сообщение отредактировал(а) FightInGlory - 8.11.2010, 18:57
PM MAIL   Вверх
Rayled
Дата 8.11.2010, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 1.5.2010

Репутация: 3
Всего: 3



FightInGlory, вы разрываете мне мозг. smile Я все прекрасно понимаю и о том, что в случае нефиксированной ширины внутренних блоков мой способ не работает я сам написал в предыдущем посте. Но в самом задании были явно указаны блоки фиксированной ширины и о том, что они должны быть резиной не было ни слова. Я думаю вопрошающему товарищу нужно было отцентрировать блоки именно фиксированной ширины. Почему? Потому что ваш способ его тоже устроил, а он, как и мой, не работает при нефиксированной ширине. Попробуйте убрать в своем примере ширину у блоков .cont и заполнить их текстом, у вас блоки растянутся в ширину родителя и встанут не рядом, а один под другим...

Это сообщение отредактировал(а) Rayled - 8.11.2010, 20:50
PM   Вверх
FightInGlory
Дата 9.11.2010, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 14.11.2006

Репутация: 1
Всего: 1



2 Rayled, если вы не уверены в своих словах, то лучше не писать ерунду, а проверить. Удалив ширину и добавив текст вы убедитесь, что блоки позиционируются по середине.
Ваш способ отличается тем, что если необходимо будет вставить не два, а скажем три блока, придется менять ширину. А способы которые были предложены ранее в этом плане универсальны.
А кто кому разрывает еще мозг спорный вопрос.
PM MAIL   Вверх
Rayled
Дата 9.11.2010, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 1.5.2010

Репутация: 3
Всего: 3



FightInGlory, это уже интересно, мда... Хорошо, пойдем другим путем.
Цитата(FightInGlory @  9.11.2010,  12:01 Найти цитируемый пост)
Удалив ширину и добавив текст вы убедитесь, что блоки позиционируются по середине

Вот ваш пример, я добавил только текст. Уберите width: 200px и посмотрите.
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Тест</title>
<style type="text/css">
*{
    padding:0;
    margin:0;
}
.block{
    width:100%;
}
.l-block{
    position:relative;
    left:50%;
    float:left;
}
.cont{
    float:left;
    position:relative;
    right:50%;
    width:200px;
    height:200px;
    margin-right:20px;
    border:1px solid red;
}
</style>
</head>
<body>
<div class="block">
    <div class="l-block">
        <div class="cont">
        Текст текст текст текст текст текст текст текст текст текст текст текст
        текст текст текст текст текст текст текст текст текст текст текст текст
        текст текст текст текст текст текст текст текст текст текст текст текст
        </div>
        <div class="cont">
        Текст текст текст текст текст текст текст текст текст текст текст текст
        текст текст текст текст текст текст текст текст текст текст текст текст
        текст текст текст текст текст текст текст текст текст текст текст текст
        </div>
    </div>
</div>
</body>
</html>


Цитата(FightInGlory @  9.11.2010,  12:01 Найти цитируемый пост)
Ваш способ отличается тем, что если необходимо будет вставить не два, а скажем три блока, придется менять ширину

Причем здесь три блока в данном случае?
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Вёрстка веб-сайтов | Следующая тема »


 




[ Время генерации скрипта: 0.0638 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.