Đối với một thiết kế web, gần đây tôi đã được đưa ra rằng tôi phải giải quyết số lượng văn bản tập trung và không xác định trong một vấn đề vòng tròn cố định và tôi nghĩ rằng tôi sẽ chia sẻ giải pháp ở đây cho những người khác tìm kiếm trong các kết hợp vòng tròn / văn bản.
Vấn đề chính tôi có là văn bản thường sẽ phá vỡ giới hạn của vòng tròn. Để giải quyết điều này, tôi đã sử dụng 4 div. Một thùng chứa hình chữ nhật chỉ định ranh giới tối đa (cố định) của vòng tròn. Bên trong đó sẽ là div vẽ vòng tròn với chiều rộng và chiều cao của nó được đặt thành 100% để thay đổi kích thước của cha mẹ sẽ thay đổi kích thước của vòng tròn thực tế. Bên trong đó sẽ là một div hình chữ nhật khác, sử dụng% 's, sẽ tạo ra một vùng ranh giới văn bản ngăn bất kỳ văn bản nào rời khỏi vòng tròn (đối với hầu hết các phần) Sau đó, cuối cùng là div thực tế cho văn bản và căn giữa.
Nó có ý nghĩa hơn như mã:
/* 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>
Bạn có thể bỏ ghi chú các màu đường viền trên div container để xem nó ràng buộc như thế nào.
Những điều cần chú ý: Bạn vẫn có thể phá vỡ giới hạn của vòng tròn nếu bạn đặt quá nhiều văn bản vào hoặc sử dụng các từ / văn bản không bị ngắt quá dài. Nó vẫn không phù hợp với văn bản hoàn toàn không xác định (chẳng hạn như đầu vào của người dùng) nhưng hoạt động tốt nhất khi bạn biết mơ hồ lượng văn bản lớn nhất bạn cần lưu trữ là gì và đặt kích thước vòng tròn và kích thước phông chữ phù hợp. Tất nhiên, bạn có thể đặt div bộ chứa văn bản để ẩn bất kỳ lỗi tràn nào, nhưng điều đó có thể trông "bị hỏng" và không thể thay thế cho việc thực sự chiếm kích thước tối đa đúng trong thiết kế của bạn.
Hy vọng điều này hữu ích cho ai đó! HTML / CSS không phải là môn học chính của tôi nên tôi chắc chắn nó có thể được cải thiện!