Untuk desain web saya baru-baru ini diberi saya harus menyelesaikan jumlah teks terpusat dan tidak diketahui dalam masalah lingkaran tetap dan saya pikir saya akan berbagi solusi di sini untuk orang lain yang mencari ke dalam combo lingkaran / teks.
Masalah utama yang saya miliki adalah teks akan sering melanggar batas-batas lingkaran. Untuk mengatasi ini saya akhirnya menggunakan 4 divs. Satu kontainer persegi panjang yang menentukan batas maksimal lingkaran (tetap). Di dalamnya akan menjadi div yang menggambar lingkaran dengan lebar dan tinggi diatur ke 100% sehingga mengubah ukuran induk mengubah ukuran lingkaran yang sebenarnya. Di dalamnya akan ada div persegi panjang lain yang, menggunakan% 's, akan membuat area batas teks mencegah teks meninggalkan lingkaran (untuk sebagian besar) Kemudian akhirnya div sebenarnya untuk teks dan pemusatan vertikal.
Lebih masuk akal sebagai kode:
/* Main Container - this controls the size of the circle */
.circle_container
{
width : 128px;
height : 128px;
margin : 0;
padding : 0;
/* border : 1px solid red; */
}
/* Circle Main draws the actual circle */
.circle_main
{
width : 100%;
height : 100%;
border-radius : 50%;
border : 2px solid black; /* can alter thickness and colour of circle on this line */
margin : 0;
padding : 0;
}
/* Circle Text Container - constrains text area to within the circle */
.circle_text_container
{
/* area constraints */
width : 70%;
height : 70%;
max-width : 70%;
max-height : 70%;
margin : 0;
padding : 0;
/* some position nudging to center the text area */
position : relative;
left : 15%;
top : 15%;
/* preserve 3d prevents blurring sometimes caused by the text centering in the next class */
transform-style : preserve-3d;
/*border : 1px solid green;*/
}
/* Circle Text - the appearance of the text within the circle plus vertical centering */
.circle_text
{
/* change font/size/etc here */
font: 11px "Tahoma", Arial, Serif;
text-align : center;
/* vertical centering technique */
position : relative;
top : 50%;
transform : translateY(-50%);
}
<div class="circle_container">
<div class="circle_main">
<div class="circle_text_container">
<div class = "circle_text">
Here is an example of some text in my circle.
</div>
</div>
</div>
</div>
Anda dapat menghapus tanda komentar warna perbatasan pada div wadah untuk melihat bagaimana batasannya.
Hal-hal yang harus diperhatikan: Anda masih dapat menembus batas-batas lingkaran jika Anda memasukkan terlalu banyak teks atau menggunakan kata-kata / teks yang tidak terputus yang terlalu panjang. Ini masih tidak cocok untuk teks yang sama sekali tidak dikenal (seperti input pengguna) tetapi bekerja paling baik ketika Anda tahu sedikit apa jumlah teks terbesar yang Anda butuhkan untuk menyimpan dan mengatur ukuran lingkaran dan ukuran font sesuai. Anda dapat mengatur div wadah teks untuk menyembunyikan luapan apa pun tentu saja, tetapi itu mungkin terlihat "rusak" dan tidak ada pengganti untuk benar-benar memperhitungkan ukuran maksimal dengan benar dalam desain Anda.
Semoga ini bermanfaat bagi seseorang! HTML / CSS bukan disiplin utama saya jadi saya yakin ini bisa diperbaiki!