Ответ 1
Настройка высоты строки на высоту контейнера должна быть выполнена.
text-align: center;
line-height:20px;
width:20px;
height:20px;
Пример здесь: http://codepen.io/Jedidiah/pen/rLfHz
Я хочу центрировать в квадрате div произвольный символ. Я признаю, что это звучит как очень простая задача, но ничего, что я пробовал, работает (и я пробовал всевозможные вещи!) 1.
For concreteness, let say that the div has height and width equal to 20ex, and let say that the single character is the so-called "multiplication sign": ✕, nice and symmetric. я want this character to be positioned inside the 20ex-by-20ex square div such that the point where the two strokes cross is dead-center, both vertically and horizontally, within the div.
EDIT:
I tried the answers I've received so far, here. The solutions given by Jedidiah and by Ashok Kumar Gupta (second and third divs) produce pretty similar results, but (maybe I'm seeing things), the ✕ in the third div is just a hair above the vertical center.
1 Я узнал, что независимо от того, насколько разумно прост может возникнуть задача компоновки, она все равно может потребовать от меня часов и часов и часов, чтобы понять CSS для его достижения.
Настройка высоты строки на высоту контейнера должна быть выполнена.
text-align: center;
line-height:20px;
width:20px;
height:20px;
Пример здесь: http://codepen.io/Jedidiah/pen/rLfHz
Используйте display:table-cell
и vertical-align:middle
и text-align:center
. Как это в вашем CSS:
#center{
width:100px;height:100px;
display:table-cell;
text-align:center;
vertical-align:middle;
}
display:table-cell
требуется, чтобы использовать vertical-align
для центра содержимого в div
(не спрашивайте меня, почему кто-то решил сделать это как :)).
Смотрите JSFiddle.
Этот вопрос немного устарел, но, заметив редактирование OP:
Я попробовал ответы, которые я получил до сих пор, здесь. Решения, данные Джедидией и Ашоком Кумаром Гуптой (второй и третий дивизии), дают довольно похожие результаты, но (возможно, я вижу вещи), ✕ в третьем div - только волосы выше вертикального центра.
Я хотел опубликовать это, если вы использовали ×
вместо ✕
, центрирование выглядит намного лучше.
этот вопрос немного старый, но это первый ответ, когда вы ищете "центрировать одну букву в квадрате css"
так что в 2018 году вы можете просто сделать
#center {
width: 0;
height: 0
display: flex;
justify-content: center;
align-items: center;
}
justify-content: center
выровнен по горизонталиalign-items: center
выровнять по вертикалиОбратите внимание, что он будет работать независимо от формы div, может быть прямоугольником.
На ваш вопрос:
<div style="width: 20em;height: 20em; background: red;display: table;">
<p style="display: table-cell;text-align: center;vertical-align: middle;">X</p></div>
Примечание: фон: красный; только для визуализации.
:)
Просто невозможно использовать css только для центрирования одного символа по вертикали и горизонтали в div, потому что это зависит от шрифта, который браузер будет использовать для визуализации символа.
Для тех, кто просто хочет центрировать "X", безопаснее сделать "X" прозрачным, создать псевдоэлементы: before и: after, придать им тонкую ширину и фон, который имеет тот же цвет, что и начальный " X ", затем поверните их на + или - 45 градусов.
HTML код:
<div>X</div>
Код CSS:
* {
box-sizing: border-box;
}
div {
font-size: 2em;
position: relative;
border: 1px solid black;
width: 2em;
height: 2em;
color: transparent;
}
div:before,
div:after {
content: "X";
display: block;
z-index: 1;
position: absolute;
top: 0.25em;
bottom: 0.25em;
left: 0.9em;
right: 0.9em;
background-color: black;
}
div:before {
transform: rotate(45deg);
}
div:after {
transform: rotate(-45deg);
}
Вот jsfiddle: https://jsfiddle.net/z4pmu7r9/