2016-08-18 2 views
0

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

Я сделал это уже (пример: http://codepen.io/anon/pen/jARqOr) Но я хотел бы, чтобы у границы выровнены в верхней части заголовка, как в этом ИМАГ (красная граница):

enter image description here

Что мне делать, чтобы получить этот результат?

С нетерпением жду вашего ответа.

Спасибо.

+0

ли вы имеете в виду 2 границы? У вас изображение, я вижу толстую черную границу и тонкую красную границу. Или вы имеете в виду это ?: http://codepen.io/anon/pen/KrYzNm – Mojtaba

+0

Извините за недоразумение. Только красная рамка. Черный - это Photoshop. – Caspert

+1

Требуется ** минимальная ** демонстрация ... у вас слишком много CSS в кодеде. –

ответ

2

Я не уверен, если это лучший решение, но это сработало:

ul li a.current { 
    padding-top: 50px; 
    margin-top: -55px; 
} 

Установка Маржа-сверху -55px (отрицательное значение отступа в заголовке сообщения) принимает его к началу , а затем добавление верхнего слоя 50px (55px - 5px для границы) приводит к тому, что текст будет ровным с другими элементами привязки.

Одной из проблем с этим решением является то, что все пространство над .current-якорем является частью области, на которую можно щелкнуть.

+0

Спасибо за решение и да, это действительно так. Есть ли решение? – Caspert

+0

Там, вероятно, есть решение, но не тот, о котором я сейчас знаю. Надеюсь, кто-то еще может внести определенный вклад. – jhdoak

0

Вы могли бы попробовать что-то вроде этого:

ul .current a { 
    padding-top: 42px; 
    background: linear-gradient(to bottom, #005f37 0%,#005f37 100%); 
    background-size: 100% 7px; 
    background-repeat: no-repeat; 
    color: #006038; 
} 

Это работает для меня

0

Я не видел ваш комментарий

черный Photoshop

в любом случае этот код просто использовать CSS ,

see output you want just using CSS

- CSS -

ul li a.current { 
      border-top: 4px solid #000; 
      /*box-shadow: 0px -5px 0px black;*/ 
      padding :0px 5px 5px 5px; 
      color: red!important; 
    } 

    ul li a.current span { 
      padding:5px 0px ; 
      border-top: 2px solid red; 
      /*box-shadow: 0px -2px 0px red;*/ 

    } 

--- тот же самый размер двойной границы затем использовать этот CSS вместо

ul li a.current { 
     box-shadow: 0px -5px 0px black, /* add as many as you want */ 
     inset 0px 2px 0px red; 
     padding:5px; 
     color: red!important; 
    } 
Смежные вопросы