답변:
다음 은 JSFiddle 및 스 니펫 에 대한 데모입니다 .
.numberCircle {
border-radius: 50%;
width: 36px;
height: 36px;
padding: 8px;
background: #fff;
border: 2px solid #666;
color: #666;
text-align: center;
font: 32px Arial, sans-serif;
}
<div class="numberCircle">30</div>
내 대답은 좋은 출발점이며 다른 대답 중 일부는 상황에 따라 유연성을 제공합니다. IE8에 관심이 있다면 이전 버전 의 대답을보십시오.
여기에있는 다른 답변의 대부분의 문제는 표시 할 글꼴 크기와 문자 수에 따라 완벽한 크기가되도록 외부 컨테이너의 크기를 조정해야한다는 것입니다. 1 자리 숫자와 4 자리 숫자를 혼합하면 작동하지 않습니다. 글꼴 크기와 원 크기의 비율이 완벽하지 않으면 큰 원의 상단에 타원이나 작은 숫자가 세로로 정렬됩니다. 이것은 많은 양의 텍스트와 크기 원에 잘 작동합니다. width
and line-height
를 같은 값으로 설정하십시오 .
.numberCircle {
width: 120px;
line-height: 120px;
border-radius: 50%;
text-align: center;
font-size: 32px;
border: 2px solid #666;
}
<div class="numberCircle">1</div>
<div class="numberCircle">100</div>
<div class="numberCircle">10000</div>
<div class="numberCircle">1000000</div>
내용을 더 길거나 짧게 만들어야하는 경우 더 잘 맞도록 컨테이너 너비를 조정하면됩니다.
text-align
및 line-height
사업부에. 아마도 가장 좋은 대답 일 것입니다.
내용에 따라 달라지는 원 크기의 경우 다음과 같이 작동합니다.
<span class="numberCircle"><span>30</span></span>
<span class="numberCircle"><span>1</span></span>
<span class="numberCircle"><span>5435</span></span>
<span class="numberCircle"><span>2</span></span>
<span class="numberCircle"><span>100</span></span>
.numberCircle {
display:inline-block;
line-height:0px;
border-radius:50%;
border:2px solid;
font-size:32px;
}
.numberCircle span {
display:inline-block;
padding-top:50%;
padding-bottom:50%;
margin-left:8px;
margin-right:8px;
}
그것은 너비를 더하기 위해 내용의 너비와의 너비에 의존하고 margin-
의를 사용하여 일치하도록 높이를 확장합니다 padding-
. 의 margin-
글꼴 크기에 따라를 조정해야합니다.
내부 요소를 제거하도록 업데이트하십시오.
<span class="numberCircle">30</span>
<span class="numberCircle">1</span>
<span class="numberCircle">5435</span>
<span class="numberCircle">2</span>
<span class="numberCircle">100</span>
<style type="text/css">
.numberCircle {
display:inline-block;
border-radius:50%;
border:2px solid;
font-size:32px;
}
.numberCircle:before,
.numberCircle:after {
content:'\200B';
display:inline-block;
line-height:0px;
padding-top:50%;
padding-bottom:50%;
}
.numberCircle:before {
padding-left:8px;
}
.numberCircle:after {
padding-right:8px;
}
</style>
의사 요소를 사용하여 높이를 강제합니다. 수직 정렬을 위해 폭이 0 인 공간이 필요합니다. line-height:0px
IE8에 대해 저하 될 때 적어도 보이도록 바깥 쪽에서 의사 로 옮겼습니다 .
가장 쉬운 방법은 부트 스트랩과 배지 클래스를 사용하는 것입니다.
<span class="badge">1</span>
이 버전은 하드 코드, 고정 된 값에 의존하지만, 상대적 크기를하지 않는다 font-size
의 div
.
CSS :
.numberCircle {
font: 32px Arial, sans-serif;
width: 2em;
height: 2em;
box-sizing: initial;
background: #fff;
border: 0.1em solid #666;
color: #666;
text-align: center;
border-radius: 50%;
line-height: 2em;
box-sizing: content-box;
}
HTML :
<div class="numberCircle">30</div>
<div class="numberCircle" style="font-size: 60px">1</div>
<div class="numberCircle" style="font-size: 12px">2</div>
테두리 반경을 사용할 수 있습니다.
<html>
<head>
<style type="text/css">
.round
{
-moz-border-radius: 15px;
border-radius: 15px;
padding: 5px;
border: 1px solid #000;
}
</style>
</head>
<body>
<span class="round">30</span>
</body>
</html>
결과에 만족할 때까지 테두리 반경과 패딩 값으로 재생하십시오.
그러나 이것은 모든 브라우저에서 작동하지는 않습니다. IE가 여전히 둥근 모서리를 지원하지 않는 것 같습니다.
내 솔루션은 여기-다양한 크기와 색상 및 편집 제어를 위해 CMS에 쉽게 연결할 수 있습니다. IE가 사각형으로 분해됩니다.
HTML :
<div class="circular-label label-outer label-size-large label-color-pink">
<div class="label-inner">
<span>Fashion & Beauty</span>
</div>
</div>
CSS :
.circular-label {
overflow: hidden;
z-index: 100;
vertical-align: middle;
font-size: 11px;
-webkit-box-shadow:0 3px 3px rgba(0, 0, 0, 0.2);
-moz-box-shadow:0 3px 3px rgba(0, 0, 0, 0.2);
box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.2);
}
.label-inner {
width: 85%;
height: 85%;
-moz-border-radius: 50%;
-webkit-border-radius: 50%;
border-radius: 50%;
border: 2px dotted white;
vertical-align: middle;
margin: auto;
top: 5%;
position: relative;
overflow: hidden;
}
.label-inner > span {
display: table;
text-align: center;
vertical-align: middle;
font-weight: bold;
text-transform: uppercase;
width: 100%;
position: absolute;
margin: auto;
margin-top: 38%;
font-family:'ProximaNovaLtSemibold';
font-size: 13px;
line-height: 1.0em;
}
.circular-label.label-size-large {
width: 110px;
height: 110px;
-moz-border-radius: 55px;
-webkit-border-radius: 55px;
border-radius: 55px;
margin-top:-55px;
}
.circular-label.label-size-med {
width: 76px;
height: 76px;
-moz-border-radius: 38px;
-webkit-border-radius: 38px;
border-radius: 38px;
margin-top:-38px;
}
.circular-label.label-size-med .label-inner > span {
margin-top: 33%;
}
.circular-label.label-size-small {
width: 66px;
height: 66px;
-moz-border-radius: 33px;
-webkit-border-radius: 33px;
border-radius: 33px;
margin-top:-33px;
}
이 작업을 수행하는 방법을보기가 어렵지 않습니다. 더 큰 문제는 원의 크기를 내용에 맞게 조정할 수 있는지 여부입니다.
현재는 가능하지 않다고 생각합니다. 누군가?
파티에 늦었지만 여기에 부트 스트랩 전용 솔루션이 있습니다. 부트 스트랩 4를 사용하고 있습니다 :
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<body>
<div class="row mt-4">
<div class="col-md-12">
<span class="bg-dark text-white rounded-circle px-3 py-1 mx-2 h3">1</span>
<span class="bg-dark text-white rounded-circle px-3 py-1 mx-2 h3">2</span>
<span class="bg-dark text-white rounded-circle px-3 py-1 mx-2 h3">3</span>
</div>
</div>
</body>
기본적으로 bg-dark text-white rounded-circle px-3 py-1 mx-2 h3
수업을 추가 합니다<span>
(또는 무엇이든) 요소 하면 완료됩니다.
콘텐츠에 두 자리 이상이있는 경우 여백 및 패딩 클래스를 조정해야 할 수도 있습니다.
표준 블록과 같은 방식으로 작동합니다.
.circle {
width: 10em; height: 10em;
-webkit-border-radius: 5em; -moz-border-radius: 5em;
}
이것은 CSS 3의 기능이며 잘 지원되지 않습니다. 파이어 폭스와 사파리를 확실히 믿을 수 있습니다.
<div class="circle"><span>1234</span></div>
HTML 예
<h3><span class="numberCircle">1</span> Regiones del Interior</h3>
암호
.numberCircle {
border-radius:50%;
width:40px;
height:40px;
display:block;
float:left;
border:2px solid #000000;
color:#000000;
text-align:center;
margin-right:5px;
}
파티에 늦었지만 여기에 내가 가진 해결책이 있습니다. https://codepen.io/jnbruno/pen/vNpPpW 있습니다.
CSS :
.btn-circle.btn-xl {
width: 70px;
height: 70px;
padding: 10px 16px;
border-radius: 35px;
font-size: 24px;
line-height: 1.33;
}
.btn-circle {
width: 30px;
height: 30px;
padding: 6px 0px;
border-radius: 15px;
text-align: center;
font-size: 12px;
line-height: 1.42857;
}
html :
<div class="panel-body">
<h4>Normal Circle Buttons</h4>
<button type="button" class="btn btn-default btn-circle"><i class="fa fa-check"></i>
</button>
<button type="button" class="btn btn-primary btn-circle"><i class="fa fa-list"></i>
</button>
</div>
추가 작업이 필요하지 않았습니다. 감사합니다 John Noel Bruno
내가 여기에서 한 것과 같은 것이 작동 할 수 있습니다 (0에서 99까지).
CSS :
.circle {
border: 0.1em solid grey;
border-radius: 100%;
height: 2em;
width: 2em;
text-align: center;
}
.circle p {
margin-top: 0.10em;
font-size: 1.5em;
font-weight: bold;
font-family: sans-serif;
color: grey;
}
HTML :
<body>
<div class="circle"><p>30</p></div>
</body>
여기 제곱 방법을 사용하여 내 방식을 수행합니다. 거꾸로 다른 값으로 작동하지만 두 범위가 필요합니다.
.circle {
display: inline-block;
border: 1px solid black;
border-radius: 50%;
position: relative;
padding: 5px;
}
.circle::after {
content: '';
display: block;
padding-bottom: 100%;
height: 0;
opacity: 0;
}
.num {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
.width_holder {
display: block;
height: 0;
overflow: hidden;
}
<div class="circle">
<span class="width_holder">1</span>
<span class="num">1</span>
</div>
<div class="circle">
<span class="width_holder">11</span>
<span class="num">11</span>
</div>
<div class="circle">
<span class="width_holder">11111</span>
<span class="num">11111</span>
</div>
<div class="circle">
<span class="width_holder">11111111</span>
<span class="num">11111111</span>
</div>
thirtydot의 대답은 옳지 만 약간의 요점이 없습니다. 원에 중심 값을 설정하고 다른 숫자 범위를 포함하려면 position : relative 을 추가해야합니다 . 예를 들어 123;
HTML :
<div class="numberCircle">30</div>
CSS :
.numberCircle {
border-radius: 50%;
behavior: url(PIE.htc); /* remove if you don't care about IE8 */
width: 36px;
height: 36px;
padding: 8px;
position: relative;
background: #fff;
border: 2px solid #666;
color: #666;
text-align: center;
font: 32px Arial, sans-serif;
}
가장 쉬운 해결책은 부트 스트랩을 사용하는 것입니다.
<span class="badge" style ="float:right">123</span>