2013-12-03 6 views
1

Здесь у вас есть код и демо-версия проблемы. Если вы видите, что последние два черных ящика находятся в центре, есть ли способ показать их на левой стороне?css встроенные элементы блока, последний ребенок, чтобы плавать влево при использовании text-align: center на родительском div

mainparent 
{ 
    width:500px; 
    height:200px; 
    text-align:center; 
    background:#ccc; 
} 
.boxes 
{ 
    width:50px; 
    height:50px; 
    display:inline-block; 
    margin-left:5px; 
    background:#000; 
} 

DEMO

+1

добавить: #mainparent {выравнивания текста: слева;} – user1956570

+1

Я думаю, что ОП не хочет нарушать свой первоначальный Выровнять все ящики – DaniP

ответ

1

Почему бы просто не поплавать их влево? (и изменить размер контейнера, чтобы подогнать их ..)

Таким образом, вы лучше контролировать обочину, так как font-size не влияет на них (ни пробельные)

#mainparent 
{ 
    width:480px; 
    height:200px; 
    background:#ccc; 
} 
.boxes 
{ 
    width:50px; 
    height:50px; 
    float:left; 
    margin:5px; 
    background:#000; 
} 

Demo в http://jsfiddle.net/JxhP8/32/


Update

Если вы хотите элементы выравниваются по левому краю между собой, но центр выровнены в их контейнере, вам нужен еще один элемент в середине и некоторые JavaScript ..

Вот реализация JQuery

HTML

<div id="mainparent"> 
    <div class="centerized"> 
     <div class="boxes"></div> 
     <div class="boxes"></div> 
     <div class="boxes"></div> 
     .. 
     .. 
     <div class="boxes"></div> 
     <div class="boxes"></div> 
     <div class="boxes"></div> 
    </div> 
</div> 

CSS

#mainparent 
{ 
    background:#ccc; 
} 
.centerized{ 
    overflow:hidden; // to grow according to the boxes 
    margin:0 auto; // to be centered in container 
} 

JQuery

$(function(){ 
    // cache the repeatedly used elements 
    // and fixed values 
    var main = $('#mainparent'), 
     centerized = main.find('.centerized'), 
     itemWidth = main.find('.boxes').outerWidth(true); 

    $(window).resize(function(){ 
     var fitItems = (main.width()/itemWidth) | 0; 
     centerized.width(fitItems * itemWidth); 
    }).trigger('resize'); 
}); 

Demo вhttp://jsfiddle.net/JxhP8/34/

+0

, что произойдет, когда scren будет больше или меньше :) – AXheladini

+0

, потому что я хочу, чтобы он был отзывчивым, а на реальном сайте родительский div - 100%. – AXheladini

+0

http://jsfiddle.net/JxhP8/33/ произойдет в этом случае. –

1

Изменить ваш CSS #mainparenttext-align к left.

+0

, чем дочерние элементы, не будут центрироваться внутри родительского div! – AXheladini

+0

Думаю, вам придется пойти с ответом @ DaveRook. –

1

Поскольку у вас уже есть ответы, альтернатива использовать CSS селекторы

#mainparent 
{ 
    width:500px; 
    height:200px; 
    text-align:center; 
    background:#ccc; 
} 
.boxes 
{ 
    width:50px; 
    height:50px; 
    display:inline-block; 
    margin-left:5px; 
    background:#000; 
} 

.boxes:nth-child(17) 
{float:left; margin-left:21px;} 

.boxes:nth-child(18) 
{float:left; margin-left:9px;} 

JSFIDDLE

У вас еще есть работа, чтобы сделать, чтобы получить расположение правильно, это работает только тогда, когда у вас есть фиксированное число коробок и т. д., но вы можете найти этот подход полезным (или ужасно знать, чтобы не использовать его снова!)

+0

таким образом последние два элемента идут к самому левому, это не то, что я хочу! – AXheladini

+0

Мне нужно, чтобы он был отзывчивым. Таким образом, он не будет выглядеть хорошо на разных экранах. Для этого может быть какое-то решение javascript! – AXheladini

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

  • Нет связанных вопросов^_^