Позвольте мне объяснить кое-что о absoluted элементов, которые должны быть размещены в выпадающие:
.sf-menu ul {top: 100%}
.sf-menu li a {/*height: auto*/}
.sf-menu ul li:first-child a:after {top: auto; bottom: 100%}
Пример: jsfiddle
1) У вас есть ul (дети с абсолютным положением) внутри другого ul.sf-menu (родитель с относительным положением). В вашем коде есть ваши дети ul с верхом с фиксированным значением 35px; это привело к тому, что дети ul были перекрывающимися родителями ul.
2) Чтобы ваши дети ul автоматически находились под областью вашего родителя ul, вам не нужно использовать фиксированное значение, вы можете использовать top: 100%
, чтобы заставить его перемещаться сверху вниз за пределы области ul parent.
3) Но для вашего конкретного случая ваш родительский относительный элемент имеет нижний край, поэтому использование: top: 100% делает его перекрытием этой области. В этой ситуации вы можете изменить правило и использовать пользовательское значение как 108% или любое значение пользовательских пикселей.
4) Ваши якоря имеют фиксированную высоту, вы можете удалить высоту. Но если по какой-то причине вы не можете, вы можете переопределить его с помощью height: auto
.
5) Теперь проблема стрелы. Ваша стрелка имеет верхнюю часть с фиксированным значением (top: -0.01px
), вы можете исправить ее с помощью другого настраиваемого фиксированного значения, такого как -10px, -20px; но вы можете применить одно и то же правило, применяемое к дочерним элементам ul, и автоматически включить его поверх своего элемента.
6) Вы можете сбросить значение top с помощью top: auto, а затем вы можете добавить дно: 100%. Он будет располагать вашу стрелку снизу 0 до bottom 100%
над верхней частью вашего родственника div. Когда вы найдете верхний, нижний, левый, правый, который не работает так, как вы ожидали, вы можете переопределить любой из них с помощью auto
.
Большое спасибо за то, что вы приложили усилия для объяснения мне в деталях. Очень ценится. Еще раз спасибо :) – samantha