Nano Hash - криптовалюты, майнинг, программирование

Добавить смещение к нижнему краю в CSS

У меня проблема, когда мне нужно сделать нижнюю границу с заданным смещением в CSS

например, в этом JSFiddle у меня есть черная нижняя граница.

https://jsfiddle.net/uexma4o6/343/

<div style="border-bottom: 2px solid black; width:500px; height:40px; background-color:lightcoral"></div>

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

Является ли это возможным?

16.10.2018

Ответы:


1

Это можно сделать с помощью линейного градиента:

.box {
  background:
    linear-gradient(black,black) 0 calc(100% - 5px)/100% 2px no-repeat,
    lightcoral;
  width: 500px;
  height: 40px;
}
<div class="box"></div>

Вы также можете сделать это следующим образом:

.box {
  background:
    linear-gradient(black,black) bottom/100% 2px no-repeat,
    lightcoral;
  border-bottom:5px solid lightcoral;
  width: 500px;
  height: 40px;
  box-sizing:border-box;
}
<div class="box"></div>

Еще одна идея с тенью коробки:

.box {
  background:lightcoral;
  border-bottom:2px solid black;
  box-shadow:0 5px 0 lightcoral;
  width: 500px;
  height: 40px;
}
<div class="box"></div>

И с вложенной тенью:

.box {
  background:lightcoral;
  box-shadow:
    0 -5px 0 lightcoral inset,
    0 -7px 0 black inset;
  width: 500px;
  height: 40px;
}
<div class="box"></div>

16.10.2018
  • Да! Это сработало! но разве это не Macgyver на нем? 16.10.2018
  • @felipe, что ты имеешь в виду? 16.10.2018
  • это очень сложное решение, а не просто смещение, потому что мне нужен градиент, чтобы просто сместить границу. Я хотел бы просто дать смещение к границе, чего я не нашел в гугле. 16.10.2018
  • @felipe граница - это граница, если вы хотите сместить ее внутри содержимого, то это больше не граница, и вам нужно использовать что-то еще;) Я предоставлю другие способы, если хотите 16.10.2018
  • @felipe я добавил больше способов, если хочешь 16.10.2018

  • 2

    Решение

    https://jsfiddle.net/StephanieSchellin/j7pmxkc3/

    Используйте CSS ::after, чтобы добавить псевдоэлемент с искомой границей. Затем переместите псевдоэлемент, чтобы расположить его так, как вам нравится. Этот псевдоэлемент всегда будет привязан к своему корневому элементу, но вам все равно придется учитывать его изменение для @media изменений запроса и тому подобного.

    На изображении ниже вы видите, что это решение накладывает псевдоэлемент над корневым. Вы можете использовать ::before или поэкспериментировать с другими настройками позиционирования в соответствии с вашими потребностями макета.

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

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

    HTML

    <div class='the-div'></div>
    

    CSS

    .the-div {
      width:500px;
      height:40px;
      background-color:lightcoral;
      position: relative
    }
    .the-div::after {
      border-bottom: 2px solid black;
      content: '';
      width:500px;
      position:absolute;
      bottom:5px;
    }
    

    Дальнейшее чтение

    См. https://css-tricks.com/pseudo-element-roundup/. Есть много интересных вещей, которые вы можете сделать с псевдоэлементами.

    16.10.2018
  • зачем делать псевдоэлемент position:fixed? просто сделайте его position:absolute, и вы можете легко настроить его положение относительно div, а не окна просмотра 16.10.2018
  • ты прав. я обновил его до абсолютного положения. но я бы предложил дальнейшее тестирование браузера, чтобы убедиться, что блочная модель ведет себя так, как ожидалось, без значения в содержании: с использованием абсолютной позиции. 16.10.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..