问题:div与width:auto仅自动扩展到特定点

时间:2018-12-04 07:07:20

标签: html css

根据我的理解,宽度为“ auto”的div会自动扩展,直到它填充了父元素。在此示例中,我一行包含多个图标。

图标的数量为7个或更多时,将不再显示在同一行上。还有更多空间,如果我指定的宽度足够容纳项目,那么它将显示在一行上。

为什么还有足够的空间,为什么它只能自动扩展到某个点?

注意: 应该是“ img_strip”自动扩展,而不是“容器”。

            .container {
                width: 320px;
                border: 1px solid black;
            }
    
            img {
                height: 20px;
            }
    
            .strip_container {
                position: relative;
                height: 25px;
            }
    
            .img_strip {
                position: absolute;
                left: 50%;
                top: 50%;
                transform: translate(-50%, -50%);
                margin: 1px;
                /*
                 * It's displayed on one line if I specify
                 * an exact width 
                 *
                 * width: 200px;
                 */
    
            }
<div class="container">
        <div class="strip_container">
            <div class="img_strip">
                <a href="#"><img src="src/main/resources/static/images/com_phone.png"/></a>
                <a href="#"><img src="src/main/resources/static/images/com_email.png"/></a>
                <a href="#"><img src="src/main/resources/static/images/com_url.png"/></a>
                <a href="#"><img src="src/main/resources/static/images/com_address1.png"/></a>
                <a href="#"><img src="src/main/resources/static/images/com_facebook.png"/></a>
                <a href="#"><img src="src/main/resources/static/images/com_facebook.png"/></a>
                <a href="#"><img src="src/main/resources/static/images/com_facebook.png"/></a>
            </div>
        </div>
</div>

4 个答案:

答案 0 :(得分:2)

您给左50%并从-50%移出,因此它占您宽度的50%,因此给text-align:centerleft:0px; right:0px;,它将占据div的整个宽度

.container {
                width: 320px;
                border: 1px solid black;
            }
    
            img {
                height: 20px;
            }
    
            .strip_container {
                position: relative;
                height: 25px;
            }
    
            .img_strip {
                right: 0;
                position: absolute;
                left: 0;
                top: 50%;
                transform: translate(0%, -50%);
                margin: 1px;
                text-align: center;
                /*
                 * It's displayed on one line if I specify
                 * an exact width 
                 *
                 * width: 200px;
                 */
    
            }
            
            img{
            width:15px;}
<div class="container">
        <div class="strip_container">
            <div class="img_strip">
                <a href="#"><img src="https://www.google.co.in/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"/></a>
                <a href="#"><img src="https://www.google.co.in/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"/></a>
                <a href="#"><img src="https://www.google.co.in/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"/></a>
                <a href="#"><img src="https://www.google.co.in/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"/></a>
                <a href="#"><img src="https://www.google.co.in/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"/></a>
                <a href="#"><img src="https://www.google.co.in/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"/></a>
                <a href="#"><img src="https://www.google.co.in/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"/></a>
                <a href="#"><img src="https://www.google.co.in/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"/></a>
                <a href="#"><img src="https://www.google.co.in/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"/></a>
                <a href="#"><img src="https://www.google.co.in/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"/></a>
                <a href="#"><img src="https://www.google.co.in/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"/></a>
                <a href="#"><img src="https://www.google.co.in/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"/></a>
                <a href="#"><img src="https://www.google.co.in/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"/></a>
                <a href="#"><img src="https://www.google.co.in/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"/></a>
                <a href="#"><img src="https://www.google.co.in/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"/></a>
            </div>
        </div>
</div>

答案 1 :(得分:1)

实际上,您使用的位置是:绝对;左:50%;因此,剩下的50%包含一半的空间...为其制作适当的CSS。.我认为您不需要使用position:absolute;使用display:锁定并对齐中心

答案 2 :(得分:1)

            .common_container {
                width: auto;
                border: 1px solid black;
            }
    
            img {
                height: 20px;
            }
    
            .strip_container {
                position: relative;
                height: 25px;
            }
    
            .img_strip {
                position: absolute;
                left: 50%;
                top: 50%;
                transform: translate(-50%, -50%);
                margin: 1px;
                /*
                 * It's displayed on one line if I specify
                 * an exact width 
                 *
                 * width: 200px;
                 */
    
            }
<div class="common_container">
        <div class="strip_container">
            <div class="img_strip">
                <a href="#"><img src="https://img.icons8.com/metro/1600/phone.png"/></a>
                <a href="#"><img src="https://img.icons8.com/metro/1600/phone.png"/></a>
                <a href="#"><img src="https://img.icons8.com/metro/1600/phone.png"/></a>
                <a href="#"><img src="https://img.icons8.com/metro/1600/phone.png"/></a>
                <a href="#"><img src="https://img.icons8.com/metro/1600/phone.png"/></a>
                <a href="#"><img src="https://img.icons8.com/metro/1600/phone.png"/></a>
                <a href="#"><img src="https://img.icons8.com/metro/1600/phone.png"/></a>
            </div>
        </div>
</div>

答案 3 :(得分:0)

.container {
                width: 320px;
                border: 1px solid black;
            }

width:320像素按原样设置宽度。您可以将其更改为最小宽度,以便仍可以扩展。