2016-09-14 97 views
2

我想在圓角div(帶邊框半徑)內垂直和水平對齊文本。我試着標籤,如position:absoluterelative在邊框div內對齊文本

我嘗試添加這樣的:在我的CSS

text-align: center; 
display: inline-block; 
overflow: hidden; 

,但我沒有成功。

下面是片段。我想知道如果不添加其他div,最佳解決方案是什麼。提前致謝。

.card-container2 { 
 
    cursor: pointer; 
 
    height: auto; 
 
    perspective: 600; 
 
    position: relative; 
 
    width: auto; 
 
margin:auto; 
 
align-contents:center; 
 
    } 
 

 
.card-container { 
 

 
cursor: pointer; 
 
    height: 350px; 
 
    perspective: 600; 
 
    position: relative; 
 
    width: 350px; 
 
    border-radius: 50%; 
 
display:block; 
 
margin-left:auto; 
 
margin-right:auto; 
 

 
} 
 
.card { 
 
    height: 100%; 
 
    position: absolute; 
 
    transition: all 1s ease-in-out; 
 
transform-style: preserve-3d; 
 
    width: 100%; 
 
    border-radius: 50%; 
 

 
-moz-animation-name: dropCard; 
 
    -moz-animation-iteration-count: 1; 
 
    -moz-animation-timing-function: ease-in; 
 
    -moz-animation-duration: 0.3s; 
 

 
    -webkit-animation-name: dropCard; 
 
    -webkit-animation-iteration-count: 1; 
 
    -webkit-animation-timing-function: ease-in; 
 
    -webkit-animation-duration:0.3s; 
 

 
    animation-name: dropCard; 
 
    animation-iteration-count: 1; 
 
    animation-timing-function: ease-in; 
 
    animation-duration: 0.3s; 
 

 
} 
 
.card:hover { 
 
    transform: rotateY(180deg); 
 
} 
 
.card .side { 
 
    backface-visibility: hidden; 
 
    border-radius: 6px; 
 
    height: 100%; 
 
    position: absolute; 
 
    overflow: hidden; 
 
    width: 100%; 
 
    background:#000; 
 
    border-radius: 50%; 
 
} 
 

 
.card .back { 
 
    background: #F1F1F1; 
 
    color: #000; 
 
    line-height: 24px; 
 
font-weight: bold; 
 
    text-align: center; 
 
    border-radius: 50%; 
 
    transform: rotateY(180deg); 
 
} 
 

 

 
@-moz-keyframes dropCard { 
 
    0% { 
 
     -moz-transform: translateY(-100px); 
 
    } 
 

 
    100% { 
 
     -moz-transform: translateY(0); 
 
    } 
 
} 
 
@-webkit-keyframes dropCard { 
 
    0% { 
 
     -webkit-transform: translateY(-100px); 
 
    } 
 
    100% { 
 
     -webkit-transform: translateY(0); 
 
    } 
 
} 
 

 
@keyframes dropCard { 
 
    0% { 
 
     transform: translateY(-100px); 
 
    } 
 
    100% { 
 
     transform: translateY(0); 
 
    } 
 
} 
 

 
IMG.displayed { 
 
    display: block; 
 
    margin-left: auto; 
 
    margin-right: auto }
<p style="text-align: center;">&nbsp;</p> 
 
<div class="card-container2"> 
 
<div class="card-container"> 
 
<div class="card"> 
 
<div class="side" style="text-align: center;"><img class="displayed" src="IMAGE" alt="" width="350" height="350" /></div> 
 
<div class="side back"> 
 
<p><span style="font-size: 14pt; font-family: arial, helvetica, sans-serif; color: #000;">Campaign Name: 11111111&nbsp;</span></p> 
 
<p><span style="color: #000; font-size: 14pt;"><span style="font-family: arial, helvetica, sans-serif;">Campaign Dates:&nbsp;</span><span style="font-family: arial, helvetica, sans-serif;">333333333333333 -&nbsp;22222222222&nbsp;</span></span></p> 
 
<p><span style="color: #000; font-size: 14pt;">&nbsp;</span></p> 
 
<p><span style="color: #000; font-size: 14pt;">Length of campaign:4444444444444&nbsp;</span></p> 
 
