Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.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
HTML5<;部门>;以内部为中心<;车身>;_Html - Fatal编程技术网

HTML5<;部门>;以内部为中心<;车身>;

HTML5<;部门>;以内部为中心<;车身>;,html,Html,有没有一种方法可以将div放在主体内部,居中,给定的左右边距等于x,上下边距等于y?除了div(及其子项)之外,文档中没有其他内容 更新。我希望: 另外,我很高兴有一个更通用的解决方案,当x1!=x2,y1!=y2(尽管对于我的特殊情况x1==x2,y1==y2的解决方案非常感谢)。如果希望所有浏览器中的边距都相同,则必须使用javascript <body> <div id="the_div" style="margin: 20 auto;margin-bottom:0

有没有一种方法可以将div放在主体内部,居中,给定的左右边距等于x,上下边距等于y?除了div(及其子项)之外,文档中没有其他内容

更新。我希望:


另外,我很高兴有一个更通用的解决方案,当x1!=x2,y1!=y2(尽管对于我的特殊情况x1==x2,y1==y2的解决方案非常感谢)。

如果希望所有浏览器中的边距都相同,则必须使用javascript

<body>
  <div id="the_div" style="margin: 20 auto;margin-bottom:0;width:300px;">
  </div>
  <script type="text/javascript">
    var dim = (function () {
      var _pW, _pH;
      if (document.body && document.body.offsetWidth) {
        _pW = document.body.offsetWidth;
        _pH = document.body.offsetHeight;
      }
      if (document.compatMode == 'CSS1Compat' && 
          document.documentElement && document.documentElement.offsetWidth) {
        _pW = document.documentElement.offsetWidth;
        _pH = document.documentElement.offsetHeight;
      }
      if (window.innerWidth && window.innerHeight) {
        _pW = window.innerWidth;
        _pH = window.innerHeight;
      }

      return { width : _pW, height : _pH };
    })();

    var div = document.getElementById( "the_div" );
    div.style.height = dim.height - 20 + "px";
  </script>
<body>

var dim=(函数(){
var _pW,_pH;
if(document.body&&document.body.offsetWidth){
_pW=document.body.offsetWidth;
_pH=document.body.offsetHeight;
}
如果(document.compatMode=='CSS1Compat'&&
document.documentElement&&document.documentElement.offsetWidth){
_pW=document.documentElement.offsetWidth;
_pH=document.documentElement.offsetHeight;
}
if(window.innerWidth和window.innerHeight){
_pW=窗口宽度;
_pH=窗内高度;
}
返回{宽度:_pW,高度:_pH};
})();
var div=document.getElementById(“the_div”);
div.style.height=尺寸高度-20+“px”;

如果没有CSS3,我最好使用两个div

html {
    width: 100%;
    height: 100%;
}
body {
    position: relative;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
}
div.parent {
    display: inline-block;
    position: relative;
    left: 50%;
    top: 50%;
}
div.child {
    width: 100px;
    margin-left: -50%;
    margin-top: -50%;
    border: 1px solid #000;
}
你可以在这里看到:

更新:如果可以接受CSS3实施,则更容易:


您可以使用固定定位。不过,它在IE6中不起作用

<!DOCTYPE html>
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='de' lang='de'>
    <head>
        <meta charset='utf-8' />
        <title>Test</title>
        <style>
            #bla {
                position: fixed;
                top: 30px;
                left: 60px;
                right: 60px;
                bottom: 30px;
                background: yellow;
            }
        </style>
    </head>
    <body>
        <div id='blah'>
        </div>
    </body>
</html>

试验
#布拉{
位置:固定;
顶部:30px;
左:60px;
右:60px;
底部:30px;
背景:黄色;
}
在行动中看到它:

更好的解决方案(?):
将div的margin left和margin right设置为“auto”

如果您想支持旧的IE版本,请提供以下附加样式:
body{text align:center;}.container{text align:left;}
(需要将“main”div设置为类“container”)为什么要这样做?也许必须,但你想吗?这在Firefox5中似乎不起作用。Div的高度刚好足以包含一个内容(一行文本),而不是主体高度减去y*2。完整的html:div{背景色:蓝色;}只是内容。您的问题定义得很糟糕,而且javascript块可能必须在窗口大小为2Mimisbrunr时被调用。页面就是这样设计的。由设计师设计。这是一个全屏web应用程序,适用于具有不同屏幕的不同平板电脑。然而,所有的边距都应该是相同的像素。这个设计是否好对我来说是个无关紧要的问题。如果div元素的左边距和右边距相等,div就会水平居中。不是吗?还是我误解了你的问题?(然而,div元素垂直放置的位置取决于边距顶部。)是的,它水平和垂直居中。回答不错!谢谢你,伊戈尔!那就容易多了!请参见:由于父div的位置,这将提供浏览器滚动条。还有其他人吗?哪些浏览器支持此功能?