สำหรับการออกแบบเว็บฉันเพิ่งได้รับเมื่อเร็ว ๆ นี้ฉันต้องแก้ปัญหาข้อความที่เป็นศูนย์กลางและไม่ทราบจำนวนหนึ่งในวงกลมถาวรและฉันคิดว่าฉันจะแบ่งปันวิธีแก้ปัญหาที่นี่สำหรับคนอื่นที่มองหาคอมโบวงกลม / ข้อความ
ปัญหาหลักที่ฉันมีคือข้อความมักจะทำให้ขอบเขตของวงกลมแตกหัก เพื่อแก้ปัญหานี้ฉันลงเอยด้วยการใช้ 4 divs หนึ่งคอนเทนเนอร์สี่เหลี่ยมที่ระบุขอบเขตสูงสุด (คงที่) ของวงกลม ข้างในนั้นจะเป็น div ที่วาดวงกลมโดยตั้งค่าความกว้างและความสูงเป็น 100% ดังนั้นการเปลี่ยนขนาดของพาเรนต์จะเปลี่ยนขนาดของวงกลมที่แท้จริง ข้างในนั้นจะเป็นอีกกองสี่เหลี่ยมที่ใช้% ของจะสร้างขอบเขตของข้อความเพื่อป้องกันไม่ให้ข้อความใด ๆ ออกจากวงกลม (ส่วนใหญ่) จากนั้นในที่สุด div ที่แท้จริงสำหรับข้อความ
มันสมเหตุสมผลมากกว่าเป็นรหัส:
/* 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 ไม่ใช่วินัยหลักของฉันดังนั้นฉันแน่ใจว่ามันสามารถปรับปรุงได้!