2

私は CSS のスキルがありません。これは私の最初のプロジェクトの 1 つです。私が持っているスライダーの CSS スタイルを作成しようとしていましたが、次のようなものが必要です。

画像スライダー

内部 div とボタン div は正常に作成されましたが、問題は、スライダーの次/前のボタンのインデックス順です。HTMLは次のとおりです。

<div class="slider">
<div><a href="#" id="rhandle">&gt;</a></div>
<div><a href="#" id="lhandle">&lt;</a></div>
<div id="loadingBar"></div>
<div class="slide">
    <div id="leftSlide">
        <h1>WhiteFox Template</h1>
        <p>Buy this theme today with all features, All fonts included in this theme are for personal use only. <br />Detailed documentation included.</p>
        <a href="#" class="button">Read More</a>
    </div>
    <div id="rightSlide">
        <img src="images/slides/slide-1.gif" width="259" height="184" alt="slide-1 Image" />
    </div>
    <div style="height:0;line-height:0;display:block;clear:both;"></div>
</div>

スライダーの CSS は次のとおりです。

.slider {
height: 329px;
width: 794px;
background: #313131;
margin: 50px auto 80px;
color: #FFF;
}

.slider a#lhandle {
    font-size: 24px;
    color: #FFF;
    background: #4bacfd;
    width: 50px;
    float: left;
    height: 23px;
    padding-top: 150px;
    padding-bottom: 150px;
    margin-top: 6px;
}

.slider a#rhandle {
    font-size: 24px;
    color: #FFF;
    background: #4bacfd;
    width: 50px;
    float: right;
    height: 23px;
    padding-top: 150px;
    padding-bottom: 150px;
    margin-top: 6px;
}

.slider a#lhandle:hover,
.slider a#rhandle:hover {
    color: #4bacfd;
    background: #FFF;
    border: 1px solid #4bacfd;
    width: 48px;
    height: 21px;
}

.slider #loadingBar {
    background: #a0a0a0;
    height: 6px;
}

.slider .slide {
    height: 328px;
    width: 793px;
    position: relative;
}



.slider .slide h1 {
    text-transform: uppercase;
    font-size: 24px;
    font-weight: bold;
    margin-top: 50px;
    margin-bottom: 25px;
}

.slider .slide div#leftSlide {
    float: left;
    width: 400px;
    height: 328px;
}


.slider .slide div#rightSlide {
    float: right;
    height: 328px;
    width: 280px;
}

.slider .slide img {
    border: 1px solid #FFF;
    margin-top: 25%;
    margin-bottom: 25%;
}

.slider .slide p {
    display: block;
    text-align: justify;
    margin-bottom: 30px;
    margin-right: 30px;
    margin-left: 30px;
    font-size: 18px;
    line-height: 28px;
}

このように、次/前のボタンは実際のコンテンツの下にあり、それらの上にカーソルを置いても、「:hover」スタイルに変わりません。「z-index: 5」プロパティを追加しようとしましたが、うまくいきませんでした。どうすればこれを実現できますか (もっと簡単な方法があれば教えてください)。

4

3 に答える 3

2

z-indexpositionそれ以外を設定するだけstaticです (これがデフォルト値です)。

これを両側のハンドルに追加します。

z-index:10;
position:relative;

デモ: http://jsfiddle.net/QYnVc/

補足: 同様の要素に共通のクラス名を使用するか、CSS プロパティのグループに複数のセレクターを使用することで、多くの冗長な CSS を削減できます。例えば:

#rhandle,
#lhandle {
    font-size: 24px;
    color: #FFF;
    background: #4bacfd;
    width: 50px;
    float: left;
    height: 23px;
    padding-top: 150px;
    padding-bottom: 150px;
    margin-top: 6px;
    z-index:10;
    position:relative;
}

#rhandle {
    float: right;
}
于 2012-07-25T18:45:38.763 に答える
2

W3schoolsによると、z-indexプロパティは、影響を受けるアイテムのpositionプロパティがabsoluterelativeまたはfixedのいずれかに設定されている場合にのみ機能します。

これらのプロパティを使用すると、 left /*right* およびtop /*bottom* プロパティを使用して項目を再配置する必要がある場合があります。

于 2012-07-25T18:46:46.207 に答える
1

これは正常に動作しますが、 z-index は配置された要素でのみ有効であるため、ハンドルz-indexにも何かを追加する必要があります。position:relative

jsFiddle の例

CSS:

.slider a#lhandle {
    font-size: 24px;
    color: #FFF;
    background: #4bacfd;
    width: 50px;
    float: left;
    height: 23px;
    padding-top: 150px;
    padding-bottom: 150px;
    margin-top: 6px;
    position:relative;
    z-index:10;
}

.slider a#rhandle {
    font-size: 24px;
    color: #FFF;
    background: #4bacfd;
    width: 50px;
    float: right;
    height: 23px;
    padding-top: 150px;
    padding-bottom: 150px;
    margin-top: 6px;
    position:relative;
    z-index:10;
}

余談ですが、要素と CSS が過剰にあるように見えるため、スライドの配置方法を再考することをお勧めします。

于 2012-07-25T18:46:15.523 に答える