可变列数的宽度未知
P粉441076405
P粉441076405 2023-08-20 21:40:19
[CSS3讨论组]
<p>我想在列中排列一些项目。我无法预测项目的宽度或高度,也无法预测容器的宽度或高度。我也无法预测可以容纳多少列或列的宽度应该是多少。我希望浏览器在不超过容器宽度的情况下,将项目排列在最大数量的列中,同时最小化容器的高度。</p> <p>这个解决了问题,但是否有更好的方法?可以不使用jQuery来实现吗?可以以一种老旧浏览器也能正常显示的方式来实现吗(也许将其排列在行中而不是列中)?</p> <pre class="brush:php;toolbar:false;">&lt;style&gt; #wrapper { column-width: 100px; /* jQuery将更改此值 */ padding: 20px; border: 2px solid blue; } .item { padding: 50px; border: 2px solid green; } &lt;/style&gt; &lt;div id="wrapper"&gt; &lt;div class="item"&gt;1&lt;/div&gt; &lt;div class="item"&gt;2&lt;/div&gt; &lt;div class="item"&gt;3&lt;/div&gt; &lt;div class="item"&gt;4&lt;/div&gt; &lt;div class="item"&gt;5&lt;/div&gt; &lt;div class="item"&gt;6&lt;/div&gt; &lt;div class="item"&gt;7&lt;/div&gt; &lt;div class="item"&gt;8&lt;/div&gt; &lt;div class="item"&gt;9&lt;/div&gt; &lt;/div&gt; &lt;script src="https://code.jquery.com/jquery-3.6.0.min.js"&gt;&lt;/script&gt; &lt;script&gt; // 获取子元素的最大宽度。 var maxWidth = 0; jQuery('#wrapper .item').each(function() { var width = jQuery(this).outerWidth(true); if (width &gt; maxWidth) { maxWidth = width; } }); // 将包装器的列宽度设置为最大宽度。 jQuery('#wrapper').css('column-width', maxWidth + 'px'); &lt;/script&gt;</pre> <p><br /></p>
P粉441076405
P粉441076405

全部回复(1)
P粉865900994

你可以使用网格来实现这个

#wrapper {
    display: grid;
    grid-auto-flow: row;
    grid-gap: 20px;
    grid-template-columns: repeat(9, 1fr);   //将9更改为列数
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号