0

このjsfiddle http://jsfiddle.net/L9k5c/でわかるように、私の「こんにちは」テキストは、赤い円の中央ではなく外側に配置されています(これは問題1です)。問題 2 は、この "Hello" テキストにより、"onmouse over" の円が赤い円と整列しなくなることです。これら2つの問題を解決するにはどうすればよいですか? (問題1については、パディングとマージンで遊ぶことができることを知っていますが、これはきれいな解決策ではないと思います+問題2を修正しません。どうもありがとう

<div class="ch-item ch-img-1"><p>hello</p>
    <div class="ch-info">
        <h3>Use what you have</h3>
        <p>by Angela</p>
    </div>
</div>

CSS:

.ch-item {
    width: 200px;
    height: 200px;
    border-radius: 50%;
    position: relative;
    cursor: default;
    box-shadow: 
        inset 0 0 0 16px rgba(255,255,255,0.6),
        0 1px 2px rgba(0,0,0,0.1);

    -webkit-transition: all 0.4s ease-in-out;
    -moz-transition: all 0.4s ease-in-out;
    -o-transition: all 0.4s ease-in-out;
    -ms-transition: all 0.4s ease-in-out;
    transition: all 0.4s ease-in-out;
}

.ch-img-1 { 
    background: red;
}

.ch-info {
    position: absolute;
    background: rgba(63,147,147, 0.8);
    width: inherit;
    height: inherit;
    border-radius: 50%;
    opacity: 0;

    -webkit-transition: all 0.4s ease-in-out;
    -moz-transition: all 0.4s ease-in-out;
    -o-transition: all 0.4s ease-in-out;
    -ms-transition: all 0.4s ease-in-out;
    transition: all 0.4s ease-in-out;

    -webkit-transform: scale(0);
    -moz-transform: scale(0);
    -o-transform: scale(0);
    -ms-transform: scale(0);
    transform: scale(0);

    -webkit-backface-visibility: hidden;

}

.ch-info h3 {
    color: #fff;
    font-size: 18px;
    margin: 0 30px;
    padding: 45px 0 0 0;
    height: 100px;
    font-family: 'Open Sans', Arial, sans-serif;
}

.ch-info p {
    color: #fff;
    font-style: italic;
    padding-left:80px;
    font-size: 12px;
    border-top: 1px solid rgba(255,255,255,0.5);
    opacity: 0;
    -webkit-transition: all 1s ease-in-out 0.4s;
    -moz-transition: all 1s ease-in-out 0.4s;
    -o-transition: all 1s ease-in-out 0.4s;
    -ms-transition: all 1s ease-in-out 0.4s;
    transition: all 1s ease-in-out 0.4s;
}


.ch-item:hover {
    box-shadow: 
        inset 0 0 0 1px rgba(255,255,255,0.1),
        0 1px 2px rgba(0,0,0,0.1);
}
.ch-item:hover .ch-info {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -o-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
    opacity: 1;
}

.ch-item:hover .ch-info p {
    opacity: 1;
}
4

2 に答える 2

2

absolute positionandを使用して、transform必要なものを簡単に実現できます。

jsFiddle デモ

.ch-item p {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    margin: 0;
}
  • PS - transformIE 8 以下では使用できませんが、他の場所では既に使用されているので問題ないと思います。
于 2013-09-07T12:21:48.830 に答える
1

ここに更新されたフィドルがあります

position:relative;ラッパーで使用しているように、そのposition:absolute;内部コンテンツを使用して配置できます

.ch-item p{
position:absolute;
top:35%;
left:40%;
}

またopacity:0、ホバーしているときにハローテキストを作成します..あなたの例では、ホバー後にハローテキストがまだ表示されているためです

.ch-item:hover p{
opacity:0;
}

二度目に修正されたフィドル

于 2013-09-07T12:25:32.033 に答える