Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何使用百分比设置中心?_Html_Css_Css Position_Center - Fatal编程技术网

Html 如何使用百分比设置中心?

Html 如何使用百分比设置中心?,html,css,css-position,center,Html,Css,Css Position,Center,作为一个实验,我一直在尝试使用CSS中的百分比将一个DIV置于BODY标记的中心。我想我在某一点上找到了答案,但多亏了TopStyle的魔力,一旦你保存下来,我就失去了它 下面是我的HTML: <html> <head> <link href="shadow.css" rel="stylesheet" type="text/css" /> </head> <body> <di

作为一个实验,我一直在尝试使用CSS中的百分比将一个DIV置于BODY标记的中心。我想我在某一点上找到了答案,但多亏了TopStyle的魔力,一旦你保存下来,我就失去了它

下面是我的HTML:

<html>
    <head>
        <link href="shadow.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <div id="box"></div>
    </body>
</html>
要回答您当前的问题:

为什么我在盒子上使用绝对定位?
这样,即使没有内容拉伸,盒子也可以接受80%的高度

为什么我的宽度、最小宽度和最小高度是这样的?
因为我希望box DIV占据80%的可用空间,所以使用minimum是有意义的。我使用像素宽度来确保无论区域有多小,都不会小于740px,从而导致浏览器激活水平滚动条。理论上,如果内容通过80%的可用区域,则内容高度应激活垂直滚动条

现在的诀窍是让它完全居中,并在盒子周围保持10%的空间。我尝试过将“边距:10%;”应用于主体,然后将“填充:10%;”应用于主体,最后将“边距:10%”应用于长方体DIV。所有这些选择都给了我相同的结果:它水平居中,但垂直方向的行为奇怪。我的四周都没有足够的空间。唯一的情况是,box DIV似乎使用了80%的可用空间

看来这应该是对的。长方体DIV占80%,每侧的利润占10%(垂直20%,水平20%),占100%。不知道为什么它不起作用

我发誓我也曾以类似的方式工作过,现在我已经失去了它

有人解释为什么百分比显示不正确,我需要什么解决方案吗


谢谢

移除
位置:绝对来自
#框

将此添加到
#框中
-
边距:0自动

扔掉
正文中的东西

试着这样做:

*
{
    margin: 0;
    padding: 0;
}

body { background-color: #EEEEEE; }

div#box
{
    position: absolute;
    border: #CCCCCC thin solid;

    top: 10%;
    left: 10%;

    width: 80%;
    height: 80%;

    min-width: 740px;
    min-height: 500px;    
}

IE将允许DIV缩小到您的限制以下,因为最小宽度和最小高度不起作用。

最终结果应该是什么?垂直边距占车身宽度的10%!所以对于宽屏幕,你会有一个巨大的上边距(看起来像20+)。thirtydot,我想看到的是一个浅灰色背景,白色框死点,两边间隔均匀。无论可视区域延伸了多少,它的所有侧面都应该有空间。在FF中,这个例子唯一有效的时候是当可视区域是或几乎是完全正方形时!所以这就解释了为什么双方都不平等。它基于水平空间的垂直百分比。有趣。那么,现在我该怎么办呢?试试我答案中的代码,它应该可以在任何分辨率下工作。Myles,当我尝试你的解决方案时,长方体DIV水平居中,高度收缩到0px,因为我删除了“position:absolute;”。我查看了你提供的链接,我看到了使用我的解决方案所看到的内容。我有一个16:9比例的监视器,当我将FF浏览器设置为全尺寸时,框被向下推,几乎接触到可视区域的底部。根据Jaroslav Jandek的说法,这是因为上下页边距基于水平空间,而不是我所期望的垂直空间。现在我只想弄明白如何“欺骗”它去做代码中似乎合乎逻辑的事情。射击和得分!干得好!这正是我想要的结果。谢谢但有一个问题。我在min height上添加百分比设置的原因是,如果它是空的,我希望它占据80%的空间。但是,如果内容向下推并传递它,我希望框展开以适合内容。现在,内容将推动通过包含分区的边界。思想?注意:我继续并用高度和宽度反转了最小高度和最小宽度,它解决了我在Chrome和FF中的问题,但在IE中没有如您所指出的那样。不过,我称之为胜利@linnium:溢出仍然可能发生,因为您同时指定了
height
minheight
。要允许DIV环绕文本,您必须删除
高度
(在IE中看起来很难看),因此可以使用
高度:500px!ie(虽然这是无效的CSS,但在FF中效果很好,在IE中也不错)。
*
{
    margin: 0;
    padding: 0;
}

body { background-color: #EEEEEE; }

div#box
{
    position: absolute;
    border: #CCCCCC thin solid;

    top: 10%;
    left: 10%;

    width: 80%;
    height: 80%;

    min-width: 740px;
    min-height: 500px;    
}