Encontrei este exemplo no stackoverflow:
Desenhar círculo usando css sozinho
O que é ótimo. Mas gostaria de saber como modificar esse exemplo para incluir texto no meio do círculo?
Também encontrei o seguinte: centralizar vertical e horizontalmente o texto em círculo em CSS (como o emblema de notificação do iphone)
mas por algum motivo, não está funcionando para mim. Quando crio o seguinte código de teste:
<div class="badge">1</div>
em vez de um círculo, tenho uma forma oval. Estou tentando brincar com o código para ver como posso fazê-lo funcionar.
css
css-shapes
ponto
fonte
fonte
border-radius:50%;
que faz com que seu evento código mais elegante e portátil, sem ter que mudar este atributo cada vez com base na largura e altura;)Se o seu conteúdo for encapsulado e tiver uma altura desconhecida, esta é sua melhor aposta:
http://cssdeck.com/labs/aplvrmue
Mostrar snippet de código
fonte
display: absolute
quebra o alinhamento - mas a solução fácil é envolvê-lo em outra div.Você pode usar css3
flexbox
.HTML:
CSS:
Isso permitirá que você tenha alinhado vertical e horizontalmente o texto de uma linha e várias linhas alinhadas ao meio.
Mostrar snippet de código
fonte
Eu acho que você quer escrever texto em um oval ou círculo? por que não este?
fonte
Para um web design que recebi recentemente, tive que resolver a quantidade de texto centralizada e desconhecida em um problema de círculo fixo e pensei em compartilhar a solução aqui para outras pessoas que pesquisam combos de círculo / texto.
O principal problema que tive foi o texto que muitas vezes quebrou os limites do círculo. Para resolver isso, acabei usando 4 divs. Um contêiner retangular que especificou os limites máximos (fixos) do círculo. Dentro disso, seria a div que desenha o círculo com largura e altura definidas como 100%. Portanto, alterar o tamanho do pai muda o tamanho do círculo real. Dentro disso, haveria outra div retangular que, usando% s, criaria uma área de limite de texto impedindo que qualquer texto saísse do círculo (na maior parte). Finalmente, finalmente, a div real para o texto e a centralização vertical.
Faz mais sentido como código:
Você pode descomentar as cores da borda no divs do contêiner para ver como ele restringe.
Informações importantes: Você ainda pode quebrar os limites do círculo se inserir muito texto ou usar palavras / texto ininterrupto que sejam muito longos. Ainda não é adequado para texto completamente desconhecido (como a entrada do usuário), mas funciona melhor quando você sabe vagamente qual é a maior quantidade de texto que você precisa armazenar e define o tamanho do círculo e o tamanho da fonte de acordo. É possível definir o div do contêiner de texto para ocultar qualquer estouro, é claro, mas isso pode parecer "quebrado" e não substitui a contabilização do tamanho máximo corretamente no seu design.
Espero que isso seja útil para alguém! HTML / CSS não é minha disciplina principal, por isso tenho certeza de que isso pode ser melhorado!
fonte
Desenhe um círculo com texto no meio com tag HTML e sem CSS
fonte
font-size
,font-family
,x
, ey
alinhar. Para quem não possui o Verdana instalado, ele não será centralizado. O usox="50%" y="50%" dominant-baseline="middle" text-anchor="middle"
também não resolve o problema.Se for apenas uma linha de texto, você poderá usar a propriedade line-height, com o mesmo valor que a altura do elemento:
Se o texto tiver várias linhas ou se o conteúdo for variável, você poderá usar o preenchimento superior:
Exemplo: http://jsfiddle.net/2GUFL/
fonte
Claro, você precisa usar tags para fazer isso. Um para criar o círculo e outro para o texto.
Aqui algum código pode ajudá-lo
Exemplo ao vivo aqui http://jsbin.com/apumik/1/edit
Atualizar
Aqui menos menor com algumas mudanças
http://jsbin.com/apumik/3/edit
fonte
Para mim, apenas esta solução funcionou para texto de várias linhas:
fonte
Se você estiver usando o Foundation 5 e a estrutura do Compass, tente isso.
entrada .sass
saída .css
fonte
Comprei isso na página do YouTube, que tem uma configuração muito simples. Absolutamente sustentável e reutilizável.
fonte
Algumas das soluções aqui não funcionaram bem para mim em pequenos círculos. Então eu fiz essa solução usando a posição absoluta.
O uso do SASS ficará assim:
E pode ser usado como
Veja a demonstração em https://codepen.io/matheusrufca/project/editor/DnYPMK
Veja o trecho para visualizar o CSS de saída
Mostrar snippet de código
fonte
Uma maneira de fazer isso é usar o flexbox para alinhar o texto no meio. A maneira que encontrei para fazer isso é o seguinte:
HTML:
CSS:
Aqui o plnkr: https://plnkr.co/edit/EvWYLNfTb1B7igoc3TZx?p=preview
fonte
Usando esse código, ele também responderá.
fonte
fonte
Eu estava combinando algumas respostas de outras pessoas e com,
float
erelative
isso me deu o resultado que eu precisava.Em HTML eu uso uma div. Eu o uso dentro de um
li
para uma barra de navegação.fonte