У меня есть несколько одинаковых элементов HTML, идущих один за другим:
<span>1</span>
<span>2</span>
<span>3</span>
Я ищу лучший способ добавить пространство МЕЖДУ элементами, используя только CSS
[no space] [1] [space 10px] [2] [space 10px] [3] [no space]
Дополнительно:
- Пожалуйста, запишите совместимость браузера ваших квитанций
ОБНОВИТЬ
Похоже, мне было непонятно. Я не хочу использовать ЛЮБУЮ ДОПОЛНИТЕЛЬНУЮ РАЗМЕТКУ HTML, например
<span></span> <span></span> <span class="last_span"></span>
Я не хочу использовать таблицы
Я хочу, чтобы первый и последний диапазон автоматически настраивался CSS
Я не хочу использовать javascript
Необязательное требование: последний диапазон может быть НЕ ПОСЛЕДНИМ РЕБЕНКОМ родительского тега, но это будет ПОСЛЕДНИЙ ПРОБЕЛ родительского тега. Между промежутками нет других тегов.
text
span
s переменной?span
элементы создаются веб - службы не имеют доступа. Поэтому я не могу изменить разметку. Тем не менее, я могу полностью использовать CSSОтветы:
Хороший способ сделать это:
Каждому
span
предшествует aspan
(так, каждомуspan
кроме первого) будетmargin-left: 10px
.Вот более подробный ответ на аналогичный вопрос: Разделители между элементами без хаков
источник
.sidebar-img + .sidebar-text { margin-left: 40px; }
Просто используйте поля или отступы.
В вашем конкретном случае вы можете использовать
margin:0 10px
только 2-й<span>
.ОБНОВИТЬ
Вот хорошее решение CSS3 ( jsFiddle ):
Расширенный выбор элементов с помощью селекторов нравится
:nth-child()
,:last-child
,:first-of-type
и т.д. поддерживается начиная с Internet Explorer 9.источник
span
вручную? Это должно быть работой CSSspan
s иdiv
s (которые являются блочными элементами). Ваше решение в любом случае действительно, если вы определяетеdiv
s как встроенные элементы ...добавьте эти правила в родительский контейнер:
Хорошая ссылка: https://cssreference.io/
Совместимость браузера: https://gridbyexample.com/browsers/
источник
grid-auto-columns="max-content"
также может быть полезно. Это приведет к тому, что размер элемента сетки будет соответствовать содержимому. Также совместимость браузеров больше не должна быть проблемой: caniuse.com/#feat=css-gridВы можете стилизовать элементы, исключив первый, всего в одной строке кода:
Не нужно менять классы.
источник
span.Showing ~ span.Showing
вместоspan.Showing + span.Showing
.~
- это общий селектор братьев и сестер, где один не должен напрямую следовать за другим.Вы можете воспользоваться тем фактом, что
span
это встроенный элементОднако это решение сломается, если в вашем диапазоне будет более одного слова текста.
источник
источник
Вы можете написать так:
источник
<span>
является встроенным элементом, поэтому вы не можете сделать интервал между ними, не сделав его блочным. Попробуй этоГоризонтальный
Вертикальный
Совместим со всеми браузерами.
источник
Вы должны обернуть свои элементы в контейнер, затем использовать новые функции CSS3, такие как CSS-сетка , бесплатный курс , а затем использовать
grid-gap:value
то, что было создано для вашей конкретной проблемы.источник
Или вместо того, чтобы устанавливать маржу и переопределять ее, вы можете просто правильно установить ее сразу с помощью следующей комбинации:
источник
:first-of-type
и:last-of-type
селекторов CSS.not
выражений в браузереисточник
Если вы хотите выровнять различные элементы и хотите иметь одинаковые поля со всех сторон, вы можете использовать следующее. Каждый элемент в пределах
container
, независимо от типа, получит одинаковое окружающее поле.Если вы хотите выровнять элементы в строке, но чтобы первый элемент касался крайнего левого края
container
, а все остальные элементы были расположены на одинаковом расстоянии, вы можете использовать это:источник