在另一个 div 中垂直居中按钮 div
Vertically centering a button in its own div within another div
我目前正在尝试将按钮与“.row”的其余部分垂直居中。
这是我目前拥有的。我尝试使用诸如向不同元素添加 style="vertical-align: center;" 之类的东西,但按钮不会移动。我找到的唯一解决方案是将它们向下移动 'top: 100px;' 但这当然不是一个有效的解决方案,因为它不适用于所有屏幕尺寸
按钮位于它们自己的 div (.col.s3) 中,这有助于将它们水平定位在 .row 上。这里的目的是将两个外部按钮垂直居中到中间组 (.col.s6)
有什么方法可以轻松地使这些元素垂直居中吗?
在此处检查示例:https://jsfiddle.net/nn35pj3j/
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.95.3/css/materialize.min.css">
</head>
<body>
<div class="row">
<div class="col s3">
<!-- First Button -->
<a class="btn-floating btn-small waves-effect waves-light red left" style=""><i class="mdi-content-add"></i></a>
</div>
<!-- Middle -->
<div class="col s6">
<h2 class="header" style="text-align: center">Buttons</h2>
<div>
<a class="waves-effect waves-light btn">One</a>
<a class="waves-effect waves-light btn">Two</a>
<a class="waves-effect waves-light btn">Three</a>
<a class="waves-effect waves-light btn">Four</a>
<a class="waves-effect waves-light btn">Five</a>
<a class="waves-effect waves-light btn">Six</a>
<a class="waves-effect waves-light btn">Seven</a>
</div>
</div>
<div class="col s3">
<!-- Second Button -->
<a class="btn-floating btn-small waves-effect waves-light red right"><i class="mdi-content-add"></i></a>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.95.3/js/materialize.min.js"></script>
</body>
</html>
首先,你需要在包含.btn
类.
的div
中添加一个id
命名后,您可以使用 css-tricks:
中的技巧垂直对齐
.div_containing_btn {
position: relative;
}
.btn {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
如果您想了解有关此主题的更多信息,请访问:
https://css-tricks.com/centering-css-complete-guide/
浮动元素不会让你走运,它们不遵守垂直对齐。
使用display:inline-块;相反,这样元素就可以垂直对齐。
请注意行内块元素之间的白色space。
您可以将元素外层的字体大小更改为 (0),然后在元素内将字体大小设置回原位。
.row { font-size:0px;}
.row .col { font-size:12px;}
Fiddle DEMO
我目前正在尝试将按钮与“.row”的其余部分垂直居中。
这是我目前拥有的。我尝试使用诸如向不同元素添加 style="vertical-align: center;" 之类的东西,但按钮不会移动。我找到的唯一解决方案是将它们向下移动 'top: 100px;' 但这当然不是一个有效的解决方案,因为它不适用于所有屏幕尺寸
按钮位于它们自己的 div (.col.s3) 中,这有助于将它们水平定位在 .row 上。这里的目的是将两个外部按钮垂直居中到中间组 (.col.s6)
有什么方法可以轻松地使这些元素垂直居中吗?
在此处检查示例:https://jsfiddle.net/nn35pj3j/
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.95.3/css/materialize.min.css">
</head>
<body>
<div class="row">
<div class="col s3">
<!-- First Button -->
<a class="btn-floating btn-small waves-effect waves-light red left" style=""><i class="mdi-content-add"></i></a>
</div>
<!-- Middle -->
<div class="col s6">
<h2 class="header" style="text-align: center">Buttons</h2>
<div>
<a class="waves-effect waves-light btn">One</a>
<a class="waves-effect waves-light btn">Two</a>
<a class="waves-effect waves-light btn">Three</a>
<a class="waves-effect waves-light btn">Four</a>
<a class="waves-effect waves-light btn">Five</a>
<a class="waves-effect waves-light btn">Six</a>
<a class="waves-effect waves-light btn">Seven</a>
</div>
</div>
<div class="col s3">
<!-- Second Button -->
<a class="btn-floating btn-small waves-effect waves-light red right"><i class="mdi-content-add"></i></a>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.95.3/js/materialize.min.js"></script>
</body>
</html>
首先,你需要在包含.btn
类.
div
中添加一个id
命名后,您可以使用 css-tricks:
中的技巧垂直对齐.div_containing_btn {
position: relative;
}
.btn {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
如果您想了解有关此主题的更多信息,请访问: https://css-tricks.com/centering-css-complete-guide/
浮动元素不会让你走运,它们不遵守垂直对齐。
使用display:inline-块;相反,这样元素就可以垂直对齐。
请注意行内块元素之间的白色space。
您可以将元素外层的字体大小更改为 (0),然后在元素内将字体大小设置回原位。
.row { font-size:0px;}
.row .col { font-size:12px;}
Fiddle DEMO