Подтвердить что ты не робот

Применять тень к границе только сверху?

Как применить тень к конкретному краю границы?

Например, у меня есть следующий код:

header nav {
    border-top: 1px solid #202020;
    margin-top: 25px;
    width: 158px;
    padding-top:25px;
}

Мне нужна тень (1px 1px 1px #cdcdcd), примененная только к границе.

Какой лучший способ достичь этого?

ИЗМЕНИТЬ

Это, по сути, то, что я ищу

div {
    border-top: 1px solid #202020;
    margin-top: 25px;
    margin-left:25px;
    width: 158px;
    padding-top:25px;
    -webkit-box-shadow: 0px 1px 1px rgba(50, 50, 50, 0.75);
    -moz-box-shadow:    0px 1px 1px rgba(50, 50, 50, 0.75);
    box-shadow:         0px 1px 1px rgba(50, 50, 50, 0.75);
}

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

4b9b3361

Ответ 1

Что-то вроде этого?

div {
    border: 1px solid #202020;
    margin-top: 25px;
    margin-left:25px;
    width: 158px;
    height: 158px;
    padding-top:25px;
    -webkit-box-shadow: 0px -4px 3px rgba(50, 50, 50, 0.75);
    -moz-box-shadow:    0px -4px 3px rgba(50, 50, 50, 0.75);
    box-shadow:         0px -4px 3px rgba(50, 50, 50, 0.75);
}

http://jsfiddle.net/FrEnY/

Ответ 2

Если вы хотите применить тень к внутренней части элемента (inset), но только хотите, чтобы она появилась на одной стороне, вы можете определить отрицательное значение для параметра "spread" (5-й параметр во втором пример).

Чтобы полностью удалить его, сделайте его тем же размером, что и размытие теней (4-й параметр во втором примере), но как отрицательное значение.

Также не забудьте добавить смещение в y-позицию (третий параметр во втором примере), чтобы следующее:

box-shadow:         inset 0px 4px 3px rgba(50, 50, 50, 0.75);

становится:

box-shadow:         inset 0px 7px 3px -3px rgba(50, 50, 50, 0.75);

Отметьте этот обновленный скрипт: http://jsfiddle.net/FrEnY/1282/ и многое другое на параметрах box-shadow здесь: http://www.w3schools.com/cssref/css3_pr_box-shadow.asp

Ответ 3

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

Ответ 4

Я считаю, что использование этих интерактивных инструментов помогает визуализировать происходящее и что возможно

http://css3gen.com/box-shadow/

http://www.cssmatic.com/box-shadow

http://css3generator.com/

Изменить: ознакомьтесь с другими инструментами для экспериментов с другими генераторами и комбинациями. Я должен иногда напоминать себе, что только потому, что вы можете, это не значит, что вам нужно - его легко увлечься!

Ответ 5

Множественные тени теней сделали это для меня.

box-shadow:
        inset 0 -8px 4px 4px rgb(255,255,255),
        inset 0 2px 4px 0px rgba(50, 50, 50, 0.75);

http://jsfiddle.net/kk66f/

Ответ 6

.item .content{
    width: 94.1%;
    background: #2d2d2d;
    padding: 3%;
    border-top: solid 1px #000;
    position: relative;
}
.item .content:before{
      content: "";
      display: block;
      position: absolute;
      top: 0px;
      left: 0;
      width: 100%;
      height: 1px;
      -webkit-box-shadow: 0px 1px 13px rgba(255,255,255,1);
      -moz-box-shadow: 0px 1px 13px rgba(255,255,255,1);
      box-shadow: 0px 1px 13px rgba(255,255,255,1);
      z-index: 100;
}

Мне нравится использовать что-то вроде этого.