<p><span style="color: #000; font-size: 14pt;">Days left of campaign:&nbsp;55555555555555555}&nbsp;</span></p> 
 
</div> 
 
</div> 
 
</div> 
 
</div>

+1

如果文本不適合圓圈怎麼辦?如果溢出? – DaniP

+4

@Paulie_D他的問題是** PRETTY CLEAR **瞭解。他希望圓圈內的文字適合圓圈邊框。 – Mistalis

+2

@Paulie_D我猜這裏的收視率存在競爭問題。這很清楚我想要什麼。要在CIRCLED div中對齊的文本(舍入)。下一次,我會花幾天的時間找到一個解決方案,並要求給出一個明確的答案。謝謝。 –

回答

1

是您的計劃是內backside rounded div .back .side對齊文本正確的中心,然後取出保證金從<p> tag並添加padding-top.back

.card .back { 
    background: #F1F1F1; 
    color: #000; 
    line-height: 24px; 
font-weight: bold; 
    text-align: center; 
    border-radius: 50%; 
    transform: rotateY(180deg); 
    padding-top:75px; 
    box-sizing:border-box; 
} 
p{ 
    margin:5px 0px; 
    text-align:center; 
} 

.card-container2 { 
 
    cursor: pointer; 
 
    height: auto; 
 
    perspective: 600; 
 
    position: relative; 
 
    width: auto; 
 
margin:auto; 
 
align-contents:center; 
 
    } 
 

 
.card-container { 
 

 
cursor: pointer; 
 
    height: 350px; 
 
    perspective: 600; 
 
    position: relative; 
 
    width: 350px; 
 
    border-radius: 50%; 
 
display:block; 
 
margin-left:auto; 
 
margin-right:auto; 
 

 
} 
 
.card { 
 
    height: 100%; 
 
    position: absolute; 
 
    transition: all 1s ease-in-out; 
 
transform-style: preserve-3d; 
 
    width: 100%; 
 
    border-radius: 50%; 
 

 
-moz-animation-name: dropCard; 
 
    -moz-animation-iteration-count: 1; 
 
    -moz-animation-timing-function: ease-in; 
 
    -moz-animation-duration: 0.3s; 
 

 
    -webkit-animation-name: dropCard; 
 
    -webkit-animation-iteration-count: 1; 
 
    -webkit-animation-timing-function: ease-in; 
 
    -webkit-animation-duration:0.3s; 
 

 
    animation-name: dropCard; 
 
    animation-iteration-count: 1; 
 
    animation-timing-function: ease-in; 
 
    animation-duration: 0.3s; 
 

 
} 
 
.card:hover { 
 
    transform: rotateY(180deg); 
 
} 
 
.card .side { 
 
    backface-visibility: hidden; 
 
    border-radius: 6px; 
 
    height: 100%; 
 
    position: absolute; 
 
    overflow: hidden; 
 
    width: 100%; 
 
    background:#000; 
 
    border-radius: 50%; 
 
} 
 

 
.card .back { 
 
    background: #F1F1F1; 
 
    color: #000; 
 
    line-height: 24px; 
 
font-weight: bold; 
 
    text-align: center; 
 
    border-radius: 50%; 
 
    transform: rotateY(180deg); 
 
    padding-top:75px; 
 
    box-sizing:border-box; 
 
} 
 
p{ 
 
    margin:5px 0px; 
 
    text-align:center; 
 
} 
 

 

 
@-moz-keyframes dropCard { 
 
    0% { 
 
     -moz-transform: translateY(-100px); 
 
    } 
 

 
    100% { 
 
     -moz-transform: translateY(0); 
 
    } 
 
} 
 
@-webkit-keyframes dropCard { 
 
    0% { 
 
     -webkit-transform: translateY(-100px); 
 
    } 
 
    100% { 
 
     -webkit-transform: translateY(0); 
 
    } 
 
} 
 

 
@keyframes dropCard { 
 
    0% { 
 
     transform: translateY(-100px); 
 
    } 
 
    100% { 
 
     transform: translateY(0); 
 
    } 
 
} 
 

 
IMG.displayed { 
 
    display: block; 
 
    margin-left: auto; 
 
    margin-right: auto }
<p style="text-align: center;">&nbsp;</p> 
 
