the picture below shows get.
it menu within container, menu may wrap multiple lines when window/screen gets narrow menu items fit in. @ same time menu have background expands full screen in width, while expanding in height menu when gets wrapped multiple lines. think not possible css, css amateur. current solution involves @media queries set height of menu background resolutions wrapping appears. not take account font-size change, making each line of menu higher.
here jsfiddle basic setup, not want: https://jsfiddle.net/n3jmyq2f/3/ (edited, not final version)
here code:
<div class="container"> <div class="menu_wrap"> <div class="menu_bg"></div> <div class="menu"> <ul> <li><a href="#">item 1</a></li> <li><a href="#">item2</a></li> <li><a href="#">item3</a></li> <li><a href="#">item4</a></li> <li><a href="#">item5</a></li> <li><a href="#">item6</a></li> </ul> </div> </div> <div class="content">it's me, mario!</div>
css:
.container { width:50%; margin: 0 auto; background:lightgreen; height:300px; } .menu_bg{ position: absolute; background: #afafaf; width: 100%; left:0; height:30px; z-index: -1; } ul { height:30px; background: #afafaf; } li { display:inline-block; }
the first option simplest.
stop thinking of .container
must contain everything. it's class can reused , when required.
if take menu div out of "container" put .container
div inside effect looking for.
*, body { padding: 0; margin: 0; } .container { width: 50%; margin: 0 auto; background: lightgreen; } .menu { background: #afafaf; } ul { border: 1px solid green; } li { display: inline-block; } .content { height: 300px; }
<div class="menu"> <div class="container"> <ul> <li><a href="#">item 1</a> </li> <li><a href="#">item2</a> </li> <li><a href="#">item3</a> </li> <li><a href="#">item4</a> </li> <li><a href="#">item5</a> </li> <li><a href="#">item6</a> </li> </ul> </div> </div> <div class="container"> <div class="content">it's me, mario!</div> </div>
2nd option
use pseudo-element
*, body { margin: 0; padding: 0; } .container { width: 50%; margin: 0 auto; background: lightgreen; height: 300px; } ul { background: #afafaf; position: relative; border: 1px solid green; } ul:before { content: ''; position: absolute; height: 100%; background: inherit; width: 100vw; left: 50%; transform: translatex(-50%); z-index: -1 } li { display: inline-block; }
<div class="container"> <div class="menu"> <ul> <li><a href="#">item 1</a> </li> <li><a href="#">item2</a> </li> <li><a href="#">item3</a> </li> <li><a href="#">item4</a> </li> <li><a href="#">item5</a> </li> <li><a href="#">item6</a> </li> </ul> </div> <div class="content">it's me, mario!</div> </div>
Comments
Post a Comment