2016-11-22 4 views
1

Как я могу сделать 3 divs бок о бок. где div1 будет крайне левым, div3 будет крайне правым и div2 посередине.Как сделать 3 divs бок о бок

Я знаю, что это может быть сделано с помощью дисплея: flex и justify-content: space-between, но я ищу подход без flex.

Вот мой подход, но не смог добиться этого.

Я попытался сделать отображения всех Div в: встроенный блок и плавать: слева и плавать: право на двух крайних дивы и для среднего один я попытался маржу: авто, но похоже, что не уважает его

Пожалуйста, помогите

.container { 
 
    border: 1px solid; 
 
} 
 
.container div { 
 
    height: 50px; 
 
    width: 50px; 
 
    background: red; 
 
    display: inline-block; 
 
} 
 
#div1 { 
 
    float: left; 
 
} 
 
#div3 { 
 
    float: right; 
 
} 
 
#div2 { 
 
    margin: auto; 
 
}
<div class="container"> 
 

 
    <div id="div1"></div> 
 
    <div id="div2">he</div> 
 

 
    <div id="div3"></div> 
 
</div>

ответ

4

попробовать это. position: absolute;

.container { 
 
    border: 1px solid; 
 
    position: relative; 
 
    overflow: hidden; 
 
    
 
} 
 
.container div { 
 
    height: 50px; 
 
    width: 50px; 
 
    background: red; 
 
    display: inline-block; 
 
    
 
} 
 
#div1 { 
 
float: left; 
 
} 
 
#div3 { 
 
float: right; 
 
} 
 
#div2 { 
 
    position: absolute; 
 
    left: 0; 
 
    right: 0; 
 
    margin: auto; 
 
}
<div class="container"> 
 

 
    <div id="div1"></div> 
 
    <div id="div2">he</div> 
 

 
    <div id="div3"></div> 
 
</div>

+0

Это хорошо, но вы можете объяснить, почему margin: auto просто не работает, почему он должен быть установлен абсолютным – Geeky

+0

'margin: 0 auto' работает только на элементах уровня блока. Пока ваш элемент имеет ширину, 'position: absolute; Слева направо: 0; право: 0; margin: auto; 'будет центрировать его горизонтально, иначе он будет растягиваться слева направо. –

+0

margin: auto не работает с встроенным блоком –

0

не используйте float и inline-block вместе. Это будет работать:

<div class="container"> 
    <div id="div1"></div> 
    <div id="div2"></div> 
    <div id="div3"></div> 
</div> 

.container { 
    width:100%; 
} 

#div1, #div2, #div3 { 
    height: 50px; 
    background: red; 
    display: inline-block; 
    width:33.33%; 
    margin-right:-4px; 
} 

Если вы хотите стилизовать дивы индивидуально, то цель их индивидуально

+0

Я хочу, чтобы все три дивы, чтобы быть на той же строке – Geeky

+0

редактируемого расположить на одной линии – Tom

1

.container { 
 
    border: 1px solid; 
 
    position: relative; 
 
} 
 
.container div { 
 
    height: 50px; 
 
    width: 50px; 
 
    background: red; 
 
    display: block; 
 
} 
 
#div1 { 
 
    float: left; 
 
} 
 
#div3 { 
 
    position: absolute; 
 
    right: 0; 
 
    top: 0; 
 
} 
 
#div2 { 
 
    margin: auto; 
 
}
<div class="container"> 
 

 
    <div id="div1"></div> 
 
    <div id="div2">he</div> 
 

 
    <div id="div3"></div> 
 
</div>

+0

вы переставляя дивы, я хочу div1 быть плавал: левый и div3 быть плавал : right – Geeky

+0

легко решить эту проблему, если допускается переупорядочение. –

+0

Я отредактировал ответ. Если заказ не может быть изменен, я должен установить абсолютный div3. –

2

это то, что ваш код будет

.container { 
     border: 1px solid; 
    } 
    .container div { 
     height: 50px; 
     width: 50px; 
     background: red; 
     display: inline-block; 
    } 
    #div1 { 
     float: left; 
    background-color:red; 
    } 
    #div3 { 
     float: left; 
     background-color:green; 
    } 
    #div2 { 
     float: left; 
     background-color:yellow; 
    } 

и

<div class="container"> 
    <div id="div1">div 1</div> 
    <div id="div2">div 2</div> 
    <div id="div3">div 3</div> 
</div> 
+0

Все три поплавка влево? –

1

Пожалуйста, проверьте ниже CSS увидеть, если это то, что вы хотите:

.container { 
 
    float: left; 
 
    width: 300px; 
 
    border: 1px solid; 
 
} 
 
#div1 { 
 
    float: left; 
 
    width: 100px; 
 
    background-color: red; 
 
} 
 
#div2 { 
 
    float: left; 
 
    width: 100px; 
 
    background-color: green; 
 
} 
 
#div3 { 
 
    float: left; 
 
    width: 100px; 
 
    background-color: blue; 
 
}
<div class="container"> 
 
    <div id="div1">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur ullamcorper eleifend volutpat. Class aptent taciti sociosqu ad litora torquent per conubia nostra.</div> 
 
    <div id="div2">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div> 
 
    <div id="div3">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur ullamcorper eleifend volutpat.</div> 
 
</div>

Смежные вопросы