<div class="card-container2"> 
 
<div class="card-container"> 
 
<div class="card"> 
 
<div class="side" style="text-align: center;"><img class="displayed" src="IMAGE" alt="" width="350" height="350" /></div> 
 
<div class="side back"> 
 
<p><span style="font-size: 14pt; font-family: arial, helvetica, sans-serif; color: #000;">Campaign Name: 11111111&nbsp;</span></p> 
 
<p><span style="color: #000; font-size: 14pt;"><span style="font-family: arial, helvetica, sans-serif;">Campaign Dates:&nbsp;</span><span style="font-family: arial, helvetica, sans-serif;">333333333333333 -&nbsp;22222222222&nbsp;</span></span></p> 
 
<p><span style="color: #000; font-size: 14pt;">&nbsp;</span></p> 
 
<p><span style="color: #000; font-size: 14pt;">Length of campaign:4444444444444&nbsp;</span></p> 
 
<p><span style="color: #000; font-size: 14pt;">Days left of campaign:&nbsp;55555555555555555}&nbsp;</span></p> 
 
</div> 
 
</div> 
 
</div> 
 
</div>

0

簡單的padding 10%增加至.card .back

.card-container2 { 
 
    cursor: pointer; 
 
    height: auto; 
 
    perspective: 600; 
 
    position: relative; 
 
    width: auto; 
 
margin:auto; 
 
align-contents:center; 
 
    } 
 

 
.card-container { 
 

 
cursor: pointer; 
 
    height: 350px; 
 
    perspective: 600; 
 
    position: relative; 
 
    width: 350px; 
 
    border-radius: 50%; 
 
display:block; 
 
margin-left:auto; 
 
margin-right:auto; 
 

 
} 
 
.card { 
 
    height: 100%; 
 
    position: absolute; 
 
    transition: all 1s ease-in-out; 
 
transform-style: preserve-3d; 
 
    width: 100%; 
 
    border-radius: 50%; 
 

 
-moz-animation-name: dropCard; 
 
    -moz-animation-iteration-count: 1; 
 
    -moz-animation-timing-function: ease-in; 
 
    -moz-animation-duration: 0.3s; 
 

 
    -webkit-animation-name: dropCard; 
 
    -webkit-animation-iteration-count: 1; 
 
    -webkit-animation-timing-function: ease-in; 
 
    -webkit-animation-duration:0.3s; 
 

 
    animation-name: dropCard; 
 
    animation-iteration-count: 1; 
 
    animation-timing-function: ease-in; 
 
    animation-duration: 0.3s; 
 

 
} 
 
.card:hover { 
 
    transform: rotateY(180deg); 
 
} 
 
.card .side { 
 
    backface-visibility: hidden; 
 
    border-radius: 6px; 
 
    height: 100%; 
 
    position: absolute; 
 
    overflow: hidden; 
 
    width: 100%; 
 
    background:#000; 
 
    border-radius: 50%; 
 
} 
 

 
.card .back { 
 
    background: #F1F1F1; 
 
    color: #000; 
 
    padding:10%; 
 
    line-height: 24px; 
 
font-weight: bold; 
 
    text-align: center; 
 
    border-radius: 50%; 
 
    transform: rotateY(180deg); 
 
} 
 

 

 
@-moz-keyframes dropCard { 
 
    0% { 
 
     -moz-transform: translateY(-100px); 
 
    } 
 

 
    100% { 
 
     -moz-transform: translateY(0); 
 
    } 
 
} 
 
@-webkit-keyframes dropCard { 
 
    0% { 
 
     -webkit-transform: translateY(-100px); 
 
    } 
 
    100% { 
 
     -webkit-transform: translateY(0); 
 
    } 
 
} 
 

 
@keyframes dropCard { 
 
    0% { 
 
     transform: translateY(-100px); 
 
    } 
 
    100% { 
 
     transform: translateY(0); 
 
    } 
 
} 
 

 
IMG.displayed { 
 
    display: block; 
 
    margin-left: auto; 
 
    margin-right: auto }
<p style="text-align: center;">&nbsp;</p> 
 
<div class="card-container2"> 
 
<div class="card-container"> 
 
<div class="card"> 
 
<div class="side" style="text-align: center;"><img class="displayed" src="IMAGE" alt="" width="350" height="350" /></div> 
 
