#html #css #background
Как можно реализовать появление картинки на фоне пункта меню? Как на скрине. При этом пункты меню могут быть разной ширины , нужно чтобы картинка растягивалась до нужной ширины (зависит от длины текста). Мой html код: Мой css код: .menu { padding:0; margin:0; display:block; } .menu li { font-family: 'Mensch-Regular'; float:left; display:block; width:100%; text-align:center; font-size:24px; margin-top:32px; } .menu a { margin:20px; color:#4d4d4d; text-decoration:none; }
Ответы
https://codepen.io/topicstarter/pen/geabdb?editors=1100 с изменением цвета ссылкиОтвет 1
Вроде не сложно , в два псевдоэлемента * { margin: ; padding: ; list-style: none; text-decoration: none; } html, body { font-family: "Times New Roman", sans-serif; font-size: 1.3em; } ul { display: flex; } li { margin-left: 10px; position: relative; z-index: 100; } li:hover:after { content: ""; display: inline-block; width: 100%; height: 50%; position: absolute; top: 5px; left: -10px; z-index: -1; border-top: 20px solid red; border-left: 10px solid transparent; border-right: 10px solid transparent; height: 0; } li:hover:before { content: ""; display: inline-block; width: 100%; height: 50%; position: absolute; top: 10px; left: -10px; z-index: -1; border-bottom: 20px solid red; border-left: 10px solid transparent; border-right: 10px solid transparent; height: 0; }
Ответ 2
Предлагаю воспользоваться вам псевдоэлементами: .menu { display: flex; align-items: center; padding: 0; margin: 0; margin-top: 32px; background-color: #ECE8D4; } .menu li { display: flex; align-items: center; font-family: 'Mensch-Regular'; width: 100%; text-align: center; font-size: 24px; } .menu a { position: relative; padding: 20px; color: #4d4d4d; text-decoration: none; } .menu a::before, .menu a::after { content: ''; position: absolute; top: 0; opacity: 0; width: 0; height: 0; border-top: 34px solid transparent; border-bottom: 34px solid transparent; } .menu a::before { left: 0; border-left: 10px solid #ECE8D4; } .menu a::after { right: 0; border-right: 10px solid #ECE8D4; } .menu a:hover { background-color: #FF7752; color: #fff; } .menu a:hover::before, .menu a:hover::after { opacity: 1; }
Ответ 3
Предлагаю менять фон при наведении используя картинку для точной передачи дизайна .menu-list { display: flex; justify-content: center; margin: 0; padding: 10px 0; background: #f5d98b; list-style: none; li { padding: 15px 25px; margin: 0 20px; text-align: center; position: relative; background: none; &:hover { background-image:url("путь к картинке"); } a { text-decoration: none; font-size: 20px; color: #000; text-transform: uppercase; position: relative; z-index: 2; } } }
Комментариев нет:
Отправить комментарий