Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Горизонтальное меню с выпадающим списком и его адаптивность
|
|||
|---|---|---|---|
|
#18+
Добрый день. Подскажите, пожалуйста, как делать правильно. В тестовом примере не получается адаптивно привязать последнее выпадающее подменю. Т.е., если в части коде css : Код: css 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. width: 14.3em заменить на width: 200px, то на малой ширине экрана адаптивность подменю теряется ..., а при пользовании %, или em, - кривизна уже с самим подменю. Так-же глючно ведет себя выделение строки при наведении, при кликах на строки подменю. Вобщем, накосячил. html <body> <div id="top-menu"> <ul id="tmenu"> <li><a>A1234</a></li> <li><a>B123456</a></li> <li><a>C1234 ></a> <ul> <li><a>1</a></li> <li><a>2</a></li> <li><a>3 большой длины. ></a> <ul> <li><a>111</a></li> <li><a>222</a></li> <li><a>333</a></li> </ul> </li> <li><a>4</a></li> </ul> </li> <li><a>D12345678</a></li> </ul> </div> <!-- Указатель - треугольник под меню. --> <div id ="trian" style ="width:100%; height:4px; background: orange; color: red; border: solid 1px #E8DDCF; overflow: hidden; font-size: 14px;"><div style ="margin-top: -11px;">❤</div></div> <!-- Контент --> <div style ="width:100%; height:600px; background: #F3E7D8; border: solid 1px #E8DDCF;"></div> </body> css body { background-color: #F3E7D8; } html {overflow-y: scroll;} #top-menu { width:100%; height:30px; background: #E8DDCF; border: solid 1px #E8DDCF; } #tmenu { /*для списка верхнего уровня*/ width:100%; padding:0; margin:0; list-style-type:none; position:relative; } #tmenu li:nth-child(1) { /* [A1234] */ width:20%; } #tmenu li:nth-child(2) { /* [B123456] */ width:15%; } /**/ #tmenu li:nth-child(3) { /* [C1234] */ width:35%; } #tmenu li:nth-child(3) ul a{ /* [ C1234 > ... ] */ width: 200px; } #tmenu li:nth-child(3) li ul { /* [ C1234 > ... > ... ] */ /*width: 14.3rem;*/ background: #E6D7C3; left: 200px; } /**/ #tmenu li:nth-child(4) { /* [D12345678] */ width:30%; } #tmenu li{ /*для всех элементов списка всех уровней*/ float:left; /*выравнивание по левому краю*/ position:relative; /*Устанавливаем тип позиционирования*/ } #tmenu li a{ /* для всех неактивных ссылок в списке */ color:blue; /* цвет текста */ font-size: 14px; text-decoration:none; /* убираем подчеркивание */ display:block; /* превращаем в блочный элемент */ line-height:30px; /* межстрочный интервал */ text-align: center; } @media (max-width: 880px) { #tmenu li a{font-size: 12px;} } @media (max-width: 786px) { #tmenu li a{font-size: 10px;} } @media (max-width: 687px) { #tmenu li a{font-size: 9px;} } @media (max-width: 612px) { #tmenu li a{font-size: 7px;} } #tmenu li a:hover{ /*для всех активных ссылок в списке*/ background-color: #DECAAF; /* Фон при наведении курсора мыши на все надписи*/ } #tmenu li ul li{ /* Для всех элементов вложенных списков */ float:none; /* Убираем выравнивание*/ } #tmenu li ul li a{ /* Для всех ссылок внутри элементов вложенных списков */ line-height:25px; /* Устанавливаем межстрочный интервал */ } #tmenu li ul{ /* Для всех блоков вложенных ненумерованных списков */ display:none; /* Выключаем отображение */ position:absolute; /* Позиционируем абсолютно */ background-color: #E6D8C5; /* Устанавливаем фон у выпадающего списка */ list-style:none; /* Отключаем маркеры */ padding:0; /* Отключаем внутренние отступы */ } #tmenu li:hover ul{ /* Для всех блоков вложенных ненумерованных списков при активации*/ display:block; /* Включаем отображение */ } #tmenu li ul li ul, /* Для всех блоков вложенных списков третьего и ниже уровней */ #tmenu li:hover ul li ul{ /* А также для них же, но при условии активации списка второго уровня*/ display:none; /*Выключаем отображение*/ position:absolute; /*Позиционируем абсолютно*/ top:0; /*Прижимаем к верхнему краю род. элемента, указав 0*/ } #tmenu li ul li:hover ul{ /*Для всех блоков вложенных списков третьего и ниже уровней при активации*/ display:block; /*Включаем отображение*/ } js var mm = ''; document.getElementById('tmenu').addEventListener("click", menu_onclick_changeColor, true); // <script src="...js" defer></script> // ^ function menu_onclick_changeColor(s) { var target = event.target || event.srcElement; if ( target.style != mm ) { target.style.background = 'red'; // пункт меню, на который кликнули - делаю другим цветом; var rect = target.getBoundingClientRect(); var dist = rect.left; // расст. до левого края, чтобы двигать указатель-треугольник снизу от кнопок Меню; var vid = rect.width; // ширина кнопки, по которой кликнули, чтобы точно позиционировать указ.-треугольник; var x = window.innerWidth || document.documentElement.clientWidth || document.getElementsByTagName('body')[0].clientWidth; // ширина окна; document.getElementById('trian').firstElementChild.style.marginLeft = ''+(((dist+vid/2) *100) / x*1.008).toFixed()+'%'; if (mm != '') { mm.background = '#E8DDCF'; } mm = target.style; } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2016, 17:18 |
|
||
|
Горизонтальное меню с выпадающим списком и его адаптивность
|
|||
|---|---|---|---|
|
#18+
Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. Код: css 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2016, 17:37 |
|
||
|
Горизонтальное меню с выпадающим списком и его адаптивность
|
|||
|---|---|---|---|
|
#18+
т.е. при таком участке css кода : Код: css 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. на полном экране : ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2016, 00:05 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=39316607&tid=1444994]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
84ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 298ms |
| total: | 464ms |

| 0 / 0 |
