#html #css
#HTML #css
Вопрос:
Почему это не работает (т.Е. Содержимое div не центрируется по вертикали)?:
<div style="display: table;">
<div style="vertical-align: middle; display:table-cell; height: 100px; font-size: 11px;">
<a target="_self" runat="server" href="~/daily.aspx">
<img src="images.png" /></a>
content in div<br />
</div>
</div>
Поиск в Google везде, чтобы понять, как я могу выровнять div по вертикали и его содержимое, не удался.
У кого-нибудь есть идеи по лучшему стилю css для содержимого в div.
ОБНОВЛЕНИЕ Необходимо объяснить, что мне нужен текст, выровненный по вертикали с изображением, а не только с div. Текст находится внизу изображения. Возможно, придется использовать символы с плавающей запятой.
Комментарии:
1. Я не могу воспроизвести вашу ошибку: jsfiddle.net/QtzRA
2. Это то, что я читал, когда искал в Google. Это должно было сработать, но это не так. Это версия css? Это как-то связано с внешними подразделениями? Мне нужно продолжить расследование.
3. @Rob какой браузер вы используете? у меня тоже работает.
4. IE9 и Firefox Beta 8. Я просматриваю веб-сайт на предмет типов документов, переопределяет скрытый css-тег / img…
5. Извините, я обнаружил, что не объяснил себя ясно:(. Я хочу, чтобы текст был центрирован по вертикали по отношению к изображению. Если изображение имеет размер 60 пикселей и требуется, чтобы текст располагался по центру в середине изображения (30 пикселей), а не в div. Я использовал div, потому что думал, что это сработает.
Ответ №1:
Если вам нужен только текст, выровненный по середине текста, этого будет достаточно:
<div>
<div>
<a target="_self" runat="server" href="~/daily.aspx">
<img src="images.png" style="vertical-align: middle;"/></a>
content in div<br />
</div>
</div>
и вот пример http://jsfiddle.net/Tetaxa/tVQc6 /
Комментарии:
1. Спасибо!!! Извините всех остальных за то, что мой первоначальный вопрос не был объяснен должным образом. Не могу поверить, насколько это просто. Еще раз спасибо.
2. ну,
img
он расположен в строке, поэтому высота строки будет скорректирована для этой строки. если вы хотите, чтобы текст разбивался на несколько строк сбоку от изображения, вам нужно расположитьimg
его абсолютно или плавающим.3. Теперь я понимаю. Попробую это сделать. Спасибо.
Ответ №2:
Если вы отображаете элемент в виде таблицы, почему бы не использовать таблицу?
Однако, насколько я знаю, невозможно центрировать содержимое, если вы не знаете его высоту. ЕСЛИ вы знаете высоту, вы можете использовать что-то вроде этого:
.container {
position: relative;
}
.vertical {
position: absolute:
top: 50%;
height: 200px;
margin-top: -100px; // This is half the height
}
Комментарии:
1. Хороший момент в использовании таблицы 🙂 Но я ненавижу использовать таблицы для чего-то такого маленького. В моем примере была определена высота, но я попробую ваш пример и посмотрю, работает ли он. Спасибо за ответ.
2. @Rob Не используйте
<table>
элементы для данных, отличных от таблиц, особенно для целей стилизации .3. Я не знал, что это не табличные данные, но этот код определенно работает.
Ответ №3:
почему бы вам не попробовать использовать <table>
? или вы хотите сделать это с <div>
самим собой?
Комментарии:
1. Поскольку это не табличные данные, он не должен использовать таблицу
2. Я согласен со всеми, кто предложил не использовать таблицу для этого примера 🙂
Ответ №4:
Я знаю, что это старый вопрос,
но кто-нибудь пробовал вместо этого отображать: таблица / таблица-ячейка / таблица-строка? Это должно быть хорошо. (конечно, не работает на старых IE и т.д.)
Типы из W3Schools: http://www.w3schools.com/cssref/pr_class_display.asp
Эти типы могут быть установлены для любого элемента html, и он должен отображаться как часть таблицы (или самой таблицы). Это означает, что вы должны иметь возможность использовать divs для отображения данных, как если бы они были в таблице. Я не тестировал это, хотя в последний раз я использовал это много лет назад.
возможность отображения элемента в виде таблицы таблица-заголовок Элемент отображается в виде таблицы заголовок таблица-ячейка Элемент отображается в
виде ячейки таблицы таблица-столбец Элемент отображается в виде столбца таблицы
таблица-столбец-группа Элемент отображается в виде таблицы группа столбцов (как)
таблица-нижний колонтитул-группа Элемент отображается как нижний колонтитул таблицы группа строк
таблица-заголовок-группа Элемент отображается как заголовок таблицы группа строк
таблица-строка Элемент отображается как строка таблицы таблица-строка-группа Элемент отображается как группа строк таблицы
Комментарии:
1. Не могли бы вы немного подробнее остановиться на этом? Попробуйте как?
2. Я сделал, но я не думаю, что вы будете его использовать 😉