Tôi đang gặp sự cố lạ này với các biểu tượng phông chữ tuyệt vời của mình. Tôi muốn các biểu tượng của tôi có viền tròn. Tôi không muốn sử dụng border: 1px solid
vì đường viền biểu tượng sẽ bị mờ. Tôi đã đạt được đường viền trơn tru này bằng "stacking method
" của phông chữ tuyệt vời như được mô tả hereVấn đề xếp chồng Phông chữ tuyệt vời trong safari
Vì phông chữ của tôi lớn 64px, biên giới biểu tượng này quá dày. Để tránh điều đó, tôi đã sử dụng box-shadow
.
Vấn đề của tôi là đường viền biểu tượng của tôi không đồng nhất.
Trong chrome, biên giới là một chút dày ở phía bên trái. (Bằng cách nào đó tôi không thể tái tạo vấn đề này trong fiddle/đoạn như vậy mà có thể được bỏ qua.)
nhưng trong safari , đường viền dày ở bên phải.
Làm thế nào để thoát khỏi vấn đề này? Tôi không muốn sử dụng -webkit-text-stroke
vì nó có hỗ trợ trình duyệt bị giới hạn. Bất kỳ giúp đỡ được nhiều đánh giá cao :)
Đây là mã của tôi.
a{
text-decoration: none;
}
.social-block .fa {
font-size: 64px;
}
span.fa-stack {
width: 64px;
height: 64px;
}
.social-block .fa-stack-1x:before {
font-size: 24px;
vertical-align: top;
line-height: 64px;
}
.social-block .fa-stack-1x{
box-shadow: inset 0 0 0px 7px #fff;
position: absolute;
top: -1px;
}
.social-block a:hover .fa-stack-1x{
box-shadow: none;
}
.social-block a:hover .fa-stack-1x:before {
width: 50px;
height: 50px;
line-height: 50px;
left: 7px;
top: 7px;
position: absolute;
}
.social-block .fa {
color: #CC1E4A;
border-radius: 50%;
-webkit-transition: all ease .25s;
-moz-transition: all ease .25s;
-o-transition: all ease .25s;
transition: all ease .25s;
font-size: 64px;
}
.social-block a:hover .fa-circle-thin {
background: none;
}
.social-block a:hover .fa-stack-1x:before {
background: #CC1E4A;
display: block;
border-radius: 50%;
}
.social-block a:hover .fa-stack-1x {
color: #fff;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css" rel="stylesheet"/>
<div class="social-block">
<a href="#">
<span class="fa-stack fa-lg">
<i class="fa fa-circle-thin fa-stack-2x"></i>
<i class="fa fa-facebook fa-stack-1x"></i>
</span>
</a>
<a href="#">
<span class="fa-stack fa-lg">
<i class="fa fa-circle-thin fa-stack-2x"></i>
<i class="fa fa-twitter fa-stack-1x"></i>
</span>
</a>
<a href="#">
<span class="fa-stack fa-lg">
<i class="fa fa-circle-thin fa-stack-2x"></i>
<i class="fa fa-linkedin fa-stack-1x"></i>
</span>
</a>
</div>
Độ dày biên giới không đồng đều cũng xảy ra trong Firefox quá. Tôi đề nghị một câu trả lời bằng cách sử dụng bán kính biên giới thay vì xếp chồng, và nó trông khá tốt, và không cần phải * hack * các điểm ảnh với vị trí tuyệt đối. Lựa chọn là của bạn, bạn có thể bắt đầu một tiền thưởng nếu bạn muốn nhận được nhiều sự chú ý hơn. – Stickers
@Pangloss Tôi thực sự muốn có độ dày 1px. Nhưng nếu tôi sử dụng border: 1px solid, nó sẽ mờ đi. (Vấn đề chung). Tôi nghĩ rằng vấn đề xếp chồng biểu tượng này không có sửa chữa. Đi với phương pháp bán kính biên giới. cảm ơn vì đã giúp đỡ. –
Tôi đã chỉnh sửa mã một chút và thêm thông tin cho phiên bản đa trọng lượng của phông chữ tuyệt vời, tất cả được cập nhật vào câu trả lời, hy vọng nó sẽ giúp ích. – Stickers