Укажите правую границу в фиксированном позиционировании

Я понятия не имею, как правильно это обозначить, но вот моя проблема:

У меня есть этот макет:

<html>
<body>
    <div id="content">this is my page</div>
    <div id="button">magic button</div>
</body>
</html>

css:

#button {
  position: fixed;
  bottom: 20px;
  background-color: #f00;
  padding: 5px;
  left: 50%;
  margin-left: 250px;

}

html, body{
  height: 100%;
}
#content {
  margin: 0 auto;
  width: 700px;
  min-height: 100%;
  background-color: #eee;
}​

Смотрите здесь скрипку: http://jsfiddle.net/n6UPF/

image

Моя страница работает так, как я ее хочу, кнопка именно там, где я хочу.

Но, если я изменил текст на моей кнопке, он больше не будет правильно установлен.

Я бы поставил его "исправленным" относительно правого края области содержимого.

Можно ли это сделать в чистом CSS?

Ответ 1

Если изменение HTML допустимо, вы можете использовать обертку:

<div id="button-wrapper">
    <div id="button">magic button</div>
</div>
#button-wrapper {
    bottom: 40px;
    left: 50%;
    margin-left: 350px;
    position: fixed;
}

#button {
    background-color: red;
    padding: 5px;
    position: absolute;
    right: 10px;
    white-space: nowrap;
}

http://dabblet.com/gist/3740941

Нет, это не очень красиво, но...

Ответ 2

Я не уверен, правильно ли понял ваш вопрос, но не мог ли вы использовать свойство right вместо left?

Пример: http://jsfiddle.net/baKra/

Ответ 3

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

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

Ответ 4

Вы имеете в виду...

#button
{
    position: fixed;
    right: 20px;
}

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

Ответ 5

Мне интересно, ищете ли вы свойство float: right. Вы можете посмотреть http://jsfiddle.net/n6UPF/1/ и посмотреть, что именно вы искали.

Ответ 6

Попробуйте изменить

#button {
position: fixed;
bottom: 20px;
background-color: #f00;
padding: 5px;
left: 50%;
margin-left: 250px;
}

к

#button {
position: fixed;
bottom: 20px;
background-color: #f00;
padding: 5px;
right:20px
}