父元素宽度不定,多个子元素如何平均分布?

类似效果:图片描述

问题:父元素宽度自适应浏览器窗口宽度,那么其中的子元素如何水平均匀分布呢(包含左右外边距)?

需要兼容ie8不考虑flex等css3布局。

阅读 6k
5 个回答

父元素宽度百分比,里面框框inline-block且宽度百分比,然后给框框加外边距百分比。另外框框外边距设为百分比这个百分比是根据父元素宽度来定的,所以所有框框宽度(%)加上所有框框所有外边距(%)=父元素宽度(即100%)即可。


补充:用inline-block元素与元素间会多出间隙导致间距偏大,这个问题你搜搜怎么解决,详细的就不在这展开了。

1.首尾外边距 2% 中间外边距1% 占据7%父元素的宽度 在拼接html时动态添加进去
2.每个元素本身占据 93%/元素个数 <li style="width:'+(93/itemsLength).toFixed(6)+'+'%';float:left;display:inline-block"><li>

<style>
 .bg {
           padding: 15px  30px;
           background-color: #e1e1e1;
        }
       
        .ul-wrapper {
            padding-left: 0;
            margin-right: -15px;
        }
        .ul-wrapper::after {
            display: block;
            content: '';
            clear: both;
        }
         .li-item {
             float: left;
             width:25% ;
             box-sizing: border-box;
             border-right: 15px solid transparent; // 15px 和 .ul-wrapper的 margin-right:-15px 对应
             list-style-type:none;
         }
         .color {
             height: 150px;
             background-color: #08c;
         }
</style>
<html>
 <!-- margin 等分布局 -->
    <div class="bg">
        <p >管理中心</p>
        <ul class="ul-wrapper">
            <li class="li-item">
               <div class="color"></div>
            </li>
            <li class="li-item">
                <div class="color"></div>
            </li>
            <li class="li-item">
                <div class="color"></div>
            </li>
            <li class="li-item">
                <div class="color"></div>
            </li>
        </ul>

    </div>

</html>

最近在看张鑫旭的《css世界》 参考了他的方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题