2017-04-21 16 views
2

CSSを使用する& HTMLボタンの上に表示されるはずのポップアップを作成しようとしています。しかし、以下のコードでは、<button> & <h2>タグの両方にポップアップが表示されます。私は初心者であるため、適切な出力を得るために変更が必要な箇所を理解することはできません。これを解決するのを手伝ってください。ボタンホバーでポップアップを作成する方法

HTMLページ

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <meta name="description" content=""> 
    <meta name="author" content=""> 
    <title> POPOUP</title> 

    <link rel="stylesheet" type="text/css" href="tooltip.css"> 


</head> 
<body style="text-align:center"> 
<div class="popup"> 
<h2>Popup</h2> 

<button type="button" id="b1">BUTTON</button> 
    <span class="popuptext" id="myPopup">A Simple Popup!</span> 
</div> 

</body> 
</html> 

私はホバー機能のためにCSSを使用しているので、JSの適切な知識を持っていません。あなたはこのセレクタを使用する必要が

CSS

/* Popup container - can be anything you want */ 
.popup { 
    position: relative; 
    display: inline-block; 
    cursor: pointer; 
    -webkit-user-select: none; 
    -moz-user-select: none; 
    -ms-user-select: none; 
    user-select: none; 
} 

/* The actual popup */ 
.popup .popuptext { 
    visibility: hidden; 
    width: 160px; 
    background-color: #555; 
    color: #fff; 
    text-align: center; 
    border-radius: 6px; 
    padding: 8px 0; 
    position: absolute; 
    z-index: 1; 
    top: 225%; 
    left: 50%; 
    margin-left: -80px; 
} 

/* Popup arrow */ 
.popup .popuptext::after { 
    content: ""; 
    position: absolute; 
    top: 100%; 
    left: 50%; 
    margin-left: -5px; 
    border-width: 5px; 
    border-style: solid; 
    border-color: #555 transparent transparent transparent; 
} 

/* Toggle this class - hide and show the popup */ 
.popup .show { 
    visibility: visible; 
    -webkit-animation: fadeIn 1s; 
    animation: fadeIn 1s; 
} 

.popup:hover .popuptext { 
    visibility: visible; 
    opacity: 1; 
} 






/* Add animation (fade in the popup) */ 
@-webkit-keyframes fadeIn { 
    from {opacity: 0;} 
    to {opacity: 1;} 
} 

@keyframes fadeIn { 
    from {opacity: 0;} 
    to {opacity:1 ;} 
} 
+1

あなたがツールチップのような何かをしたいですか? –

答えて

3

、これは#b1を推移されている場合にのみポップオーバーをトリガします。これに代えて

.popup #b1:hover + .popuptext 

.popupか、それはすべての子要素をホバリングしていたときに、これはポップオーバーをトリガました。

.popup:hover .popuptext 

.popup { 
 
    position: relative; 
 
    display: inline-block; 
 
    cursor: pointer; 
 
    -webkit-user-select: none; 
 
    -moz-user-select: none; 
 
    -ms-user-select: none; 
 
    user-select: none; 
 
} 
 

 

 
/* The actual popup */ 
 

 
.popup .popuptext { 
 
    visibility: hidden; 
 
    width: 160px; 
 
    background-color: #555; 
 
    color: #fff; 
 
    text-align: center; 
 
    border-radius: 6px; 
 
    padding: 8px 0; 
 
    position: absolute; 
 
    z-index: 1; 
 
    top: 225%; 
 
    left: 50%; 
 
    margin-left: -80px; 
 
} 
 

 

 
/* Popup arrow */ 
 

 
.popup .popuptext::after { 
 
    content: ""; 
 
    position: absolute; 
 
    top: 100%; 
 
    left: 50%; 
 
    margin-left: -5px; 
 
    border-width: 5px; 
 
    border-style: solid; 
 
    border-color: #555 transparent transparent transparent; 
 
} 
 

 

 
/* Toggle this class - hide and show the popup */ 
 

 
.popup .show { 
 
    visibility: visible; 
 
    -webkit-animation: fadeIn 1s; 
 
    animation: fadeIn 1s; 
 
} 
 

 
.popup #b1:hover + .popuptext { 
 
    visibility: visible; 
 
    opacity: 1; 
 
} 
 

 

 
/* Add animation (fade in the popup) */ 
 

 
@-webkit-keyframes fadeIn { 
 
    from { 
 
    opacity: 0; 
 
    } 
 
    to { 
 
    opacity: 1; 
 
    } 
 
} 
 

 
@keyframes fadeIn { 
 
    from { 
 
    opacity: 0; 
 
    } 
 
    to { 
 
    opacity: 1; 
 
    } 
 
}
<body style="text-align:center"> 
 
    <div class="popup"> 
 
    <h2>Popup</h2> 
 

 
    <button type="button" id="b1">BUTTON</button> 
 
    <span class="popuptext" id="myPopup">A Simple Popup!</span> 
 
    </div> 
 

 
</body>

+0

ありがとう!それはうまく動作します –

+0

私は助けてくれることができてうれしくて、実際の言葉は 'popt'ではなく' tooltip'です。 –

関連する問題