div中的垂直对齐div [重复]

Posted

技术标签:

【中文标题】div中的垂直对齐div [重复]【英文标题】:Vertical align div in a div [duplicate] 【发布时间】:2018-10-24 22:53:12 【问题描述】:

我正在使用 bootstrap 设计一个网站,该网站的首页具有 100% 高度和 100% 宽度的图像。现在我在图像上方添加了一些文本和两个按钮,并希望水平和垂直对齐。我在 *** 上找到了几个解决方案。但遗憾的是,它们都不适用于我的情况(只有水平中心有效)。所以这是我的代码,希望你们能找到解决方案...

#Startseite 
	background: url(http://qnimate.com/wp-content/uploads/2014/03/images2.jpg) no-repeat center center fixed; 
	width: 100%;
	position: relative;
	height: 100%;
	background-size: cover;
	text-align: center;
	display: table;
	vertical-align: middle;

.CentermiddleStart 
  display: inline-block;

#Startseite #button-right
    text-align: right;

#Startseite #button-left
    text-align: left;
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>

<body>
<div id="Startseite">
	<div class="container CentermiddleStart">
		<div class="row">
			<div class="col-12">
				<h1>Header</h1>
				<h3>Subheader</h3>
			</div>
		</div>
		<div class="row">
			<div class="col-xs-6" id="button-right">
				<a href="#" class="btn btn-default btn-lg">Get started</a>
			</div>
			<div class="col-xs-6" id="button-left">
				<a href="#" class="btn btn-default btn-lg">Get started</a>
			</div>
		</div>
	</div>
</div>
</body>

所以图像应该是视图的全尺寸并且按钮和文本居中

【问题讨论】:

我认为 bootstrap 有一个方便的网格系统。应该试一试。 3x3 (9) 网格系统,基本上会留下您需要的所有对齐方式,因此您可以根据需要将其居中。 【参考方案1】:

* 
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;

#Startseite 
position:relative;

#Startseite .its-background 
width:100% !important;
height:auto !important;
max-width:100% !important;

.CentermiddleStart 
position:absolute;
top:50%;
left:50%;
-webkit-transform:translate(-50%,-50%);
    -ms-transform:translate(-50%,-50%);
        transform:translate(-50%,-50%);
z-index:1;
text-align:center;
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>

<body>
<div id="Startseite">
<img src="http://qnimate.com/wp-content/uploads/2014/03/images2.jpg"  class="its-background"/ >
	<div class="container CentermiddleStart">
		<div class="row">
			<div class="col-12">
				<h1>Header</h1>
				<h3>Subheader</h3>
			</div>
		</div>
		<div class="row">
			<div class="col-xs-6" id="button-right">
				<a href="#" class="btn btn-default btn-lg">Get started</a>
			</div>
			<div class="col-xs-6" id="button-left">
				<a href="#" class="btn btn-default btn-lg">Get started</a>
			</div>
		</div>
	</div>
</div>
</body>

【讨论】:

我没有使用 * 和 !important 后面的 css 部分,因为它无需感谢就可以工作!【参考方案2】:

使用 Flex 的解决方案:

JSFiddle demo

#Startseite 
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  background: url(http://qnimate.com/wp-content/uploads/2014/03/images2.jpg) no-repeat center center fixed;
  width: 100%;
  position: relative;
  height: 100%;
  background-size: cover;


不使用 Bootstrap 的解决方案:

JSFiddle demo

<div id="Startseite">
  <h1>Header</h1>
  <h3>Subheader</h3>

  <div class="buttons">
    <button id="button-right">
      <a href="#">Get started</a>
    </button>

    <button id="button-left">
      <a href="#">Get started</a>
    </button>
  </div>
</div>

【讨论】:

以上是关于div中的垂直对齐div [重复]的主要内容,如果未能解决你的问题,请参考以下文章

垂直对齐另一个div中两个不同div中的文本[重复]

垂直对齐浮动div中的元素[重复]

如何左对齐和垂直对齐标题中的图像并将文本水平保持在div的中心[重复]

垂直居中和居中对齐文本并为 div 添加边距?我迷路了[重复]

CSS垂直对齐段落到div [重复]

水平和垂直对齐 Div [重复]