Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.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
Css 使其连续两次<;部门>;在容器的中心_Css_Html_Center - Fatal编程技术网

Css 使其连续两次<;部门>;在容器的中心

Css 使其连续两次<;部门>;在容器的中心,css,html,center,Css,Html,Center,我有 有没有办法使#div2和div3同时位于#容器的中心(水平和垂直),且高度可变 使用浮动:左和高度:100% 这可以通过使用flexbox的当前标记来完成 (在fiddle中为旧浏览器添加了供应商前缀) CSS 这就是说,如果您将div2和div3元素包装在一个div中,然后尝试对齐包装div,这将变得容易得多。这是一个很难回答的问题,因为在所有现实中,我们都不知道,一旦您将所需的所有内容放在两个内部div中,您的宽度将接近什么样子。不过,我确实有一些解决方案可以让您受益匪浅 注意:以下所

我有


有没有办法使#div2和div3同时位于#容器的中心(水平和垂直),且高度可变

使用
浮动:左和<代码>高度:100%


这可以通过使用flexbox的当前标记来完成

(在fiddle中为旧浏览器添加了供应商前缀)

CSS
这就是说,如果您将div2和div3元素包装在一个div中,然后尝试对齐包装div,这将变得容易得多。

这是一个很难回答的问题,因为在所有现实中,我们都不知道,一旦您将所需的所有内容放在两个内部div中,您的宽度将接近什么样子。不过,我确实有一些解决方案可以让您受益匪浅

注意:以下所有JSFIDLE示例都已修改为包含颜色,这样您就可以完全理解定位效果

第一种选择:

基本上,这个选项非常简单,除了添加三个元素
display、vertical align和float
,我们保持一切不变。这会导致以下CSS:

#container {
    height:500px;
    text-align: center;
    background: pink;
    display: flex;
    align-items: center; /* horizontal center */
    flex-direction: column;
    justify-content: center; /*vertical center */
}

#div2, #div3 {
   width: 50%;
    background: orange;
}
稍后,我将进一步详细介绍我们为什么使用这三种方法

第二种选择:

我相信这可能就是您想要的,我添加的只是
边距、显示和垂直对齐
,它生成以下CSS代码:

#container {
    height:500px;
    width:100%;
    text-align: center;
    background-color:blue;
    display: table-cell;
    vertical-align:middle;
}

#div2, #div3 {
    float:left;
    text-align:center;
    width: 50%;
    background-color:orange;

}
那么为什么我们要使用时髦的表格单元格显示呢?这是一个简单的技巧,当与垂直对齐相结合时,可以将任何东西放置在外部div的内部,从而正确地将项目放置在其中心

第一个示例和第二个示例之间的区别在于,浮动将使内容始终保持在div的左侧(本质上,不是垂直居中),但有些人喜欢这一方面


边距是一个简单的技巧,可以确保你可以水平居中。我想指出的是,这个div只会随着div中内容的扩展而扩展(即100%宽度的含义)。因此,如果您没有任何内容,那么最外层的div实际上不存在,直到内容被放置在内部div中。因此,如果您的div看起来像一条宽度方向的小直线和长高度,请不要气馁;为了更好地表达这一点,这里有一个。

您是希望div2位于div3之上(即块元素),还是希望它们彼此相邻-内联?嗨,Danield,div2将位于div3之上,并且两者的宽度相同。谢谢。我喜欢第二种方法,这是模仿表格单元格垂直对齐(排序)。当然:)我很高兴它为您工作得很好:)祝您好运!
#container {
    height:500px;
    text-align: center;
    background: pink;
    display: flex;
    align-items: center; /* horizontal center */
    flex-direction: column;
    justify-content: center; /*vertical center */
}

#div2, #div3 {
   width: 50%;
    background: orange;
}
#container {
    height:500px;
    width:100%;
    text-align: center;
    background-color:blue;
    display: table-cell;
    vertical-align:middle;
}

#div2, #div3 {
    float:left;
    text-align:center;
    width: 50%;
    background-color:orange;

}
#container {
    height:500px;
    width:100%;
    text-align: center;
    background-color:blue;
    display: table-cell;
    vertical-align:middle;
}

#div2, #div3 {
    margin: 0 auto;
    text-align:center;
    width: 50%;
    background-color:orange;

}