20

TwitterのBootstrapライブラリを使用して、プロトタイプをすばやくまとめています。

HTMLでの私のレイアウトは次のようになります。

<div class="navbar-messages container">
    <div class="alert alert-info fade in">
        <button class="close" data-dismiss="alert">&times;</button>
        <strong>Awesomeness!</strong> You're pretty cool.
    </div>
    <div class="alert alert-error fade in">
        <button class="close" data-dismiss="alert">&times;</button>
        <strong>Awesomeness!</strong> You're pretty cool.
    </div>
</div>

私のLESSは次のようになります。

div.navbar div.navbar-messages {
    .drop-shadow(1px 1px 10px 1px rgba(0, 0, 0, 0.2));

    div.alert {
        -webkit-border-radius: 0px;
        -moz-border-radius: 0px;
        border-radius: 0px;

        margin-bottom: 0px;

        &:last-child {
            -webkit-border-bottom-right-radius: 4px;
            -webkit-border-bottom-left-radius: 4px;
            -moz-border-radius-bottomright: 4px;
            -moz-border-radius-bottomleft: 4px;
            border-bottom-right-radius: 4px;
            border-bottom-left-radius: 4px;
        }
    }
}

.drop-shadow(@params) {
    -moz-box-shadow: @params;
    -webkit-box-shadow: @params;
    box-shadow: @params;
}

本当に奇妙なのは、ドロップシャドウが子要素の湾曲したコーナーの周りで湾曲していないことです。

ここに画像の説明を入力してください

どうすればコーナーを適切にカーブさせることができますか?

4

3 に答える 3

29

要素に丸みdiv.navbar div.navbar-messagesを帯びた角がないため、影は正方形に見えます。その名前で説明されているように、要素の内容ではなく、要素のボックスbox-shadowの周りに影を描画します。したがって、ボックス自体に丸みを帯びた角がない場合は、その影も描画されません。

border-radius同じスタイルをに適用してみるとdiv.navbar div.navbar-messages、その影が角を曲がって曲がります。

div.navbar div.navbar-messages {
    .drop-shadow(1px 1px 10px 1px rgba(0, 0, 0, 0.2));
    .rounded-bottom-corners(4px);

    div.alert {
        -webkit-border-radius: 0px;
        -moz-border-radius: 0px;
        border-radius: 0px;

        margin-bottom: 0px;

        &:last-child {
            .rounded-bottom-corners(4px);
        }
    }
}

.drop-shadow(@params) {
    -moz-box-shadow: @params;
    -webkit-box-shadow: @params;
    box-shadow: @params;
}

.rounded-bottom-corners(@params) {
    -webkit-border-bottom-right-radius: @params;
    -webkit-border-bottom-left-radius: @params;
    -moz-border-radius-bottomright: @params;
    -moz-border-radius-bottomleft: @params;
    border-bottom-right-radius: @params;
    border-bottom-left-radius: @params;
}
于 2012-05-13T19:24:39.187 に答える
3

私はこれを持っています:

blockquote {
    border: none;
    font-style: italic;
    font-size: 20px;
    line-height: 40px;
    font-weight: 300;
    padding: 0;
    margin: 30px 0;
    text-shadow: 0 1px 1px #666666; 
    background: rgba(255,255, 255, 0.4);
    box-shadow: 0px 0.5px 1px #888888;
    padding-left: 10px;
    -webkit-border-radius: 6px;
    -moz-border-radius: 6px;
    border-radius: 6px;
}

それで:

-webkit-border-radius: 6px;
        -moz-border-radius: 6px;
        border-radius: 6px;

それは私にとってかなりうまくいきました!どうもありがとう。

于 2016-11-11T14:25:39.580 に答える
1

うん...影のあるdivにborder-radiusを置くだけです。border-radius値がdiv内のオブジェクトの値と一致し、正しく一致することを確認してください。

于 2013-09-22T20:24:57.673 に答える