Есть ли способ объявить размер / частичную границу поля в CSS? Например, поле с ним 350px
показывает только нижнюю границу в начале 60px
. Я думаю, это может быть очень полезно.
Примеры:
На самом деле, нет. Но добиться эффекта очень легко, изящно деградируя и не требуя лишней разметки:
div {
width: 350px;
height: 100px;
background: lightgray;
position: relative;
margin: 20px;
}
div:after {
content: '';
width: 60px;
height: 4px;
background: gray;
position: absolute;
bottom: -4px;
}
<div></div>
::outside
и::inside
псевдо-элементы еще не доступны, я ненавижу положить в разметке только для укладки, но я не думаю , что есть какой - нибудь другой способ.content
in:after
как встроенный стиль или JSS, но он отлично работает с компонентами со стилями.Я знаю, что это уже решено, и пиксели были запрошены. Однако я просто хотел кое-чем поделиться ...
Частично подчеркнутые текстовые элементы можно легко получить, используя
display:table
илиdisplay:inline-block
(Я просто не использую,
display:inline-block
потому что, да, знаете, неудобный4px
-gap).Текстовые элементы
Центрирование ,
display:table
делает невозможным центрирование элементаtext-align:center
.Давайте поработаем с
margin:auto
...Что ж , это хорошо, но не частично .
Как уже представили книжный шкаф , псевдоэлементы стоят золота.
Offset , подчеркивание сейчас выравнивается по левому краю. Чтобы центрировать его, просто сдвиньте псевдоэлемент на половину его
width
(50% / 2 = 25%
) вправо.... как прокомментировал Давидматас , использование
margin:auto
иногда более практично, чем вычислениеmargin
-смещения вручную.Итак, мы можем выровнять подчеркивание влево, вправо или по центру (не зная текущего
width
), используя одну из этих комбинаций:margin-right: auto
(или просто оставьте это выключенным)margin: auto
margin-left: auto
Полный пример
Элементы блочного уровня
Это может быть легко адаптировано, так что мы можем использовать элементы уровня блока. Хитрость заключается в том, чтобы установить высоту псевдоэлемента на ту же высоту, что и его реальный элемент (просто
height:100%
):источник
:after
мне больше нравится вmargin: 0 auto
подходе вместо этого ,margin-left: 25%
потому что он будет работать с любой шириной вы заявляете без необходимости делать математику.auto
- Симплификаторный :)Вот еще одно решение, в
linear-gradient
котором вы можете легко создать любую линию, какую захотите. Вы также можете иметь несколько строк (например, с каждой стороны), используя несколько фонов:Показать фрагмент кода
Вот еще один синтаксис для достижения того же, что и выше:
источник
border-radius
Я использовал сетку, чтобы нарисовать некоторые границы.
Смотрите здесь .
Код:
источник
CSS не поддерживает частичные границы. Вам нужно будет использовать соседний элемент для имитации этого.
источник