0

我想在 CSS3 中制作以下图标,这样我就可以仅使用“.circle”(或其他一些包装元素)的宽度和高度,重点是我想在一个地方调整宽度和高度,甚至可以让它自动适合任何容器,无论宽度和高度如何),而无需调整任何其他 CSS3 属性以使“A”在中心对齐。

做这个的最好方式是什么?如果您能推荐一种更好的方法来执行以下操作,将不胜感激。我所拥有的问题是,将“.circle”的宽度和高度更改为更小会影响其他所有事物的定位,这迫使我更改 .circle2 的属性和 .letter 的属性,直到事情排成一行。

CSS

.circle {
    width: 100px;
    height: 100px;
    background: blue;
    -moz-border-radius: 50px;
    -webkit-border-radius: 50px;
    border-radius: 50px;
    cursor:pointer;
}

    .circle2 {
        width:80%;
        height:80%;
        border-radius: 50px;
        position:relative;
        top:5%;
        left:5%;
        border: 5px solid #FFF;
    }

letter{
    position:relative;
    top:45%;
    left:30%;
    margin:auto;
    cursor:pointer;
    color: #fff;
    font-size: 60px;
    font-weight: bold;
    display: inline-block;
    line-height: 0px;

}
letter:before {
     content: "A"
}

HTML

<div class="circle">
    <div class="circle2">
        <a class="letter"></a>
    </div>
</div>
4

1 回答 1

1

看一看。唯一棘手的是“A”字号。您可以使用http://fittextjs.com/ 之类的库来完全完成此操作。

http://jsfiddle.net/cSBw3/1/

代码如下并已修改。

CSS3

.container {
    width: 100px;
    height: 100px;
    text-align: center;
}

.circle {
    width: 100%;
    height: 100%;
    background: blue;
    cursor:pointer;
    position: relative;
    -moz-border-radius: 50%;
    -webkit-border-radius: 50%;
    border-radius: 50%;
}

.circle:after {
    content:"";
    display: block;
    position: absolute;
    /* width: 80%; height: 80%; */
    top: 10%; bottom: 10%;
    left: 10%; right: 10%;
    border: 5px solid #FFF;
    -moz-border-radius: 50%;
    -webkit-border-radius: 50%;
    border-radius: 50%;
}

.letter {
    cursor:pointer;
    display: block;
}
.letter:before {
    content: "A";
    display: block;
    position: absolute;
    bottom: 19%;
    right: 19%;
    font-size: 3em;
    font-weight: bold;
    color: #fff;
}

HTML

<div class="container">
    <div class="circle"> 
        <a class="letter"></a>
    </div>
</div>
于 2013-08-13T05:55:37.657 回答