I'm trying to figure out why my parent element loses it's width when I do this? Please see my fiddle:
HTML
<h1>white-space: normal; on < a > tag breaks the ul's width but gives desired text effect.</h1>
<div class="clear">
<ul>
<li><a class="no" href="">This This This This This This This This This</a></li>
<li><a class="no" href="">This This This This This This This This This</a></li>
<li><a class="no" href="">This This This This This This This This This</a></li>
<li><a class="no" href="">This This This This This This This This This</a></li>
<li><a class="no" href="">This This This This This This This This This</a></li>
<li><a class="no" href="">This This This This This This This This This</a></li>
<li><a class="no" href="">This This This This This This This This This</a></li>
<li><a class="no" href="">This This This This This This This This This</a></li>
<li><a class="no" href="">This This This This This This This This This</a></li>
<li><a class="no" href="">This This This This This This This This This</a></li>
<li><a class="no" href="">This This This This This This This This This</a></li>
<li><a class="no" href="">This This This This This This This This This</a></li>
<li><a class="no" href="">This This This This This This This This This</a></li>
</ul>
</div>
<h1>white-space: nowrap; is inherited from < ul > tag to < a > tag now has full width of background (almost?) but loses desired text effect</h1>
<div class="clear">
<ul>
<li><a class="yes" href="">This This This This This This This This This</a></li>
<li><a class="yes" href="">This This This This This This This This This</a></li>
<li><a class="yes" href="">This This This This This This This This This</a></li>
<li><a class="yes" href="">This This This This This This This This This</a></li>
<li><a class="yes" href="">This This This This This This This This This</a></li>
<li><a class="yes" href="">This This This This This This This This This</a></li>
<li><a class="yes" href="">This This This This This This This This This</a></li>
<li><a class="yes" href="">This This This This This This This This This</a></li>
<li><a class="yes" href="">This This This This This This This This This</a></li>
<li><a class="yes" href="">This This This This This This This This This</a></li>
<li><a class="yes" href="">This This This This This This This This This</a></li>
<li><a class="yes" href="">This This This This This This This This This</a></li>
<li><a class="yes" href="">This This This This This This This This This</a></li>
</ul>
</div>
CSS
/* Universal */
*, *:after, *:before { margin: 0; padding: 0; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; list-style: none; }
* :focus { outline: 0; }
/* Clear Fix*/
.clear:before, .clear:after { content: " " !important; display: table !important; }
.clear:after { clear: both !important; }
.clear { *zoom: 1 !important; clear: both !important; }
/* Normal Elements */
h1 { margin: 2em 0 0; }
div { width: auto; margin: 0 auto; }
ul { float: left; white-space: nowrap; background: lime; } /* LIME background shows ul's width */
li { display: inline-block; max-width: 10em; }
/* Problem Elements */
a.no { white-space: normal; } /* Normal breaks width */
a.yes { } /* Nowrap fixes ul width (almost?) */
In this case word-wrap: break-word;
helps you you have very long code but its clear i understand your need this will help you. check this fiddle and refer this question moreover which is not a parent problem padding
left right also clear it.
ul.lisits{
width:100%;
overflow:hidden;
}
ul.lisits > li{
display:inline-block;
}
ul.lisits > li > a{
word-wrap: break-word;
overflow-wrap: break-word;
}
other thing is in case of fixed div or ul text-overflow:ellipsis
and white-space:nowrap
will help :)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.