Цель - центрировать кнопку в div, как по горизонтали, так и по вертикали. Горизонталь был рассмотрен, но возникли проблемы с вертикальным выравниванием.Использование вертикального выравнивания по вертикали по центру в пределах div
Из w3schools page на vertical-align
он утверждает, что с помощью middle
имеет следующий результат:
«Элемент помещается в середине родительского элемента»
В моей задаче (see jsFiddle here) Я установил CSS кнопки в родительском элементе (насколько мне известно), чтобы выровнять по вертикали.
HTML:
<div id='titleSection'>
<div class='title-inner right quarter-width'>
<form action='destroy.php' method='POST'>
<button>Log Out</button>
</form>
</div>
<div class='title-inner left quarter-width'>
<!--nothing-->
</div>
<div class='title-inner center half-width'>
<h1 class='centered-text'>Title</h1>
</div>
</div>
CSS:
* {
font-family:'Arial', Arial, sans-serif;
padding: 0;
margin: 0;
}
h1 {
padding: 2.1vh 0;
font-size: 6vmin;
}
div#titleSection {
width: 100%;
height: 12vh;
border: 2.5px solid #ff0fff;
}
div.title-inner {
height: 100%;
text-align: center;
display:inline-block;
}
div.quarter-width { width: 25%; }
div.third-width { width: 33.3%; }
div.half-width { width: 50%; }
div.left {
float: left;
background-color: rgba(255, 0, 0, 0.5);
}
div.center {
float: center;
background-color: rgba(0, 255, 0, 0.5);
}
div.right {
float:right;
background-color: rgba(0, 0, 255, 0.5);
}
.title-inner button {
vertical-align: middle;
}
Am Я неправильно думать, что родительский элемент является title-inner
DIV?
Я также попытался установить CSS для:
.title-inner form { vertical-align: middle; }
безрезультатно.
Напомним: все дополнительные CSS и html, показанные в jsFiddle, чтобы дать наиболее точное представление о том, что я пытаюсь сделать - извинения, если это не нужно, но я бы предпочел оставить его, чтобы не потерять следы, где я , Конечной целью является просто (по вертикали) центр Выход кнопка в правом (синем) div.
Один совет, сделать структуру с Flexbox ... вы достигнете того, чего хотите, с меньшими правилами CSS и большей гибкостью. - https://css-tricks.com/snippets/css/a-guide-to-flexbox/ –
За исключением того, что flexbox не работает в IE <11, поэтому почти никогда не является жизнеспособным решением. – CodingWithSpike
Документы w3schools довольно ужасны. Вместо этого используйте документы Mozilla Dev Network (MDN). https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align Обратите внимание также на документы, что «Свойство CSS с вертикальным выравниванием указывает вертикальное выравнивание строки inline или table-cell * * коробка. " поэтому, если ваши элементы не являются встроенными или табличными ячейками, вертикальное выравнивание ничего не делает. – CodingWithSpike