Как избавиться от пробелов между инлайн-блоками
Руст Кулматов |
Это и есть пробелы. Такие же как между словами. Чтобы убедиться в этом, возьмём два инлайн-блока, поставим рядом и поиграем размером шрифта: <!-- index.html -->; <div>; <a>;</a> <a>;</a> </div> /* style.css */ .menu { font-size: 20px; } .menu-item { display: inline-block; width: 200px; height: 50px; background: #7da578; } Размер кегля: 20 пк При уменьшении кегля размер пробела тоже уменьшается Дело в том, что инлайновые элементы с точки зрения браузера — обычные слова. Поэтому если между ними есть пробел или пробельный символ (в нашем случае перенос), то браузер и нарисует между ними пробел. Чтобы разобраться с этим, можно просто уменьшить размер кегля до нуля, а потом восстановить необходимый у элементов меню: <!-- index.html --> <div> <a>Новое</a> <a>Фото</a> <a>Видео</a> </div> /* style.css */ .menu { font-size: 0; } .menu-item { font-size: 20px; display: inline-block; padding: .5em; background: #7da578; } Это не всегда удобно, особенно если по всему проекту кегли задаются относительно родителя. В таком случае от пробела можно избавиться в самой разметке, поставив теги вплотную: <!-- index.html --> <div> <a>Новое </a><a>Фото </a><a>Видео</a> </div>Или поставив между ними комментарий: <!-- index.html --> <div> <a>Новое</a><!-- --><a>Фото</a><!-- --><a>Видео</a> </div> Также можно победить пробел вашим способом, с помощью отрицательного отступа: /* style. css */ .menu-item { margin-left: -4px; } Или с помощью подгонки расстояния между словами: /* style.css */ .menu { word-spacing: -4px; } .menu-item { word-spacing: 0; } Минус последних двух решений в том, что нужно знать размер пробела. А он может отличаться у разных шрифтов и при разных размерах кегля. Наконец, лучший способ — сверстать с помощью флексбокса: /* style.css */ .menu { display: flex; justify-content: flex-start; } Этот способ избавит вас от вышеописанных проблем и добавит гибкости. Например, вы сможете легко распределить элементы меню как вам захочется: .menu { justify-content: flex-start; } .menu { justify-content: flex-end; } .menu { justify-content: center; } .menu { justify-content: space-between; } .menu { justify-content: space-around; } А также изменить направление и порядок, что может пригодиться при адаптации меню для мобильных устройств: . menu { flex-direction: column; } .menu { flex-direction: column-reverse; } .menu-item:first-child { order: 10; }
|
Учебник по Html для чайников. Дополнительные.Ступенька 29-ая. Чтобы не затягивать повествование мы пропустили несколько нужных глав, уступив место таблицам, чтобы вы побыстрее освоили тот минимум, который вам необходим, чтобы построить (сверстать) сайт. Однако, чтобы сделать хороший и удобный сайт знания одного минимума не достаточно, поэтому я продолжаю свое повествование, и отдаю дань обиженным главам, выделяя для них целый раздел: Дополнительные. Эта глава о спецсимволах. Они не так часто употребляются, но, тем не менее, они необходимы, с одним из спецсимволов мы познакомились, когда говорили о вложенных таблицах (символом неделимого пробела). Познакомимся еще с некоторыми наиболее часто употребляемыми спецсимволами:
Т.к. все заключенное между < и > броузер воспринимает как тэг, то, чтобы ввести символ скобки > в текст для него придумали спецсимвол (1 или 2). Теперь вы знаете, на какое мучение я была обречена, когда начала писать это руководство, ох уж эти примеры:)Кавычка (3). В принципе, не обязательно ее так прописывать, броузеры понимают этот значок прекрасно, но кто знает: береженого — бережет. Символ пробела (4). Зачем он нужен? Ну, допустим, вам понадобилось пять пробелов подряд, а тэг <pre> с его принудительным переносом строки вам вовсе не нужен, вот тогда вам понадобится спецсимвол, ведь спецсимвол пробела можно написать хоть тысячу раз (если вы забыли или не знали – обычные пробелы игнорируются броузером, если их больше одного между словами или тэгами). Но тут существует одно но: слово1 слово2 слово3 = слово1 слово2 слово3 Ни одно из этих слов не перенесется на другую строку без двух других, и хотя посетитель увидит обычную фразу, где между словами стоит пробел, но по идее это уже одно длинное слово, а не три, т.к. — неразрывный (неделимый) символ пробела:) — учтите и используйте с умом. И последний символ &, т.к. он несчастный используется для написания спецсимволов, то для него добрые люди тоже придумали спецсимвол & (бр..:). Спецсимволы не надо включать ни в какие тэги, надеюсь, вы это поняли, считайте их просто текстом. Полную коллекцию спецсимволов вы можете изучить здесь. А можете и не изучать. Кстати, очень часто читатели задаются вопросом: “А как сделать Красную Строку — отступ первой строки в блоке текста, абзаца?” Собственно, вы можете сделать ее при помощи спецсимвола неразрывного пробела, о котором мы сейчас говорили: несколько таких пробелов перед первым словом в абзаце текста – и у вас будет отступ. Конечно, есть и другой путь – вставить небольшую прозрачную картинку перед первым словом в абзаце, допустим 1х10 пикселей (высота х ширина), и опять же вы получите отступ. <<< Ступенька 28-ая: Назад | Далее: Ступенька 30-ая >>> |
Пробел · Руководство по стилю Markdown
Символ отступа
Всегда используйте символы пробела, если два (2) пробела используются для отступа. Использование символов табуляции запрещено . Вкладка может состоять из разного количества столбцов в зависимости от среды, но пробел — это всегда один столбец. Соблюдение этого правила значительно повышает читабельность и ремонтопригодность кода.
примечание: нет вкладок
Примеры
Примечание. Символ »
обозначает вкладку.
⇣ Неверный код для этого правила:
В зиме есть сверкающие и морозные элементы! » Эта строка содержит символ табуляции. }
В зиме есть сверкающие и морозные элементы! Эта строка содержит 4 пробела. }
В зиме есть сверкающие и морозные элементы! Эта строка содержит только 1 символ пробела. }
⇡ Правильный код для этого правила:
В зиме есть сверкающие и замерзшие элементы! Эта строка содержит 2 пробела. }
Новая строка
Завершать файлы одним символом новой строки. Всегда используйте разрывы строк в стиле unix LF ( \n
, обозначаемые как ␊
) и избегайте использования символов Microsoft Windows CRLF ( \r\n
, обозначаемых как ␍␊
).
примечание: final-newline и linebreak-стиль
Примеры
Примечание. Символ ¬
обозначает разрыв строки.
⇣ Неверный код для этого правила:
В зиме есть сверкающие и морозные элементы! Падает много снежинок.
В зиме есть сверкающие и морозные элементы! Падает много снежинок. ¬
⇡ Правильный код для этого правила:
В зиме есть сверкающие и морозные элементы! Падает много снежинок.
Ссылки
- Википедия: Контрольный символ
Перед блоками
Всегда добавляйте одну (1) пустую строку перед блоками, кроме первой строки файла.
примечание: отсутствие последовательных пустых строк и отсутствие пустых строк
Примеры
Примечание. Символ ¬
обозначает разрыв строки.
⇣ Неверный код для этого правила:
В зиме есть сверкающие и морозные элементы! Падает много снежинок.
⇡ Правильный код для этого правила:
В зиме есть сверкающие и морозные элементы! ¬ Падает много снежинок.
После предложений
Используйте один пробел после предложений.
Примеры
⇣ Неверный код для этого правила:
Падает много снежинок. В зиме есть сверкающие и замороженные элементы!
Падает много снежинок. Зима состоит из сверкающих и замерзших элементов!
⇡ Правильный код для этого правила:
Падает много снежинок. В зиме есть сверкающие и замороженные элементы!
Максимальная длина линии
В отличие от исходного кода, где строки содержат операторы, которые почти всегда можно разбить на части или сделать отступ, это правило нельзя применить к плавному тексту. Автор должен уметь писать предложения и текстовые блоки, не беспокоясь о длине строки.
В других руководствах по стилю предлагается использовать разрывы строк после достижения максимального количества символов, но это приведет к искажению отображаемого вывода, поскольку GFM поддерживает плавные разрывы строк. Поэтому данное руководство советует избегайте использования ограничения на количество символов в строке для текущего текста , но старайтесь использовать максимальную длину строки в 120 символов (включая пробелы) для всех остальных элементов документа.
Вместо обеспечения максимальной длины строки пользователи должны использовать мягкий перенос строки:
- Мягкое обтекание позволяет автоматически визуально корректировать длину строк с помощью настроек ширины окна пользователя или параметров полей — это стандартная функция всех современных текстовых редакторов, таких как Atom или VSCode, IDE, таких как JetBrains IntelliJ IDEA, текстовых процессоров, и почтовые клиенты, такие как Thunderbird.
- Использование жесткого переноса вставляет фактические разрывы строк в текст в точках переноса, из-за чего Markdown не выглядит как визуализированный вывод. несколько строк. Это значительно увеличивает читаемость и приводит к тому же визуальному результату, как если бы использовалась максимальная длина строки с жесткими разрывами строк для плавного текста.
- Меньше усилий по записи — Автор может сосредоточиться на содержании вместо форматирования.
Обратите внимание, что правило для длинных строк связано с этим правилом, и его не следует разбивать.
примечание: максимальная длина строки
Примеры
⇣ Неверный код для этого правила:
> Зима и все ее очарование, сверкание и замороженные элементы и живая, разнообразная и красивая дикая природа. Падает много снежинок. В зиме есть сверкающие и замороженные элементы! это дом для многих красивых животных, таких как снежные совы, песцы и медведи гризли. ```js const сезон = зима && элементы зимы && элементы зимы.снег && элементы зимы.снег.состояние && элементы зимы.состояние снега.температура && элементы зимы.снег.состояние.температура.цельсий; ```
⇡ Правильный код для этого правила:
> Зима со всеми ее завораживающими, сверкающими и застывшими элементами и живой, разнообразной и красивой дикой природой. Падает много снежинок. В зиме есть сверкающие и замороженные элементы! Это дом для многих красивых животных, таких как белые совы, песцы и медведи гризли. ```js постоянный сезон = зима && зима.элементы && зима.элементы.снег && зима.элементы.снег.состояние && зима.элементы.снег.состояние.температура && зима.элементы.снег.состояние.температура.цельсий; ```
Замыкающий
Не используйте пробелы в конце для создания разрыва строки, используйте плавный стиль текста или пустую строку для создания нового абзаца.
примечание: hard-break-spaces
Примеры
Примечание. Символ ·
представляет собой пробел, а символ ¬
представляет собой разрыв строки.
⇣ Неверный код для этого правила:
В зиме есть сверкающие и морозные элементы!··¬ Падает много снежинок.
В зиме есть сверкающие и ледяные элементы!¬ Падает много снежинок.
⇡ Правильный код для этого правила:
В зиме есть сверкающие и морозные элементы! Падает много снежинок.
В зиме есть сверкающие и ледяные элементы!¬ Падает много снежинок.
Как исправить: Нет пробела между атрибутами.
Rocket Validator интегрирует средство проверки HTML W3C Validator. в автоматизированный поисковый робот.
Бесплатная пробная версия Пробная версия
- атрибуты
- космос
Атрибуты в элементах HTML должны быть разделены пробелом, в этом примере первая строка недействительна, а вторая допустима:
php"class="big">ссылка ссылка
Связанные проблемы валидатора W3C
Недопустимое значение «mailto: X» для атрибута «href» элемента «a»: недопустимый символ в данных схемы: пробел не допускается.
- плохое значение
- почта
- href
- а
- космос
Теги можно использовать для ссылки на адрес электронной почты с использованием протокола mailto в атрибуте href . Убедитесь, что в адресе электронной почты нет пробелов.
Это неверно, так как содержит пробел Это нормально
Недопустимое значение «tel: X» для атрибута «href» элемента «a»: недопустимый символ в данных схемы: пробел не допускается.
- тел
- href
- космос
href 9Атрибут 0038 в ссылке содержит пробел, что недопустимо. Если вы пытаетесь создать ссылку на URL-адрес телефона, просмотрите атрибут href , чтобы удалить недопустимые символы, как в этом примере:
позвоните мне позвоните мне
Увидел «<» при ожидании имени атрибута. Возможная причина: Отсутствует «>» непосредственно перед этим.
- атрибуты
- меньше, чем
Обнаружен символ < , когда вместо него ожидался атрибут. Проверьте синтаксис затронутого тега, возможно, он имеет неверный формат, а символ < внутри был интерпретирован как атрибут.