2014-04-03 3 views
3

Я видел, как это было опубликовано везде, без реальной помощи, или оно закрывалось без причины, кроме того, модераторы чувствовали, что это будет «бесполезно» в будущем, хотя google взбивает хороший результат суммирования приблизительно 55 000+ соответствующих результатов.text-align right and padding right

Итак, почему не будет работать с родителем и правильным выравниванием текста?

.rightcbar { 
    display: block; 
    font-family: 'Roboto', sans-serif; 
    text-shadow: 0px 0px 20px #dbd69d; 
    padding-right: 50px; 
    height: 152px; 
    width: 592px; 
    line-height: 152px; 
    background: url(rightcbar.png) no-repeat; 
} 

.rightcbar .rightctext { 
    display: inline-block; 
    width: 100%; 
    text-align: right; 
    font-size: 25px; 
    color: #f3f1de; 
    font-size: 25px; 
    font-family: 'Roboto', sans-serif; 
    text-shadow: 0px 0px 10px #aaa; 
    -webkit-font-smoothing: subpixel-antialiased; 
} 

HTML-

<div id="rightc"> 
    <div class="rightcbar"> 
     <div class="rightctext">Test</div> 
    </div> 
    <div class="rightcbar"> 
     <div class="rightctext">Test</div> 
    </div> 
    <div class="rightcbar"> 
     <div class="rightctext">Test</div> 
    </div> 
</div> 

Smeegs помогли объяснить, почему именно вещи не работают, как я собирался ниже; если ты заинтересован. Вот пересмотренный и рабочий код.

.rightcbar { 
    display: block; 
    font-family: 'Roboto', sans-serif; 
    text-shadow: 0px 0px 20px #dbd69d; 
    padding-right: 50px; 
    height: 152px; 
    width: 592px; 
    line-height: 152px; 
    background: url(rightcbar.png) no-repeat; 
    background-position: center right; 
    -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */ 
    -moz-box-sizing: border-box; /* Firefox, other Gecko */ 
    box-sizing: border-box;  
} 

.rightcbar .rightctext { 
    display: inline-block; 
    width: 100%; 
    text-align: right; 
    font-size: 25px; 
    color: #f3f1de; 
    font-size: 25px; 
    font-family: 'Roboto', sans-serif; 
    text-shadow: 0px 0px 10px #aaa; 
    -webkit-font-smoothing: subpixel-antialiased; 
    cursor: pointer; 
} 

Live example

+2

* Что * точно не работает должным образом? – Callidior

+0

Можете ли вы предоставить jsfiddle? – mabbas

+0

работает нормально, если вы имеете в виду, что контейнер div должен расширять всю ширину страницы, вы должны удалить декларацию 'width' для нее. –

ответ

2

Я думаю, я понимаю ваше замешательство.

Что (я думаю), вы спрашиваете, почему, когда вы добавляете дополнение влево, оно перемещает содержимое, но не когда вы добавляете его вправо.

Ответ заключается в том, что заполнение увеличивает ширину div. Поэтому, когда все слева (дополнение и выравнивание текста), div расширяется и содержимое перемещается.

Но когда все направо (заполнение и выравнивание текста), ничего не движется ... правильно? Неправильно.

Разница увеличивается справа от количества пикселей, добавляя отступы. И контент остается там, где это происходит, потому что смещение происходит ПОСЛЕ содержания, а не раньше, когда вы выходите из выравнивания. Легко визуализировать с добавленной рамкой.

Вот код без заполнения

http://jsfiddle.net/z5PJx/1/

Вы можете увидеть, что текст находится прямо на краю.

Вот тот же код с padding-right: 50px;

http://jsfiddle.net/z5PJx/2/

произошли две вещи.

  1. Разница выросла на 50px;
  2. Содержимое было перемещено налево 50px;

Эти изменения смещены, и содержимое не перемещается.

В обеих ситуациях ширина div увеличивается вправо. Но направление отступов меняется.

+0

Хм я пробовал ваш код ... и кажется, что-то ... фоновое изображение переместилось влево ... http://s15.postimg.org/7sy95ofrv/Untitled_1.jpg – WASasquatch

+0

Пробовал мой код? Мой код был ответом на ваш вопрос. Это не было залогом для чего-либо, что было визуализацией того, что делает прокладка. – Smeegs

+0

Я знаю, он показал мне прокладку, которую я хотел увидеть, но не знаю, почему положение «заднего плана» выключено без каких-либо изменений позиции. – WASasquatch