インラインCSSコードを記述しなければならない場合があり、アンカーにホバースタイルを適用したいと思います。
a:hover
HTMLスタイル属性内でインラインCSS を使用するにはどうすればよいですか?
たとえば、HTMLメールでCSSクラスを確実に使用することはできません。
インラインCSSコードを記述しなければならない場合があり、アンカーにホバースタイルを適用したいと思います。
a:hover
HTMLスタイル属性内でインラインCSS を使用するにはどうすればよいですか?
たとえば、HTMLメールでCSSクラスを確実に使用することはできません。
回答:
短い答え:できません。
長い答え:すべきではありません。
クラス名またはIDを指定し、スタイルシートを使用してスタイルを適用します。
:hover
は擬似セレクタであり、CSSの場合、スタイルシート内でのみ意味があります。インラインスタイルに相当するものはありません(選択基準を定義していないため)。
OPのコメントへの応答:
CSSルールを動的に追加するための適切なスクリプトについては、JavaScriptを使用したTotally Pwn CSSを参照してください。スタイルシートの変更もご覧ください主題に関する理論の一部については、。
また、オプションの場合は、外部スタイルシートへのリンクを追加できます。例えば、
<script type="text/javascript">
var link = document.createElement("link");
link.setAttribute("rel","stylesheet");
link.setAttribute("href","http://wherever.com/yourstylesheet.css");
var head = document.getElementsByTagName("head")[0];
head.appendChild(link);
</script>
注意:上記は、ヘッドセクションがあることを前提としています。
style="{color:green;} :hover { color: red; }"
を使用してテストしたところ、Firefoxはリンクを緑色に着色できましたが、ホバーを無視しました。Chromeは両方を無視しました。継続的なテストはかなり無意味です。
onMouseOver
およびonMouseOut
パラメータでJavaScriptを使用してスタイルを変更することで同じ効果を得ることができますが、複数の要素を変更する必要がある場合は非常に非効率的です。
<a href="abc.html"
onMouseOver="this.style.color='#0F0'"
onMouseOut="this.style.color='#00F'" >Text</a>
また、this
このコンテキストで機能するかどうかは、はっきりとは思い出せません。で切り替える必要がある場合がありますdocument.getElementById('idForLink')
。
<div onMouseOver="this.style.backgroundColor='#F8F8F8'" onMouseOut="this.style.backgroundColor='#FFFFFF'"> ...
<a href="http://www.w3.org/" style="{color: #900} :link {background: #ff0} :visited {background: #fff} :hover {outline: thin red solid} :active {background: #00f}">...</a>
しかし、それはうまく
私はこれに貢献するのが非常に遅いですが、誰かがこれを提案していないのが悲しかったです。実際にインラインコードが必要な場合、これは可能です。ホバーボタンに必要でしたが、メソッドは次のとおりです。
.hover-item {
background-color: #FFF;
}
.hover-item:hover {
background-color: inherit;
}
<a style="background-color: red;">
<div class="hover-item">
Content
</div>
</a
この場合、インラインコードは「background-color:red;」です。ホバーのスイッチの色です。そこに必要な色を入れると、このソリューションが機能します。これは互換性の点では完璧な解決策ではないかもしれませんが、絶対に必要な場合は機能します。
a:hover
はCSSルールではなくセレクタの一部であるため、説明していることを正確に行うことはできません。スタイルシートには2つのコンポーネントがあります。
selector {rules}
インラインスタイルにはルールのみがあります。セレクタは暗黙的に現在の要素になります。
セレクターは、XMLのようなドキュメントの要素に一致する一連の基準を記述する表現言語です。
ただし、style
セットは技術的にほとんどどこにでも移動できるため、接近することができます。
<html>
<style>
#uniqueid:hover {do:something;}
</style>
<a id="uniqueid">hello</a>
</html>
<html> </html>
タグで
a)インラインスタイルの追加
document.head.insertAdjacentHTML('beforeend', '<style>#mydiv:hover{color:red;}</style>');
b)または少し難しい方法-「マウスオーバー」を追加する
document.getElementById("mydiv").onmouseover= function(e){this.className += ' my-special-class'; };
document.getElementById("mydiv").onmouseleave= function(e){this.className = this.className.replace('my-special-class',''); };
注:font-size
Javascriptの複数単語スタイル(つまり)は一緒に記述されます。
element.style.fontSize="12px"
これは最良のコード例です:
<a
style="color:blue;text-decoration: underline;background: white;"
href="http://aashwin.com/index.php/education/library/"
onmouseover="this.style.color='#0F0'"
onmouseout="this.style.color='#00F'">
Library
</a>
モデレーターの提案:懸念事項の分離を維持してください。
HTML
<a
style="color:blue;text-decoration: underline;background: white;"
href="http://aashwin.com/index.php/education/library/"
class="lib-link">
Library
</a>
JS
const libLink = document.getElementsByClassName("lib-link")[0];
// The array 0 assumes there is only one of these links,
// you would have to loop or use event delegation for multiples
// but we won't go into that here
libLink.onmouseover = function () {
this.style.color='#0F0'
}
libLink.onmouseout = function () {
this.style.color='#00F'
}
インライン疑似クラス宣言は、CSSの現在のイテレーションではサポートされていません(ただし、私が理解している限りでは、将来のバージョンで提供される可能性があります)。
現時点では、スタイルを設定するリンクのすぐ上にスタイルブロックを定義することをお勧めします。
<style type="text/css">
.myLinkClass:hover {text-decoration:underline;}
</style>
<a href="/foo" class="myLinkClass">Foo!</a>
指摘したように、ホバーに任意のインラインスタイルを設定することはできませんが、CSSでホバーカーソルのスタイルを変更するには、適切なタグで次を使用します。
style="cursor: pointer;"
あなたはこれを行うことができます。しかし、インラインスタイルではありません。イベントonmouseover
とonmouseout
イベントを使用できます。
<div style="background: #333; padding: 10px; cursor: pointer"
onmouseover="this.style.backgroundColor='#555';" onmouseout="this.style.backgroundColor='#333';">
Hover on me!
</div>
コメントによると、とにかくJavaScriptファイルを送信しています。JavaScriptでロールオーバーを実行します。jQueryの$.hover()
メソッドは、他のすべてのJavaScriptラッパーと同様に、それを簡単にします。ストレートJavaScriptでもそれほど難しくありません。
別の解決策を見つけました。
私の問題:<a>
スライド/メインコンテンツビューアの周囲に<a>
タグがあり、フッターにもタグがあります。IEの同じ場所に移動してほしいので、onHover
リンクではなくても段落全体に下線が引かれます。スライドは全体としてリンクです。IEは違いを知りません。フッターには、下線と色の変更が必要な実際のリンクもいくつかありますonHover
。色を変更するにはスタイルをフッタータグに合わせて配置する必要があると思いましたが、上記のアドバイスから、これは不可能であることが示唆されています。
解決策:フッターリンクに2つの異なるクラスを指定しました。私の問題は解決されました。onHover
1つのクラスで色を変更でき、スライドにonHover
色の変更/下線を付けずに、フッターとスライドに同時に外部HREFを含めることができました。
これはかなりゲームの後半ですが、HTMLメールでJavaScriptを使用するのはいつですか?たとえば、私が現在勤務している会社(Abodeeの韻)では、ほとんどのメールマーケティングキャンペーンに共通の最小基準を使用しています。JavaScriptは使用されていません。ずっと。あなたが何らかの前処理に言及しているのでなければ。
関連する投稿で述べたように、「Lotus Notes、Mozilla Thunderbird、Outlook Express、およびWindows Live Mailはすべて、なんらかのJavaScriptの実行をサポートしているようです。他には何もサポートしていません。」
これが取られた記事へのリンク:[ http://en.wikipedia.org/wiki/Comparison_of_e-mail_clients]
また、ホバリングはモバイルデバイスにどのように変換されますか?それが私が上からの答えを好きな理由です:Long answer: you shouldn't.
誰かがこの主題についてより深い洞察を持っている場合は、私を修正してください。ありがとうございました。
したがって、これはユーザーが探していたものとはまったく異なりますが、私はこの質問が回答を検索していることに気づき、何らかの関連性を考え出しました。私はそれらの中にタブの新しい色/ホバーを必要とする繰り返し要素の束を持っていました。私のソリューションでは重要なハンドルバーを使用していますが、他のテンプレート言語でも機能する可能性があります。
いくつかの色を定義し、各要素のハンドルバーテンプレートにそれらを渡しました。テンプレートの上部でスタイルタグを定義し、カスタムクラスとホバー色を配置しました。
<style type="text/css">
.{{chart.type}}-tab-hover:hover {
background-color: {{chart.chartPrimaryHighlight}} !important;
}
</style>
次に、テンプレートでスタイルを使用しました。
<span class="financial-aid-details-header-text {{chart.type}}-tab-hover">
Payouts
</span>
あなたは必要ないかもしれません !important
あなたは様々なタイプのコードを書くことができます
最初にこれを書くことができます
html
<a href="https://www.google.com/" onMouseOver="this.style.color='red'"
onMouseOut="this.style.color='blue'" class="one">Hello siraj</a>
CSS
.one{
text-decoration: none;
}
別の方法を試すことができます
html
<a href="https://www.google.com/" class="one">Hello siraj</a>
CSS
.one{
text-decoration: none;
}
.one:hover{
color:blue;
}
.one:active{
color: red;
}
jqueryでホバーすることもできます
Javaスクリプト
$(document).ready(function(){
$("p").hover(function(){
$(this).css("background-color", "yellow");
}, function(){
$(this).css("background-color", "pink");
});
});
html
<p>Hover the mouse pointer over this paragraph.</p>
このコードでは、jqueryに3つの関数があり、最初にjqueryの関数の基本である関数を準備します。次に、テキストへのポインターをホバーすると、この関数にホバー関数があり、色が変わります。テキストへのポインターを離すと、色が異なり、これが3番目の関数になります。
私はjavascriptを避けなければなりませんでしたが、サーバー側のコードで行くことができました。
IDを生成し、スタイルブロックを作成し、そのIDのリンクを生成しました。はい、その有効なHTML。
a {
text-decoration: none;
color: blue;
}
a:hover {
color: blue;
font-weight: bold;
}
<!-- some code in the interpreter you use, to generate the data-hover id -->
<style>
a[data-hover="rnd-id-123"] { color: green; }
a[data-hover="rnd-id-123"]:hover { color: red; }
</style>
<a data-hover="rnd-id-123">some link 1</a>
<br>
<!-- some code in the interpreter you use, to generate the data-hover id -->
<style>
a[data-hover="rnd-id-456"] { color: purple; }
a[data-hover="rnd-id-456"]:hover { color: orange; }
</style>
<a data-hover="rnd-id-456">some link 2</a>
疑似クラスa:hover
は、外部スタイルシートでのみ使用できます。したがって、外部スタイルシートを使用することをお勧めします。コードは次のとおりです。
a:hover {color:#FF00FF;} /* Mouse-over link */
style
。タグを使用してください。
私の問題は、ホバー時に別の画像と入れ替える必要がある多くの画像アイコンを使用するWebサイトを構築していることでした(たとえば、青っぽい画像はホバーすると赤っぽくなります)。私はこれのために次の解決策を作りました:
.container div {
width: 100px;
height: 100px;
background-size: 100px 100px;
}
.container:hover .withoutHover {
display: none;
}
.container .withHover {
display: none;
}
.container:hover .withHover {
display: block;
}
<p>Hover the image to see it switch with the other. Note that I deliberately used inline CSS because I decided it was the easiest and clearest solution for my problem that uses more of these image pairs (with different URL's).
</p>
<div class=container>
<div class=withHover style="background-image: url('https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQrqRsWFJ3492s0t0NmPEcpTQYTqNnH188R606cLOHm8H2pUGlH')"></div>
<div class=withoutHover style="background-image: url('http://i.telegraph.co.uk/multimedia/archive/03523/Cat-Photo-Bombs-fa_3523609b.jpg')"></div>
</div>
画像のペアを含むコンテナを紹介しました。1つ目は表示され、もう1つは非表示です(display:none)。コンテナーをホバーすると、最初のコンテナーが非表示になり(display:none)、2番目のコンテナーが再び表示されます(display:block)。