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

Как устранить проблему с белой точкой в ​​раскрывающемся меню?

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

Но я вижу белую точку слева от FF4 + и в IE9 +

Я думаю, проблема в том, что в FF3 нижний левый пиксель получил тот же цвет, что и левая граница. Но в FF4 нижний левый пиксель имеет тот же цвет, что и нижняя граница!

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

Что я здесь делаю, подменю имеет полную серая граница. Я хочу удалить серая граница между "Проектами" и самим подменю, чтобы все это выглядело как единое целое с непрерывной границей без разделения между ними. Таким образом, я сделал нижнюю границу "Проекты" нижней и установил ее для перекрытия подменю на 1 пиксель. Таким образом, часть серой рамки подменю исчезает, и она кажется непрерывной. Но в FF4 и IE9 нижние левые и нижние правые пиксели соответственно завинчиваются.

Наведите указатель мыши на меню Проекты в http://www.softinternals.com, и вы увидите это на левой боковой границе в FF4,

Вот скриншоты раскрывающегося меню:

Firefox 4:

Firefox 4 Screenshot

Internet Explorer 9

IE9 Screenshot


Я сделал больше исследований и нашел это:

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

Firefox 3

Это то, что я хочу:) Он подходит для моего выпадающего меню, а нижний левый цвет берется с левой границы.

  • Нижние левые и нижние правые пиксели имеют цвет левой и правой границ соответственно.
  • Оба угла вверху принимают цвет верхней границы.
  • Нижний цвет границы не принимается ни для какого угла.

Firefox 3


Firefox 4

Это не то, что я хочу: (

  • Каждый пиксель угла принимает цвет границы, которая предшествует ему, и идет по часовой стрелке.

Firefox 4


Internet Explorer 8

Также не то, что я хочу.

  • Аналогично FF3, но слева ничего не берет. Все правильно. Каждый верхний и нижний углы.

IE8


Chrome 11

Немного ближе к тому, что я хочу:)

  • Цвет каждого пикселя угла - это интерполированное значение цветов смежных границ.

Chrome


Internet Explorer 9

У меня не было доступа к IE9 при съемке скриншотов, но он также должен делать по-другому с нижним правым пикселем.


Как вы можете видеть, каждое решение для браузера относительно угловых цветов отличается.

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

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

4b9b3361

Ответ 1

Try:

  • Снимите нижнюю границу
  • Установить 1px нижнее дополнение (или добавить 1px к существующему нижнему отступу)
  • Установить цвет фона в белый

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

Ответ 2

Я обнаружил, что эта проблема связана с тем, что для border-bottom установлено значение #FFF в:

.hover-menu
{
    ...
    border-bottom: solid 1px #FFF !important;
    ...
}

Я решил изменить на:

.hover-menu
{
    ...
    border-bottom: solid 0 #FFF !important;
    ...
}

или

.hover-menu
{
    ...
    border-bottom: none !important;
    ...
}