Есть ли способ расположить фоновое изображение на определенное количество пикселей справа от его элемента?
Например, чтобы расположить что-то определенное количество пикселей (скажем, 10) слева , я бы так и сделал:
#myElement {
background-position: 10px 0;
}
background-position: -10px 0;
? Просто проверяю :)Ответы:
Я нашел эту функцию CSS3 полезной:
Насколько я знаю, это не поддерживается в IE8. В последнем Chrome / Firefox все работает отлично.
См. Могу ли я использовать для получения подробной информации о поддерживаемых браузерах.
Использованный источник: http://tanalin.com/en/blog/2011/09/css3-background-position/
Обновление :
Эта функция теперь поддерживается во всех основных браузерах, включая мобильные браузеры.
источник
right
left
top
bottom
. Например, следующее не будет отображаться:background-position: right 10px 10px
но должно быть записано какbackground-position: right 10px top 10px
Есть ли способ расположить фоновое изображение на определенное количество пикселей справа от его элемента?
Нет.
Популярные обходные пути включают
margin-right
вместо этого элементtop right
источник
Самое простое решение - использовать проценты. Это не совсем тот ответ, который вы искали, поскольку вы просили о точности пикселей, но если вам просто нужно что-то сделать, чтобы между правым краем и изображением было небольшое отступление, то положение в 99% обычно работает достаточно хорошо.
Код:
источник
CSS3 изменил спецификацию,
background-position
так что он будет работать с другой точкой происхождения. К сожалению, я не могу найти никаких доказательств того, что это реализовано еще ни в одном из основных браузеров.http://www.w3.org/TR/css3-background/#the-background-position См. пример 12.
источник
Version 21.0.1180.89
Как предлагается здесь , это довольно кросс-браузерное решение, которое отлично работает:
Я использовал его, так как функция CSS3 задания смещений, предложенная в ответе, помеченная как решение вопроса, пока не поддерживается в браузерах. Например
источник
Наиболее подходящий ответ является новым синтаксисом четыре-значения фона позиции, но пока все браузеры не поддерживают его ваш лучший подход представляет собой сочетание предыдущих ответов в следующем порядке:
источник
Простой, но грязный трюк - просто добавить необходимое смещение к изображению, которое вы используете в качестве фона. это не ремонтопригодно, но оно выполняет свою работу.
источник
Это будет работать в большинстве современных браузеров ... кроме IE (поддержка браузеров) . Несмотря на то, что на этой странице перечислены> = IE9 как поддерживаемые, мои тесты не согласились с этим.
Вы можете использовать свойство calc () css3 следующим образом;
Для меня это самый чистый и самый логичный способ добиться разницы справа. Я также использую запасной вариант использования
border-right: 10px solid transparent;
для IE.источник
background-position: 92% 8px; background-position: calc(100% - 12px) 8px;
right 10px center
Синтаксис имеет более расширенную поддержку в браузерах._
на-
Хорошо, если я понимаю, о чем ты спрашиваешь, ты это сделаешь;
Вы называете свой контейнер DIV,
#main-container
и.my-element
это внутри него. Используйте это, чтобы начать;Между прочим, лучше использовать классы, если вы ссылаетесь на элемент более низкого уровня на странице (я полагаю, что вы меняете свое имя выше).
источник
Спецификация CSS3, допускающая различное происхождение для background-position, теперь поддерживается в Firefox 14, но все еще не в Chrome 21 (очевидно, IE9 частично поддерживает их, но я не проверял это сам)
В дополнение к проблеме Chrome, на которую ссылается @MattyF, здесь есть более краткое резюме: http://code.google.com/p/chromium/issues/detail?id=95085.
источник
Если у вас есть пропорциональные элементы, вы можете использовать:
В этом примере,
.valid
будет класс с изображением и.half
будет строка с половиной размера стандартного.Грязный, но работает как шарм, и это разумно управляемым.
источник
Если вы хотите использовать это, например, для добавления стрелок / других значков к кнопке, тогда вы можете использовать псевдо-элементы css?
Если это действительно фоновое изображение для всей кнопки, я стараюсь включить интервал в изображение, и просто использую
Но если мне нужно добавить, например, разработанную стрелку к кнопке, я получаю следующий HTML:
И, как правило, делать следующее с помощью CSS:
Используя селектор: after, я добавляю элемент, используя CSS, чтобы содержать этот маленький значок. Вы можете сделать то же самое, просто добавив span или
<i>
element внутри a-element. Но я думаю, что это более чистый способ добавления значков к кнопкам, и он поддерживается в разных браузерах.Вы можете проверить скрипку здесь: http://codepen.io/anon/pen/PNzYzZ
источник
content: '';
а не,content:0;
но это было полезным решением для меняисточник
использовать центр вправо в качестве позиции, а затем добавить прозрачную границу, чтобы сместить его?
источник
Если у вас есть элемент фиксированной ширины и вы знаете ширину фонового изображения, вы можете просто установить background-position: ширина элемента - ширина изображения - требуемый промежуток справа.
Например: для элемента шириной 100px и изображения шириной 300px, чтобы получить разрыв в 10px справа, вы устанавливаете его в 100-300-10 = -210px:
И вы получите самые правые 80 пикселей вашего изображения слева от вашего элемента, и промежуток 20 пикселей справа.
Я знаю, что это может звучать глупо, но иногда это экономит время ... Я использую это по вертикали (зазор внизу) для навигационных ссылок с текстом под изображением.
Не уверен, что это относится к вашему делу, хотя.
источник
моя проблема заключалась в том, что мне нужно, чтобы фоновое изображение оставалось на том же расстоянии от правой границы при изменении размера окна, т.е. для планшета / мобильного телефона и т. д. Мое исправление заключается в использовании процента в следующем формате:
и он застревает на месте.
источник
да! хорошо, чтобы расположить фоновое изображение, как будто 0px с правой стороны браузера, а не слева - я использую:
источник