Как сделать линию меньше 1px css

Добавил пользователь Дмитрий К.
Обновлено: 05.10.2024

Сборник горизонтальных линий с тегом разных видов и стилей.

Сплошные линии

Двойная линия

Многострочная линия

Двухцветная линия

Трехцветная линия

Горизонтальный градиент

Вертикальный градиент

Линия с тенью

Замыленная линия

Пунктирные линии

Пунктирная линия с фоном

Пунктирная линия с градиентом

Точечные линии

Линия из крупных точек

Разное

Вертикальные линии

Линии под углом

Наклонные линии

Комментарии 1

Другие публикации

Подчеркивание текста линией с градиентом

Подчеркивание текста можно сделать с помощью нескольких свойств CSS - background-image, background-size и.

Текст с градиентом

Градиент в цвет шрифта можно добавить с помощью CSS свойства background-clip: text, которое окрашивает текст в цвет или изображение указанного в background-image.

Модальное окно на затемненном фоне

Для модальных окон есть множество плагинов такие, как fancybox, Twitter Bootstrap и т.д. Но бывают случаи когда нет.


CSS-рамка элемента представляет собой одну или несколько линий, окружающих содержимое элемента и его поля padding . Рамка задаётся с помощью краткого свойства border . Стиль рамки задается с помощью трех свойств: стиль, цвет и ширина.

Оформление рамок HTML-элементов с помощью CSS-свойств

1. Стиль рамки border-style

border_style

По умолчанию рамки всегда отрисовываются поверх фона элемента, фон распространяется до внешнего края элемента. Стиль рамки определяет ее отображение, без этого свойства рамки не будут видны вообще. Для элемента можно задавать рамку для всех сторон одновременно с помощью свойства border-style или для каждой стороны отдельно с помощью уточняющих свойств border-top-style и т.д. Не наследуется.

dotted
dashed
solid
double
groove
ridge
inset
outset
Одновременное перечисление четырех разных стилей для рамок элемента, только для свойства border-style :

2. Цвет рамки border-color

Свойство задаёт цвет рамок всех сторон одновременно. С помощью уточняющих свойств можно установить свой цвет для рамки каждой стороны элемента. Если для рамки цвет не задан, то он будет таким же, как и цвет текста элемента. Если в элементе нет текста, то цвет рамки будет таким же, как и цвет текста родительского элемента. Не наследуется.

border-color
(border-top-color, border-right-color, border-bottom-color, border-left-color)
Значения:
transparent Устанавливает прозрачный цвет для рамки. При этом ширина рамки остается. Можно использовать для смены цвета рамки при наведении курсора мыши на элемент, чтобы избежать смещение элемента.
цвет Цвет рамок задается при помощи значений свойства color.
Одновременное перечисление четырех разных цветов для рамок элемента, только для свойства border-color :

3. Ширина рамки border-width

Ширина рамки задается с помощью единиц измерения длины или ключевых слов. Если для свойства border-style задано значение none , и для рамки элемента установлена какая-то ширина, то в данном случае ширина рамки приравнивается к нулю. Не наследуется.

Возможность одновременного задания четырех разных ширин для рамок элемента, только для свойства border-width :

4. Задание рамки одним свойством

Свойство border позволяет объединить в себе следующие свойства: border-width , border-style , border-color , например:

При этом заданные свойства будут применяться ко всем границам элемента одновременно. Если какое-то из значений не указано, его место займет значение по умолчанию.

5. Задание рамки для одной границы элемента

В случае, когда необходимо задать разный стиль границ элемента, можно воспользоваться краткой записью для соответствующей границы.
Перечисленные ниже свойства объединяют в одно объявление следующие свойства: border-width , border-style и border-color . Перечень свойств указывается в заданном порядке, при этом одно или два значения могут быть пропущены, в этом случае их значения примут значения по умолчанию.

Стиль верхней границы задается с помощью свойства border-top , нижней — border-bottom , левой — border-left , правой — border-right .


Когда дело доходит до CSS, иногда border не совсем border .

В этой статье мы рассмотрим различия между:

Мы также обсудим, когда вы можете использовать одно вместо другого.

Обновление модели CSS Box

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


  1. border это именно граница элемента, находящаяся между его заполнением и краем, и ее ширина будет влиять на вычисленные размеры элемента
  2. outline находится рядом, но вне border, перекрывая оба box-shadow и margin , но не влияя на размеры элемента
  3. по умолчанию box-shadow простирается от края границы, покрывая пространство в указанном направлении (ах), и он также не влияет на размеры элемента

Синтаксис и использование border

Границы были стандартом дизайна с самого начала Интернета.

Важное отличие от двух других методов, которые мы собираемся рассмотреть, заключается в том, что по умолчанию границы включены в вычисляемые размеры элемента. Даже если вы установите box-sizing: border-box , границы все равно будут фигурировать в расчетах.

Самый важный синтаксис рамки определяет ее ширину и стиль:

Если не определено, будет использоваться цвет по умолчанию currentColor , что означает, что будет использоваться ближайшее определение для color в каскаде.

Но для границы доступно больше стилей, и с помощью border-style вы можете определить разные стили для каждой стороны, если хотите.

Когда использовать border

border - хороший выбор, когда допустимо вычисление стиля в размерах элемента. А стили по умолчанию обеспечивают большую гибкость дизайна.

Синтаксис и использование outline

Для outline единственное обязательное свойство, чтобы сделать его видимым - это указать стиль, поскольку по умолчанию это none :

Как и border, он приобретет цвет через currentColor , и его ширина будет по умолчанию medium .

