字体很棒的图标对齐方式

时间:2015-09-16 20:51:40

标签: javascript jquery html css font-awesome

我正在使用Font-awesome图标作为复选框,但在方块中对齐图标时出现问题。它看起来很丑陋,我尝试使用填充和对齐方式,它不能很好地适应边缘不同(字体很棒的图标有圆边,不适合我的方块)。任何人都有任何关于如何在我的广场上完美契合它的想法?

有没有办法更改图标的圆边(实际上不需要更改字体 - 真棒源代码?)谢谢。

HTML:

<input type="checkbox" name="checkbox" id="checkbox"class="checkboxClass"/>    
<label for="checkbox" class="labelForCheckboxClass"></label> 

CSS:

.checkboxClass {   
    opacity: 0;
}

.labelForCheckboxClass {
    position: relative;
    font-size: 16px;
    cursor: pointer;
    padding-left: 20.5px;
    padding-top: 0;
    padding-bottom: 0;
    border: 1px solid gray;
    background-color: white;    
}

.labelForCheckboxClass:after {
    content: '\f14a';
    max-width: 0;
    overflow: hidden;
    opacity: 0.5;   
    line-height: 20px;
    border-radius: 0;
}

.labelForCheckboxClass:before, .labelForCheckboxClass:after {
    font-family: FontAwesome;
    font-size: 25px;
    position: absolute;
    top: 0;
    left: 0;
}

.checkboxClass:checked ~ label:after {
    max-width: 25px; 
    opacity: 1; 
}

以下是JsFiddle.

3 个答案:

答案 0 :(得分:1)

修改

对于方角,试试这个:

.checkboxClass {   
    opacity: 0;
}

.labelForCheckboxClass {
    position: relative;
    font-size: 16px;
    cursor: pointer;
    padding-left: 17px;
    padding-top: 0;
    padding-bottom: 0;
    border: 1px solid gray;
    background-color: white;   
}

.labelForCheckboxClass:after {
    content: '\f00c';
    color:white;
    background-color: black;
    max-width: 0;
}

.labelForCheckboxClass:before, .labelForCheckboxClass:after {
    font-family: FontAwesome;
    font-size: 17px;
    position: absolute;
    top: 0;
    left: 0;
    height:1.05em;
}

.checkboxClass:checked ~ label:after {
    max-width: 17px; 
    opacity: 1; 
}

试试这个:

.labelForCheckboxClass {
    position: relative;
    font-size: 18px;
    cursor: pointer;
    padding-left: 21.5px;
    padding-top: 0;
    padding-bottom: 0;
    border: 1px solid gray;
    background-color: white;
    border-radius: 4px;
}

答案 1 :(得分:1)

问题是你试图用带有圆形边框的图形填充方框空间。您无法使用css修改复选标记的边框,因为它是字体的形状...您无法使用css访问该属性。

一个可以解决的问题是,你可以在这里找到带有border-radius的正方形: http://jsfiddle.net/leojavier/0h7gfdq6/1/

.labelForCheckboxClass {
    position: relative;
    font-size: 16px;
    cursor: pointer;
    padding-left: 21.5px;
    padding-bottom: 2px;
    border: 1px solid gray;
    background-color: #FFF;  
    border-radius:4px;
}

另一方面,如果你想保留盒子的方形边缘,你可能想要使用复选标记图标(白色),而不使用font-awesome的背景,只需切换背景使用javascript点击(黑色)时,您的标签颜色。

这是一个没有删除锐边的版本:

http://jsfiddle.net/leojavier/0h7gfdq6/3/

答案 2 :(得分:0)

right: 0bottom: 0添加到.labelForCheckboxClass:before, .labelForCheckboxClass:after也有帮助。

以下是您更新的小提琴:http://jsfiddle.net/4zjtp/134/