CSS div位置在缩放浏览器时搞砸了

时间:2015-01-03 07:30:44

标签: css

我正在开发一个基于网格图像布局的Facebook应用程序网站。以下代码对我来说很好,但是当我缩放我的浏览器时,一切都搞砸了。具有100%缩放视图的浏览器有效。如果可能,请帮我找一些其他代码或修复以下代码。

<style>
div.img {
        margin: 5px;
        padding: 5px;
        border: 1px solid #0000ff;
        height: auto;
        width: auto;
        float: left;
        text-align: center;
    }   

    div.img img {
        display: inline;
        margin: 5px;
        border: 1px solid #ffffff;
    }

    div.img a:hover img {
        border: 1px solid #0000ff;
    }

    div.desc {
      text-align: center;
      font-weight: normal;
      width: 120px;
      margin: 5px;
    }
 </style>

HTML:

<div class="img">
 <a target="_blank" href="klematis_big.htm"><img src="image1.jpg" alt="PHOTO" width="110" height="90"></a>
 <div class="desc">Add a description of the image here</div>
</div>
<div class="img">
 <a target="_blank" href="klematis2_big.htm"><img src="image2.jpg" alt="PHOTO" width="110" height="90"></a>
 <div class="desc">Add a description of the image here</div>
</div>
<div class="img">
 <a target="_blank" href="klematis3_big.htm"><img src="image3.jpg" alt="PHOTO" width="110" height="90"></a>
 <div class="desc">Add a description of the image here</div>
</div>
<div class="img">
 <a target="_blank" href="klematis4_big.htm"><img src="image4.jpg" alt="PHOTO" width="110" height="90"></a>
 <div class="desc">Add a description of the image here</div>
</div>

2 个答案:

答案 0 :(得分:1)

在这种情况下,您必须使用CSS的calc()函数来计算页面调整大小或缩放时每个图像的正确宽度:

width: calc(24.9% - 22px);

我为每张图片使用22px:2 * (margin + border.width + padding)的原因。

并确保使用24.9%而不是25%。

见工作FIDDLE here

答案 1 :(得分:1)

我更新了Sdghasemi的小提琴。为没有宽度计算功能的旧版浏览器添加了回退功能,并将图像宽度设置为100%并稍微清理了Html(关闭图像标记等) 流出容器div的图像是HTML中的宽度和高度属性的原因。我现在把它设置为容器的100%。因为边界,意味着100%-2px。与图片标题相同。

<div class="img">
    <a target="_blank" href="klematis_big.htm">
        <img src="http://lorempixel.com/110/90/" alt="PHOTO"/>
    </a>
    <div class="desc">Add a description of the image here</div>
</div>

<div class="img">
    <a target="_blank" href="klematis2_big.htm">
        <img src="http://lorempixel.com/110/90/" alt="PHOTO"/>
    </a>
    <div class="desc">Add a description of the image here</div>
</div>

<div class="img">
    <a target="_blank" href="klematis3_big.htm">
        <img src="http://lorempixel.com/110/90/" alt="PHOTO"/>
    </a>
    <div class="desc">Add a description of the image here</div>
</div>

<div class="img">
    <a target="_blank" href="klematis4_big.htm">
        <img src="http://lorempixel.com/110/90/" alt="PHOTO"/>
    </a>
    <div class="desc">Add a description of the image here</div>
</div>

的CSS:

div.img {
    margin: 5px;
    padding: 5px;
    border: 1px solid #0000ff;
    height: auto;
    width: 24%;
    width: calc(25% - 22px);
    float: left;
    display: block;
    overflow: hidden;
    text-align: center;
    font-size: 100%;
}   

div.img a:hover img {
    border: 1px solid #0000ff;
}

div.img img{
    width: 99%;
    width: calc(100% - 2px);
    border: 1px solid #fff;
}

div.desc {
  text-align: center;
  font-weight: normal;
  width: 100%;
  width: calc(100% - 10px);
  margin: 5px;
}

http://jsfiddle.net/or2ua75e/5/