Типичное применение outline - это встроенные стили браузера :focus для интерактивных элементов, таких как ссылки и кнопки.

Этому конкретному приложению должно быть разрешено запускаться в целях доступности, если вы не можете предоставить собственный стиль :focus , который соответствует критерию успеха WCAG 2.4.7 Focus Visible.

В целях проектирования часто отмечается проблема, связанная с невозможностью outline наследовать кривую ни от одного стиля border-radius .

Когда использовать outline

Использование outline может быть желательным, когда вы не хотите влиять на размеры элемента, и вам не нужно, чтобы он использовал border-radius .

Синтаксис и использование box-shadow

Минимальные требуемые свойства для box shadow являются значениями для x и y оси, и его цвет:

При желании добавьте третий блок для создания blur и четвертый для добавления spread .

Чтобы использовать его для создания границы, мы устанавливаем значения оси x и y а также blur значение 0 . Затем установите положительное число для spread :

Это создаст вид границы вокруг элемента и может даже следовать за примененным border-radius :


Когда использовать box-shadow

Вы можете предпочесть box-shadow особенно, если хотите анимировать границу, не вызывая сдвига макета. В следующем разделе будет продемонстрирован пример этого контекста.

А так как box-shadow может быть многослойным, это универсальный хороший инструмент для улучшения ваших макетов.

Однако он не сможет полностью имитировать некоторые стили, предоставляемые border и outline .

Собираем все вместе

Вот несколько практических сценариев, когда вам может потребоваться border альтернативный вариант.

Границы кнопок

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


Типичным решением является увеличение размера кнопки без рамки до размера border-width .

Альтернативное решение с нашими новыми знаниями - использовать box-shadow вместе с ключевым словом inset для визуального размещения псевдокадровки внутри кнопки:


Обратите внимание, что ваш отступ должен быть больше border-width , чтобы предотвратить перекрытие текстового содержимого.

В качестве альтернативы, возможно, вы хотите добавить рамку на :hover или :focus . Используя реальное изображение border , вы получите нежелательный визуальный скачок при сдвиге макета, так как border ненадолго увеличит размеры в этих состояниях.

В этом случае мы можем использовать box-shadow для создания псевдо-границы, чтобы истинные размеры не увеличивались, плюс мы можем анимировать ее, используя transition :

Вот сокращенный код для приведенного выше примера:

Обновление метода отладки CSS

Классическая шутка CSS заключается в том, что для решения проблем CSS, особенно при прокрутке или позиционировании переполнения, нужно добавить:

Это добавит красную рамку к каждому элементу.

Но, как мы узнали, это также повлияет на их вычисленные размеры, что может случайно вызвать дополнительные проблемы.

Вместо этого используйте:

Одним из возможных последствий использования border является добавление полос прокрутки после перерисовки содержимого. При использовании outline этого побочного эффекта не будет.

Кроме того, вы, вероятно, уже будете использовать border для элементов, поэтому повсеместное изменение border приведет к сдвигам макета, которые, безусловно, могут вызвать новые проблемы.

Обеспечение видимого фокуса

Что касается доступности, один сценарий, о котором вы можете не знать - это пользователи режима высокой контрастности Windows (WHCM).

В этом режиме предоставленные вами цвета удаляются в уменьшенную высококонтрастную палитру. Не все свойства CSS разрешены, в том числе box-shadow .

Одно практическое влияние является то, что если вы удалили outline в :focus и заменить его box-shadow , пользователи WHCM больше не будет уделять внимание фокусу.

Чтобы устранить это негативное влияние, вы можете нанести transparent контур :focus :

Подводные камни outlineи box-shadow

Поскольку outline и box-shadow находятся за пределами границы в блочной модели, вы можете столкнуться с одним из последствий, когда они исчезают за краями области просмотра. Таким образом, вам, возможно, потребуется добавить margin к элементу или padding к body в качестве контрмеры, если вы хотите, чтобы он оставался видимым.

Их размещение также означает, что они могут быть отделены такими свойствами, как overflow: hidden или использование clip-path .

Дополнительный совет: Градиентные границы

Как и было обещано, вот дополнительный совет о том, что - из методов, которые мы обсуждали - может делать только один border .

Часто забываемое свойство, связанное с границами, border-image . Синтаксис может быть немного странным при попытке использовать его с реальными изображениями.

Но в нем есть скрытая сила - он также позволяет создавать границы градиента, поскольку градиенты CSS технически являются изображениями:


Для этого необходимо определить обычную ширину и стиль границы (хотя они будут отображаться только в виде solid независимо от значения стиля), а затем свойство border-image , которое может использовать синтаксис градиента с одним добавлением. Число после градиента - это значение slice , которое для нашего градиента мы можем просто использовать 1 , чтобы практически не изменять размер / искажение градиента.

Чтобы разместить границу только с одной стороны, сначала обязательно установите нулевые значения для других сторон, иначе некоторые браузеры все равно будут добавлять ее со всех сторон:

Как можно нарисовать такую линию в CSS , чтобы она масштабировалась и растягивалась по ширине экрана?

введите сюда описание изображения


При чём тут react понять сложно. На css можно сделать так:


UPD. В первом варианте левый край линии оказался скошен. Исправил.

По старинке, без флексбоксов и закрывая один псевдоэлемент фоном от другого. Зато подстраивается и под длину текста, и под количество строк в нём.

Отступы и высоту строки можно ставить любые. От угла наклона зависит только прибавка к толщине боковой границы. Этой прибавкой компенсируем сужение границы при трансформации сдвига.

Первый вариант, со скошенным левым краем у линии. Может быть, тоже пригодится.

Читайте также: