Адаптивные круги CSS, которые могут содержать центрированное содержимое
Я ищу способ создать отзывчивый круг CSS3, который может содержать центрированное содержимое.
Что касается круга, я нашел хорошую информацию в этом вопросе. Очень плохо, что кажется, что никто не может сосредоточить содержание в этом.
Этот вопрос также очень похож на мой, несмотря на то, что это изображение, которое должно быть центрировано. Использование фонового изображения в моем случае не вариант, так что этот вариант не работает для меня, а также.
У вас есть какие-нибудь идеи как я мог подойти к этому?
Конечно, я мог бы использовать изображение, но CSS был бы намного элегантнее!
3 ответа:
Чистый CSS, требующий много дополнительных оберток
Обновлено: оригинальное сообщение (которое я удалил) пропустило тот факт, что вы искали адаптивный дизайн. основываясь на моем ответе на вопрос об отзывчивых кругах, на который вы ссылаетесь , кажется, работает во всех браузерах CSS3, смотри скрипка.
HTML (требуется пять уровней обертки, я показываю только один круг в этом html)
<div class="circles"> <div> <div> <div> <div> <!-- BEG Content --> All types of content (see fiddle) <!-- END Content --> </div> </div> </div> </div> <!-- ditto the above 3 more times --> </div>
CSS
.circles{ margin:0px auto; } .circles > div { overflow:hidden; float:left; width:auto; height:auto; position: relative; border-radius:50%; -moz-border-radius:50%; -webkit-border-radius:50%; -khtml-border-radius: 50%; background:#eee; } .circles > div > div { position: absolute; top: 0; right: 0; bottom: 0; left: 0; } .circles > div > div > div { display: table; width: 100%; height: 100%; } .circles > div > div > div > div { display: table-cell; text-align: center; vertical-align: middle; } @media (max-width: 320px) { .circles > div {padding: 50%;} } @media (min-width: 321px) and (max-width: 800px) { .circles > div {padding: 25%;} } @media (min-width: 801px) { .circles{width:800px} .circles > div {padding: 12.5%;} }
Если высота содержимого фиксирована и требуется метод CSS, используйте следующие свойства для применения к тому, что находится внутри cicle
margin: auto; /*will center the element*/ position: relative; top: 50%; margin-top: - [here insert the height of the element if you know in advance / 2]px
Принятый ответ не сработал для меня, так как я хотел повернуть круг. Это делает:
HTML
<div class="mycircle"> <div class="mycontent"> <span>TEXT</span> </div> </div>
CSS
.mycircle { width: 30%; height: 0; padding: 15% 0; //padding top & bottom must equal width border-radius: 50%; -moz-border-radius: 50%; -webkit-border-radius: 50%; background: #dedede; } .mycontent { position: absolute; top: 0; left: 0; width: 100%; height: 100%; text-align: center; } .mycontent:before { content: ''; vertical-align: middle; display: inline-block; width: 0; height: 100%; } .mycontent span { vertical-align: middle; display: inline-block; }