<div class="side back"> 
 
<p><span style="font-size: 14pt; font-family: arial, helvetica, sans-serif; color: #000;">Campaign Name: 11111111&nbsp;</span></p> 
 
<p><span style="color: #000; font-size: 14pt;"><span style="font-family: arial, helvetica, sans-serif;">Campaign Dates:&nbsp;</span><span style="font-family: arial, helvetica, sans-serif;">333333333333333 -&nbsp;22222222222&nbsp;</span></span></p> 
 
<p><span style="color: #000; font-size: 14pt;">&nbsp;</span></p> 
 
<p><span style="color: #000; font-size: 14pt;">Length of campaign:4444444444444&nbsp;</span></p> 
 
<p><span style="color: #000; font-size: 14pt;">Days left of campaign:&nbsp;55555555555555555}&nbsp;</span></p> 
 
</div> 
 
</div> 
 
</div> 
 
</div>

0

只是你.card .back行之後給你的CSS添加..

.back>p:first-child { 
    padding-top: 40px; 
} 



編輯:
一因此,您可以減少.card .back的行高以防止溢出。我把它縮小到了20px。似乎更適合,但這是一個優先事項..

0

由於要求是中提到的,要將內容垂直和水平居中放置在圓圈中,我們可以使用flexbox。

像這樣:

* { 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
.card-container2 { 
 
    cursor: pointer; 
 
    height: auto; 
 
    perspective: 600; 
 
    position: relative; 
 
    width: auto; 
 
    margin: auto; 
 
    text-align: center; 
 
} 
 
.card-container { 
 
    cursor: pointer; 
 
    height: 350px; 
 
    perspective: 600; 
 
    position: relative; 
 
    width: 350px; 
 
    border-radius: 50%; 
 
    display: block; 
 
    margin-left: auto; 
 
    margin-right: auto; 
 
} 
 
.card { 
 
    height: 100%; 
 
    position: absolute; 
 
    transition: all 1s ease-in-out; 
 
    transform-style: preserve-3d; 
 
    width: 100%; 
 
    border-radius: 50%; 
 
} 
 
.card .side { 
 
    backface-visibility: hidden; 
 
    border-radius: 6px; 
 
    height: 100%; 
 
    position: absolute; 
 
    overflow: hidden; 
 
    width: 100%; 
 
    background: #000; 
 
    border-radius: 50%; 
 
    display: flex; 
 
    flex-direction: column; 
 
    justify-content: center; 
 
    text-align:center; 
 
} 
 
.card .back { 
 
    background: #F1F1F1; 
 
    color: #000; 
 
    line-height: 24px; 
 
    font-weight: bold; 
 
    text-align: center; 
 
    border-radius: 50%; 
 
}
<div class="card-container2"> 
 
    <div class="card-container"> 
 
    <div class="card"> 
 
     <div class="side" style="text-align: center;"> 
 
     <img class="displayed" src="IMAGE" alt="" width="350" height="350" /> 
 
     </div> 
 
     <div class="side back"> 
 
     <p><span style="font-size: 14pt; font-family: arial, helvetica, sans-serif; color: #000;">Campaign Name: 11111111&nbsp;</span> 
 
     </p> 
 
     <p><span style="color: #000; font-size: 14pt;"><span style="font-family: arial, helvetica, sans-serif;">Campaign Dates:&nbsp;</span><span style="font-family: arial, helvetica, sans-serif;">333333333333333 -&nbsp;22222222222&nbsp;</span></span> 
 
     </p> 
 
     <p><span style="color: #000; font-size: 14pt;">&nbsp;</span> 
 
     </p> 
 
     <p><span style="color: #000; font-size: 14pt;">Length of campaign:4444444444444&nbsp;</span> 
 
     </p> 
 
     <p><span style="color: #000; font-size: 14pt;">Days left of campaign:&nbsp;55555555555555555&nbsp;</span> 
 
     </p> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

注意,這不涉及任何溢出問題,你可以看到。

+0

你會添加什麼來避免溢出? –

+0

我會分成兩個..一個文本和一個數字。 –

+0

是否做到了。但如果111111很長。我需要停下來。 font-size(vw)在這裏並不總是有幫助。 –