【问题标题】:DIV's with percentage width doesn't work (no borders, no margin/padding)具有百分比宽度的 DIV 不起作用(无边框,无边距/填充)
【发布时间】:2012-11-19 05:35:57
【问题描述】:

我创建了自己的进度条并遇到了一些问题

我有一个宽度为 90% 的完整 .box

在那个盒子里,我有一个宽度为 100 的 .progress div

在 .progress div 中,我得到了 .left-free div 10%、.progressbar 80%、.right-free 100%

在 .progressbar 我有 4 个 div .grey 30%、.violet 30%、.brown 30%、.blank 0%

问题是不知道为什么 .grey、.violet、.brown 的大小不一样!

编辑:(.blank div 只是一个分隔符.. 一切都很好。)

我不使用边距或填充或任何边框。 .progressbar 周围的边框是用 box-shadow 实现的。

我的 html 代码:

<div id="box">

    <div id="progress">

        <div class="left-free">10% free</div>

        <div class="progressbar">
            <div class="grey" style="width:30%">30%</div>
            <div class="violet" style="width:30%">30%</div>
            <div class="brown" style="width:30%">30%</div>
            <div class="blank" style="width:0%">0%</div>
        </div>

        <div class="right-free">10% free</div>

    </div>

</div> 

我的 CSS 代码:

body
    {
        width:100%;
        background-color:#eee;
        padding:0;
        margin:0 auto;
    }
#box
    {
        width:90%;
        padding:0;
        margin:2% auto;
        background-color:#eee;
    }
#progress
    {
        width:100%;
        padding:0;
        margin-bottom:10%;
    }    
.left-free
    {          
        width:10%;
        float:left;
        box-shadow: inset -1px 0px 0px rgba(0, 0, 0, 1);         /* right */
    }
.progressbar
        {
            position:relative;
            width:80%;
            float:left;
            background-color:#ffffff;
            box-shadow: inset 0px 1px 0px rgba(0, 0, 0, 1),         /* top */
                        inset 0px -1px 0px rgba(0, 0, 0, 1);         /* bottom */
        }
.grey {background-color:grey;}
.violet  {background-color:violet;}
.brown  {background-color:brown;}
.blank {background-color:#ffffff;}

.grey,
.violet,
.brown,
.blank
    {
        height:100px;                                            
        float:left;
        margin-top:1px;
    }

.left-free,
.progressbar,
.right-free
    {
        height:102px;                                           
    }
.right-free
    {
        width:10%;
        float:left;
        box-shadow: inset 1px 0px 0px rgba(0, 0, 0, 1);         /* border left */
        text-align:right;
    }

我创建了一个屏幕截图,并在所有 3 个框上放置了一个宽度相同的绿色条! 在 .violet 和 .brown div 的右端有一个垫片(希望你能在图片上看到它)

这里有一个更好的视野

你可以在jsfiddle看到运行代码

第二个例子:jsfiddle 2

知道为什么这些盒子的尺寸不同吗?

编辑:我将html上传到pastebin

【问题讨论】:

  • 我用 chrome 插入了 jsfiddle,灰色、紫色和棕色的宽度和高度相同。
  • 我也检查了您的示例,Windows 上的 Chrome 和 Mac 上的 Safari,我在 Photoshop 中使用了指南,所有 3 个都是相同的。
  • 真的吗?我在 win7 上使用 firefox 并得到了所描述的问题,并且在 internet explorer 9 上也是如此
  • 我会说问题出在绿条上。在其中放置一个固定宽度,看看会发生什么(比如 200 像素)。
  • 但我用 Photoshop 创建了绿条..

标签: html css width percentage


【解决方案1】:

将灰色和棕色宽度更改为 30.1% 或仅移除边框进度条

【讨论】:

  • 为什么是 30.1%?我没有任何边框..边框只是一个 boxshadow,对栏的宽度没有任何影响
  • 这是因为你没有重置你的css,阅读这个developer.yahoo.com/yui/reset
  • 你到底想用这些 div 做什么????所以也许我可以为您提供另一种解决方案...
  • ok.. 让我试着解释一下.. 一天有 1440 分钟.. 颜色框 (30%) 是每个 480 分钟减去 10%。所以每个盒子我有 384 分钟,这给了我 30% 的宽度。我的 php 脚本现在检查工作时间并给出宽度结果。所以我得到了我公司效率的结果.. 例如在这里你可以看到灰色的盒子做得很好jsfiddle.net/ka7gn这里我们产能过剩。这就是为什么我需要白框.. 我的 php 脚本工作正常.. 但是模板有一个错误.. 这对于统计数据来说并不好:D
猜你喜欢
  • 2017-06-21
  • 2012-01-27
  • 2012-11-21
  • 1970-01-01
  • 1970-01-01
  • 2012-06-30
  • 2014-03-05
  • 1970-01-01
  • 2015-08-12
相关资源
最近更新 更多