Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.11.2015, 05:58
Интересующийся
Отправить личное сообщение для S.E.K.T.O.R. Посмотреть профиль Найти все сообщения от S.E.K.T.O.R.
 
Регистрация: 09.07.2015
Сообщений: 15

Расположить три div в одну строку с заданной шириной
Доброго времени суток господа!
Помогите, пожалуйста решить задачку по CSS

Как можно сделать такое?


То есть, имеется четыре div, один контейнер и три внутри. Нужно эти три расположить в одну строку, при этом, средний div должен быть по центру контейнера и иметь заданную ширину в пикселях, а левый и правый замостить остальное пространство контейнера по ширине.

Что-то вроде этого
<div class="container" style="width: 100%">
	<div>div1</div>
	<div style="width="300px">div2 в центре контейнера</div>
	<div>div3</div>
</div>


Заранее благодарен за вашу помощь!
Ответить с цитированием
  #2 (permalink)  
Старый 15.11.2015, 12:55
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

Скоро придут люди с
display:flex
и покажут как правильно сделать, но пока можете вот так:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>ГГ</title>
<style>

* {
  margin:0;
  padding: 0;
  outline: none;
}

.container {
	width: 100%;
	height: 100px;
}

.container>div {
	display: inline-block;
	width: calc((100% - 300px)/2);
	height: 100px;
	background-color: red;
	margin-right: -4px;
}
.container .center {
	width: 300px;
	background-color: green;
}

</style>
</head>
<body>
<div class="container">
	<div></div>
	<div class="center"></div>
	<div></div>
</div>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 15.11.2015, 19:36
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

EmperioAf, calc не поддерживается на телефонах.

Проще тогда уж так:

.container {
    display: table;
    table-layout: fixed;
    width: 100%;
}
.container > div {
    display: table-cell;
}

Последний раз редактировалось ruslan_mart, 15.11.2015 в 19:41.
Ответить с цитированием
  #4 (permalink)  
Старый 15.11.2015, 20:08
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

Сообщение от Ruslan_xDD
Проще тогда уж так:
Ок. Я стараюсь избегать применений табличной вёрстки (кроме применения по назначению)
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>ГГ</title>
<style>

* {
  margin:0;
  padding: 0;
  outline: none;
}

.container {
    display: table;
    table-layout: fixed;
	width: 100%;
	height: 100px;
}

.container div {
    display: table-cell;
    background: red;
}

  .container  .center {
      width:300px;
        background: green;
    }
</style>
</head>
<body>
<div class="container">
    <div></div>
    <div class="center"></div>
    <div></div>
</div>
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 15.11.2015, 20:15
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Сообщение от EmperioAf
Я стараюсь избегать применений табличной вёрстки
Ну в данном случае, это самое лучшее кросбраузерное решение. Флекс конечно лучше, но работает не везде, к сожалению.
Ответить с цитированием
  #6 (permalink)  
Старый 15.11.2015, 22:02
Интересующийся
Отправить личное сообщение для S.E.K.T.O.R. Посмотреть профиль Найти все сообщения от S.E.K.T.O.R.
 
Регистрация: 09.07.2015
Сообщений: 15

EmperioAf, Ruslan_xDD, спасибо вам огромное за помощь!
Ответить с цитированием
  #7 (permalink)  
Старый 16.11.2015, 13:12
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от EmperioAf
Скоро придут люди с
display:flex
Флексбокс в этом деле не помощник...
Ответить с цитированием
  #8 (permalink)  
Старый 17.11.2015, 12:44
Аватар для sanmihan
Аспирант
Отправить личное сообщение для sanmihan Посмотреть профиль Найти все сообщения от sanmihan
 
Регистрация: 28.05.2015
Сообщений: 54

Сообщение от ksa
Флексбокс в этом деле не помощник...
<!DOCTYPE html>
<html>
<head>
<style>
.container {
    display: flex;
    width: 100%;
    height: 100px;
}
.container div {
    flex-grow: 1;
    background: red;
}
.container .center {
    width: 300px;
    flex-grow: 0;
    background: green;
}
</style>
</head>
<body>
<div class="container">
<div></div>
<div class="center"></div>
<div></div>
</div>
</body>
</html>
Ответить с цитированием
  #9 (permalink)  
Старый 17.11.2015, 14:22
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

sanmihan, буду иметь ввиду.
Ответить с цитированием
  #10 (permalink)  
Старый 14.12.2016, 16:38
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 281

А как сверстать блоки так, чтобы при уменьшении окна, они располагались вертикально друг под другом посередине, причем при уменьшении экрана не было так, чтобы сначала уходил один блок вниз, а сразу выстраивались в вертикальную линию, как только место хотя бы для одного уже не было?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объединить три конструкции проверки полей в одну golopogos Элементы интерфейса 0 27.01.2015 10:04
Функция для перевода размера из байтов в понятный для человека формат Антон Крамолов Ваши сайты и скрипты 4 05.04.2013 16:42
Как соединить 2 div в одну строку или в один? vadim90k (X)HTML/CSS 3 03.09.2012 19:11
Вывод JS значения в одну строку в HTML velo Общие вопросы Javascript 7 15.12.2009 03:57
объединение элементом массива в одну строку vvsh Элементы интерфейса 2 17.10.2009 19:53