Щодо веб-дизайну, який мені нещодавно дали, я повинен був вирішити зосереджену та невідому кількість тексту у фіксованому колі, і я подумав, що поділюсь цим рішенням для інших людей, які шукають комбінації кола / тексту.
Основна проблема, яку я мав, - текст, часто порушує межі кола. Для вирішення цього питання я використав 4 діви. Один прямокутний контейнер, який задав максимальні (нерухомі) межі кола. Всередині цього буде діва, яка малює коло з його шириною та висотою, встановленою на 100%, тому зміна розміру батьківського змінює розмір фактичного кола. Всередині цього буде ще один прямокутний роздільник, який, використовуючи% s, створив би межу області тексту, що запобігає виходу тексту з кола (здебільшого). Потім, нарешті, власне діл для тексту та вертикального центрування.
Це має більше сенсу як код:
/* 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>
Ви можете коментувати кольори кордону на контейнерах, щоб побачити, як він обмежений.
Необхідно пам’ятати: Ви все одно можете порушити межі кола, якщо вкладете занадто багато тексту або використовуєте занадто довгі слова / нерозривний текст. Це все ще не дуже підходить для абсолютно невідомого тексту (наприклад, введення користувача), але найкраще працює, коли ви точно знаєте, яка найбільша кількість тексту вам потрібно буде зберігати, і встановити розмір кола та розміри шрифту відповідно. Ви можете встановити текстовий контейнер div, щоб приховати будь-який перелив, звичайно, але це може просто виглядати "зламаним" і не є заміною для фактичного обліку максимального розміру у вашому дизайні.
Сподіваюся, це комусь корисно! HTML / CSS - це не моя основна дисципліна, тому я впевнений, що її можна вдосконалити!