web-dev-qa-db-fra.com

CSS div width ne fonctionne pas

J'ai un problème étrange. Une des largeurs de ma div ne fonctionne pas. Mon CSS est comme

.product_info
{
    margin-top:10px;
    background:#444;
    width:850px;

}
.product_image
{
    width:350px;
    text-align:center;
    float:left;
    padding:8px;
    border:1px solid #e9e9e9;
    background:#fff;
}
.product_details
{
    float:left;
    width:400px;
    margin-left:25px;
    font-size:14px;
    font-family:"Helvetica";
    background:#d71414;
}

Et mon fichier HTML est 

<div class="product_info">
                <div class="product_image">

                </div>

                <div class="product_details">
                    <div class="selection">
                    <form action="{$path_site}{$indeex_file}" method="post">
                    Size
                    {foreach name = feach item = k from = $product_size}
                        <input type="radio" name="size" value="{$k.product_size}" />{$k.product_size}
                    {/foreach}


                    </div>

                    <div class="selection">
                    No. of pieces <input type="text" name="quantity">

                    </div>
                    <div class="prc">
                        <span class="WebRupee">Rs.</span> {$product_info->product_cost}.00
                            </div>

                    <div class="buy_btn"><input type="submit" value="BUY" /></div>
                    </form>
                </div>
            </div>

Mais comme vous pouvez le voir dans l'image ci-jointe, ma divproduct_info n'est pas 850pxenter image description here

15
Nitish

Essayer 

bloc de visualisation 

Ça devrait marcher

22
Vishal

display: flex sur l'élément parent modifie également le fonctionnement de width et height.

Ils perdent fondamentalement le sens initial et agissent en tant que flex-basis, voir geddski: La différence entre la largeur et la base flexible

3
Tamas Hegedus

j'espère que vous regardez comme ceci: - http://tinkerbin.com/MU2CUpre

En fait, vous avez utilisé floating dans votre child div's et n'avez pas clear votre parent div. J'ai donc cleared votre parent div à overflow:hidden; dans parent div et cleared cet enfant div .product_details également très bien fonctionner .....

CSS

.product_info
{
    margin-top:10px;
    background:#444;
    width:850px;
    overflow:hidden;
}

.product_details
{
    float:left;
    width:400px;
    margin-left:25px;
    font-size:14px;
    font-family:"Helvetica";
    background:#d71414;
    clear:both;
}
0
Shailender Arora

Utilisez la propriété clear: both;.

.product_info {clear: both;}
0
Rajeesh