2017-02-22 52 views
0

有沒有什麼辦法可以在相同位置上的圓形圖像上放置一個小點圓點?這些圖像是由我的網站用戶選擇的,因此它們沒有固定的大小。我想在下面的這張照片中放置該點。將圓點圖像上的點元素放在相同的位置

image

編輯:對不起,不提供代碼。同時,我發現了一個解決方案,通過CSS來定位img寬度。這裏是我的工作示例代碼:

<div class="img-box"> 
    <a class="avatar-link" href="#"> 
     <img width="100" height="100" alt="avatar" src="http://image.prntscr.com/image/28ad5c0c6da14d4abcaba545fd115289.png" class="user-avatar"> 
     <div class="user-status"></div> 
    </a> 
</div> 

<div class="img-box"> 
    <a class="avatar-link" href="#"> 
     <img width="140" height="140" alt="avatar" src="http://image.prntscr.com/image/e1c7dec3eced491b8a16ac8d1103b5ea.png" class="user-avatar"> 
     <div class="user-status"></div> 
    </a> 
</div> 

CSS代碼:

.img-box{  
    margin: 40px; 
} 

a.avatar-link{ 
    position: relative; 
    display: inline-block; 
} 

.img-box img.user-avatar{ 
    border-radius: 50%; 
    display: block; 
} 

.user-status { 
    border-radius: 50%; 
    height: 10px; 
    position: absolute; 
    right: 10px; 
    bottom: 10px; 
    width: 10px; 
    background-color: #ED0000; 
} 

.img-box img.user-avatar[width="140"] + .user-status{ 
    right: 16px; 
    bottom: 15px; 
} 

Working example

+0

既然你沒有提供任何代碼或顯示你已經嘗試了什麼,這的確是一個數學問題。我建議你看看'Clock Face Math',而教程的人很簡單。點可以通過CSS或JavaScript放置。 –

+0

你只需要點的CSS?所有情況下都會出現這些小點。請清楚並具體說明您要問什麼。提供一個工作示例或一些工作參考。這裏是一個鏈接,你可以參考如何問問題http://stackoverflow.com/help/how-to-ask –

+0

對不起,沒有提供足夠的信息。同時我已經找到了解決方案的CSS。 – Jacksonfive

回答

0

您需要設置bottomright位置的百分比,然後用transform調整根據位置紅圈的寬度/高度。

我創建了一個名爲corner finder的元素來計算百分比值(試驗和錯誤,我不知道數學是什麼)。這可以從您的真實代碼中刪除,但有助於演示過程。隨着圓圈變得非常大,它變得非常輕微,但它很接近。

.img-box { 
 
    margin: 40px; 
 
} 
 

 
.avatar-link { 
 
    display: inline-block; 
 
    position: relative; 
 
} 
 

 
.avatar-link::after { 
 
    content: ''; 
 
    display: block; 
 
    position: absolute; 
 
    bottom: 14.8%; 
 
    right: 14.8%; 
 
    width: 10px; 
 
    height: 10px; 
 
    background-color: red; 
 
    transform: translate(5px, 5px); /* half width and height */ 
 
    border-radius: 50%; 
 
} 
 

 
.avatar-link img { 
 
    border-radius: 50%; 
 
    vertical-align: top; 
 
} 
 

 
/* Can be removed, just for demonstration */ 
 
.corner-finder { 
 
    position: absolute; 
 
    top: 14.8%; 
 
    bottom: 14.8%; 
 
    right: 14.8%; 
 
    left: 14.8%; 
 
    background-color: rgba(0,0,0,0.3); 
 
    z-index: 1; 
 
}
<div class="img-box"> 
 
    <a class="avatar-link" href="#"> 
 
    <div class="corner-finder"></div> 
 
    <img src="http://placehold.it/100x100" alt=""> 
 
    </a> 
 
</div> 
 

 
<div class="img-box"> 
 
    <a class="avatar-link" href="#"> 
 
    <div class="corner-finder"></div> 
 
    <img src="http://placehold.it/200x200" alt=""> 
 
    </a> 
 
</div> 
 

 
<div class="img-box"> 
 
    <a class="avatar-link" href="#"> 
 
    <div class="corner-finder"></div> 
 
    <img src="http://placehold.it/300x300" alt=""> 
 
    </a> 
 
</div> 
 

 
<div class="img-box"> 
 
    <a class="avatar-link" href="#"> 
 
    <div class="corner-finder"></div> 
 
    <img src="http://placehold.it/400x400" alt=""> 
 
    </a> 
 
</div>

+0

很好的例子,但如果我想要點右上角的點呢?我嘗試了頂部:14.8%;代替.avatar-link :: after的底部,但它不會給我相同的位置。任何想法爲什麼? – Jacksonfive

+0

因爲你需要調整'transform'。對於右上角,您需要將圖像恢復一半寬度,而不是將其壓低。因此,以及使用'top:14.8%',你可以改成'transform:translate(5px,-5px)'。這是指'translateX'和'translateY'。 https://jsfiddle.net/davidpauljunior/kc7q10h4/4/ – davidpauljunior

+0

完美。謝謝 ! – Jacksonfive

1

任何視覺元素不應該是在文檔中。

使用CSS僞元素可以達到這種視覺效果。

HTML

<div class=circle></div> 

SCSS

.circle { 
    border: 1px solid black; 
    width: 160px; 
    height: 160px; 
    border-radius: 50%; 
    padding: 50px; 
    margin: 50px; 
    position: relative; 
    &::after { 
    display: block; 
    content: " "; 
    width: 20px; 
    height: 20px; 
    border-radius: 50%; 
    border: 1px solid black; 
    position: absolute; 
    right: 50px; 
    bottom: 10px; 
    } 
} 

編譯CSS

.circle { 
    border: 1px solid black; 
    width: 160px; 
    height: 160px; 
    border-radius: 50%; 
    padding: 50px; 
    margin: 50px; 
    position: relative; 
} 
.circle::after { 
    display: block; 
    content: " "; 
    width: 20px; 
    height: 20px; 
    border-radius: 50%; 
    border: 1px solid black; 
    position: absolute; 
    right: 50px; 
    bottom: 10px; 
} 

如果你需要什麼動態地設置試圖改變使用JavaScirpt的CSS屬性值。

CodePen樣本(這只是一個樣本,但你的想法),https://codepen.io/li-xinyang/pen/qrWZgY

enter image description here

+0

我想你的例子需要預處理器。 –

+0

已編譯的CSS已添加。感謝您的提醒。 –

+1

是的,那樣更好。 –

相關問題